/* ══════════════════════════════════════════════════════════════
   LinkSanca — CSS halaman mandiri (tanpa header/footer situs)
   Satu file pengganti <style> sebaris di halaman-halaman berikut.
   Pasang kelas di <body> sesuai halaman:

     body.pg-login     login.php                (tab Masuk/Daftar, bilah bahasa, kartu berbingkai berputar)
     body.pg-reset     reset.php                (memakai kartu & formulir yang sama dengan pg-login)
     body.pg-verify    verify.php               (ikon .ico.ok / .ico.no, tombol .btn, tautan .muted)
     body.pg-404       dashboard/404.php        (angka .big, tombol .btn, merek kecil .brand)
     body.pg-pw        dashboard/password-wall.php (ikon gembok .ico, .field + .eye, tombol button.go, .err)
     body.pg-redirect  dashboard/tracking-redirect.php + halaman pengalihan klien
                       (.rc > .sp spinner, .rt teks, .pb > .pf progres, a.manual tautan cadangan)

   Aturan: semua warna hex hanya di :root. Tanpa backdrop-filter.
   Font: Inter/Sora bila tersedia, jatuh ke font sistem (tidak butuh Google Fonts).
   Mode terang: token ditimpa di :root[data-theme="light"] (bawah file) — atributnya dipasang
   brand_theme_head(); tombolnya (.theme-pill) di bilah bahasa login & reset. pg-redirect tetap gelap.
   ══════════════════════════════════════════════════════════════ */
:root{
  --bg:#060a12;
  --surface:rgba(255,255,255,.03); --surface2:rgba(255,255,255,.05);
  --border:rgba(120,160,200,.14); --border2:rgba(120,180,220,.28);
  --text:#e8eef6; --text2:#a3b4c8; --text3:#66788f;
  --accent:#00d4ff; --accent2:#3b82f6; --emerald:#12e0a8; --danger:#ff6b6b;
  --warn:#ffb84d; --warn-soft:rgba(255,184,77,.1); --warn-line:rgba(255,184,77,.4);
  --danger-soft:rgba(255,107,107,.1); --danger-line:rgba(255,107,107,.4);
  --on-accent:#04121e;                                /* teks gelap di atas gradien */
  --card-bg:rgba(8,13,22,.92);                        /* kartu login: tembus tipis seperti semula, tanpa blur */
  --card-solid:rgba(8,13,22,.94);                     /* kartu verify / 404 / link berpassword */
  --field-bg:rgba(255,255,255,.03);                   /* kotak isian */
  --frame-shadow:0 30px 80px -24px rgba(0,0,0,.8);    /* bayangan bingkai kartu */
  --grad:linear-gradient(120deg,#00d4ff,#3b82f6);
  --grad-text:var(--grad);                            /* teks bergradien (angka 404) */
  --rd-bg:#0a1628; --rd-text:#e8f4f8; --rd-text2:#8ba4b5;
  --rd-grad:linear-gradient(90deg,#00d4ff,#0099cc);
  --r:14px; --r-input:11px;
  --font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --font-head:'Sora','Inter',system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  color-scheme:dark;
}

/* ── Dasar bersama ── */
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;min-height:100dvh;
  display:grid;place-items:center;padding:24px;position:relative;overflow-x:hidden}
h1,h2{font-family:var(--font-head);letter-spacing:-.02em}
a{color:inherit;text-decoration:none}
svg{display:block}
[hidden]{display:none!important}

/* Latar: gradien di lapisan tetap tersendiri (tanpa repaint saat scroll) */
body.pg-login::before,body.pg-reset::before{content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;background:
  radial-gradient(50% 45% at 80% 8%,rgba(0,212,255,.2),transparent 60%),
  radial-gradient(45% 40% at 12% 90%,rgba(59,130,246,.18),transparent 60%),
  radial-gradient(40% 35% at 50% 50%,rgba(18,224,168,.06),transparent 70%),var(--bg)}
body.pg-login::after,body.pg-reset::after{content:'';position:fixed;inset:0;z-index:-1;opacity:.45;pointer-events:none;
  background-image:linear-gradient(rgba(120,170,210,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,170,210,.05) 1px,transparent 1px);
  background-size:52px 52px;
  -webkit-mask-image:radial-gradient(circle at 50% 45%,black,transparent 70%);mask-image:radial-gradient(circle at 50% 45%,black,transparent 70%)}
body.pg-verify::before{content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;background:
  radial-gradient(50% 45% at 80% 8%,rgba(0,212,255,.2),transparent 60%),
  radial-gradient(45% 40% at 12% 90%,rgba(59,130,246,.18),transparent 60%),var(--bg)}
body.pg-404::before,body.pg-pw::before{content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;background:
  radial-gradient(50% 45% at 80% 8%,rgba(0,212,255,.18),transparent 60%),
  radial-gradient(45% 40% at 12% 92%,rgba(59,130,246,.16),transparent 60%),var(--bg)}
body.pg-404::after{content:'';position:fixed;inset:0;z-index:-1;opacity:.45;pointer-events:none;
  background-image:linear-gradient(rgba(120,170,210,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(120,170,210,.05) 1px,transparent 1px);
  background-size:54px 54px;
  -webkit-mask-image:radial-gradient(circle at 50% 40%,black 0%,transparent 70%);mask-image:radial-gradient(circle at 50% 40%,black 0%,transparent 70%)}

/* Fokus keyboard terlihat jelas */
.submit:focus-visible,.btn:focus-visible,button.go:focus-visible,.tabs button:focus-visible,.langbar a:focus-visible,
.langbar button:focus-visible,.toggle-pw:focus-visible,.eye:focus-visible,.aux-link:focus-visible,.back:focus-visible,
.muted:focus-visible,.brand:focus-visible,.manual:focus-visible,.theme-pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ── Bingkai kartu (dipakai login, reset, verify) ── */
.card-shell{position:relative;width:100%;border-radius:20px;padding:1.5px;
  background:linear-gradient(140deg,rgba(0,212,255,.6),rgba(59,130,246,.05) 40%,rgba(18,224,168,.4));
  box-shadow:var(--frame-shadow)}
/* Bingkai kartu (dipakai 404 & password wall) */
.shell{width:100%;max-width:440px;border-radius:22px;padding:1.5px;
  background:linear-gradient(140deg,rgba(0,212,255,.55),rgba(59,130,246,.05) 45%,rgba(18,224,168,.35));
  box-shadow:var(--frame-shadow)}

/* ══ pg-login + pg-reset ══ */
body.pg-login,body.pg-reset{--border:rgba(120,160,200,.16);--surface:rgba(255,255,255,.04)}
.pg-login .center,.pg-reset .center{text-align:center;width:100%;max-width:410px}
.pg-login .langbar,.pg-reset .langbar,.langbar form{display:flex;justify-content:center;gap:.3rem}
.pg-login .langbar,.pg-reset .langbar{margin-bottom:1rem}
.langbar a,.langbar button{font-size:.8rem;font-weight:600;color:var(--text3);padding:.35rem .7rem;border-radius:100px;
  border:1px solid transparent;background:none;font-family:inherit;line-height:normal;cursor:pointer;transition:.2s}
.langbar a:hover,.langbar button:hover{color:var(--text2)}
.langbar a.on,.langbar button.on,.langbar [aria-current]{color:var(--accent);border-color:var(--border);background:var(--surface)}
/* Tombol tema di ujung bilah bahasa (ikon matahari = sedang gelap, bulan = sedang terang) */
.langbar .theme-pill{display:inline-grid;place-items:center;padding:.3rem .6rem;margin-left:.15rem;border-radius:100px;
  border:1px solid var(--border);background:none;color:var(--text3);cursor:pointer;transition:.2s}
.langbar .theme-pill:hover{color:var(--accent);border-color:var(--accent)}
.theme-pill svg{width:16px;height:16px}
.ti-moon,:root[data-theme="light"] .ti-sun{display:none}
:root[data-theme="light"] .ti-moon{display:block}
.pg-login .card-shell,.pg-reset .card-shell{box-shadow:var(--frame-shadow),0 0 60px -12px rgba(0,212,255,.25)}
.pg-login .card-shell::before,.pg-reset .card-shell::before{content:'';position:absolute;inset:-1px;border-radius:20px;padding:1.5px;
  background:conic-gradient(from 0deg,transparent,var(--accent),transparent 30%);
  -webkit-mask:linear-gradient(black 0 0) content-box,linear-gradient(black 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  animation:spin 6s linear infinite;opacity:.8}
@keyframes spin{to{transform:rotate(360deg)}}
.pg-login .card,.pg-reset .card{position:relative;background:var(--card-bg);border-radius:19px;padding:2.4rem 2rem}
.pg-login .brand,.pg-reset .brand{display:flex;flex-direction:column;align-items:center;gap:.85rem;margin-bottom:1.8rem}
.pg-login .brand .logo,.pg-reset .brand .logo{width:60px;height:60px;border-radius:17px;background:var(--grad);display:block;overflow:hidden;box-shadow:0 0 34px -4px rgba(0,212,255,.55)}
.brand .logo svg{display:block;width:100%;height:100%}
.pg-login .brand h1,.pg-reset .brand h1{font-size:1.5rem;font-weight:800}
.pg-login .brand p,.pg-reset .brand p{font-size:.82rem;color:var(--text3);letter-spacing:.03em}
.pg-login .tabs,.pg-reset .tabs{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:4px;margin-bottom:1.5rem}
.pg-login .tabs button,.pg-reset .tabs button{flex:1;background:none;border:none;color:var(--text2);font-family:var(--font-head);font-weight:600;font-size:.9rem;
  padding:.6rem;border-radius:9px;cursor:pointer;transition:.2s}
.pg-login .tabs button.active,.pg-reset .tabs button.active{color:var(--on-accent);background:var(--grad);box-shadow:0 0 22px -6px rgba(0,212,255,.5)}
.pg-login .field,.pg-reset .field{margin-bottom:1rem}
.pg-login .field.captcha,.pg-reset .field.captcha{display:flex;justify-content:center;min-height:68px}
.pg-login .field label,.pg-reset .field label{display:block;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--text3);margin-bottom:.5rem;text-align:left}
.input-wrap{position:relative;display:flex;align-items:center}
.input-wrap .ico{position:absolute;left:.9rem;color:var(--text3);pointer-events:none}
.input-wrap .ico svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2}
.input-wrap input{width:100%;background:var(--field-bg);border:1px solid var(--border);border-radius:var(--r-input);
  color:var(--text);font-size:16px;font-family:inherit;padding:.82rem .9rem .82rem 2.5rem;outline:none;transition:.2s}
.input-wrap input:focus{border-color:var(--accent);background:rgba(0,212,255,.05);box-shadow:0 0 0 3px rgba(0,212,255,.12)}
.input-wrap input::placeholder{color:var(--text3)}
.toggle-pw{position:absolute;right:.7rem;background:none;border:none;color:var(--text3);cursor:pointer;padding:.3rem}
.toggle-pw svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.submit{width:100%;background:var(--grad);color:var(--on-accent);border:none;border-radius:var(--r-input);
  padding:.9rem;font-family:var(--font-head);font-weight:700;font-size:1rem;cursor:pointer;transition:.2s;
  box-shadow:0 0 30px -6px rgba(0,212,255,.4);margin-top:.4rem}
.submit:hover{transform:translateY(-1px);box-shadow:0 0 44px -4px rgba(0,212,255,.6)}
.submit:disabled{opacity:.6;cursor:not-allowed;transform:none}
.pg-login .err,.pg-reset .err{display:none;background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.35);color:var(--danger);
  border-radius:var(--r-input);padding:.7rem .9rem;font-size:.85rem;margin-bottom:1rem;text-align:center}
.pg-login .err.show,.pg-reset .err.show{display:block;animation:shake .4s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.pg-login .ok,.pg-reset .ok{display:none;background:rgba(18,224,168,.1);border:1px solid rgba(18,224,168,.35);color:var(--emerald);
  border-radius:var(--r-input);padding:.7rem .9rem;font-size:.85rem;margin-bottom:1rem;text-align:center;line-height:1.5}
.pg-login .ok.show,.pg-reset .ok.show{display:block}
.pg-login .hint,.pg-reset .hint{font-size:.72rem;color:var(--text3);margin-top:.4rem;text-align:left}
/* Tautan kecil di dalam kartu (mis. "Lupa sandi?") — <a> atau <button> */
.aux{display:flex;justify-content:flex-end;margin:-.35rem 0 1rem}
.aux-link{font-size:.78rem;font-weight:500;color:var(--text3);background:none;border:none;padding:.2rem 0;font-family:inherit;cursor:pointer;transition:color .2s}
.aux-link:hover{color:var(--accent)}
.back{display:inline-flex;align-items:center;gap:.4rem;margin-top:1.4rem;color:var(--text3);font-size:.82rem}
.back:hover{color:var(--text2)}
.back svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}

/* Langkah kode 2FA di login.php (setelah password benar) */
.tf-head{display:flex;flex-direction:column;align-items:center;gap:.8rem;margin-bottom:1.2rem}
.tf-ico{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;
  background:rgba(0,212,255,.1);border:1px solid rgba(0,212,255,.35);color:var(--accent)}
.tf-ico svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tf-hint{font-size:.86rem;line-height:1.55;color:var(--text2)}
.input-wrap input.otp{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.3rem;letter-spacing:.35em;
  text-align:center;padding-right:.9rem}
.input-wrap input.otp.otp-rc{font-size:1.05rem;letter-spacing:.12em}
.input-wrap input.otp::placeholder{letter-spacing:.2em}
.tf-aux{justify-content:space-between;margin:1rem 0 0;gap:.75rem;flex-wrap:wrap}
.tf-aux .aux-link{min-height:44px}

/* ══ pg-verify ══ */
.pg-verify .card-shell{max-width:420px}
.pg-verify .card{position:relative;background:var(--card-solid);border-radius:19px;padding:2.6rem 2rem;text-align:center}
.pg-verify .ico{width:64px;height:64px;margin:0 auto 1.4rem;border-radius:18px;display:grid;place-items:center}
.pg-verify .ico.ok{background:rgba(18,224,168,.12);border:1px solid rgba(18,224,168,.4)}
.pg-verify .ico.no{background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.4)}
.pg-verify .ico svg{width:32px;height:32px;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.pg-verify .ico.ok svg{stroke:var(--emerald)}
.pg-verify .ico.no svg{stroke:var(--danger)}
.pg-verify h1{font-size:1.35rem;margin-bottom:.7rem}
.pg-verify p{color:var(--text2);font-size:.96rem;line-height:1.6;margin-bottom:1.6rem}
.pg-verify .muted{display:inline-block;margin-top:1.2rem;color:var(--text3);font-size:.85rem}
.pg-verify .muted:hover{color:var(--text2)}

/* Tombol utama gradien (verify & 404) */
.pg-verify .btn,.pg-404 .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;
  background:var(--grad);color:var(--on-accent);border:none;border-radius:var(--r-input);padding:.9rem;
  font-family:var(--font-head);font-weight:700;font-size:1rem;box-shadow:0 0 30px -6px rgba(0,212,255,.4);transition:transform .2s}
.pg-verify .btn:hover,.pg-404 .btn:hover{transform:translateY(-1px)}

/* ══ pg-404 ══ */
.pg-404 .card{background:var(--card-solid);border-radius:21px;padding:2.6rem 2rem 2.2rem;text-align:center}
.pg-404 .big{font-family:var(--font-head);font-weight:800;font-size:clamp(3.6rem,16vw,5rem);line-height:1;letter-spacing:-.04em;
  background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:.9rem}
.pg-404 h1{font-size:1.3rem;letter-spacing:-.01em;margin-bottom:.6rem}
.pg-404 p{color:var(--text2);font-size:.96rem;line-height:1.6;margin-bottom:1.7rem}
.pg-404 .btn svg{width:18px;height:18px}
/* "oleh LinkSanca" kecil di bawah kartu (404 & password wall) */
.pg-404 .brand,.pg-pw .brand{display:inline-flex;align-items:center;gap:.45rem;margin-top:1.4rem;color:var(--text3);font-size:.82rem}
.pg-pw .brand{margin-top:1.3rem}
.pg-404 .brand b,.pg-pw .brand b{color:var(--text2);font-family:var(--font-head)}
.pg-404 .brand .logo,.pg-pw .brand .logo{width:22px;height:22px;border-radius:6px;background:var(--grad);display:block;overflow:hidden;flex:none}

/* ══ pg-pw (link berpassword) ══ */
.pg-pw .shell{max-width:420px}
.pg-pw .card{background:var(--card-solid);border-radius:21px;padding:2.4rem 1.8rem 2rem;text-align:center}
.pg-pw .ico{width:62px;height:62px;margin:0 auto 1.3rem;border-radius:18px;display:grid;place-items:center;
  background:rgba(0,212,255,.1);border:1px solid rgba(0,212,255,.35);color:var(--accent)}
.pg-pw .ico svg{width:30px;height:30px}
.pg-pw h1{font-size:1.25rem;letter-spacing:-.01em;margin-bottom:.55rem}
.pg-pw p{color:var(--text2);font-size:.94rem;line-height:1.6;margin-bottom:1.5rem}
.pg-pw .err{display:flex;align-items:center;gap:.5rem;justify-content:center;color:var(--danger);background:rgba(255,107,107,.08);
  border:1px solid rgba(255,107,107,.35);border-radius:10px;padding:.6rem .8rem;font-size:.88rem;margin-bottom:1rem}
.pg-pw .err svg{width:16px;height:16px;flex:none}
.pg-pw .field{position:relative;margin-bottom:1rem}
.pg-pw input{width:100%;background:var(--field-bg);border:1px solid var(--border2);color:var(--text);
  padding:.85rem 3rem .85rem 1rem;border-radius:var(--r-input);font-size:16px;font-family:inherit;outline:none;transition:.2s}
.pg-pw input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,212,255,.15)}
.pg-pw .eye{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text3);
  cursor:pointer;padding:.4rem;border-radius:8px}
.pg-pw .eye:hover{color:var(--text)}
.pg-pw .eye svg{width:20px;height:20px;display:block}
.pg-pw button.go{width:100%;background:var(--grad);color:var(--on-accent);border:none;border-radius:var(--r-input);padding:.9rem;cursor:pointer;
  font-family:var(--font-head);font-weight:700;font-size:1rem;box-shadow:0 0 30px -6px rgba(0,212,255,.4);transition:transform .2s}
.pg-pw button.go:hover{transform:translateY(-1px)}
.pg-pw button.go:disabled,.pg-pw input:disabled{opacity:.55;cursor:not-allowed;transform:none}
.pg-pw .eye:disabled{opacity:.55;cursor:not-allowed}
/* Ikon gembok merah saat dikunci; pesan dua baris; keterangan huruf besar/kecil & Caps Lock */
.pg-pw .ico.is-locked{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger)}
.pg-pw .err{text-align:left;line-height:1.5}
.pg-pw .err > span{flex:1;min-width:0}
.pg-pw .err-sub{display:block;margin-top:.15rem;color:var(--text2);font-size:.82rem}
.pg-pw .err.is-lock{align-items:flex-start}
.pg-pw .err.is-lock svg{margin-top:.15rem}
.pg-pw .pw-hint,.pg-pw .pw-caps{display:flex;align-items:center;gap:.4rem;margin:-.35rem 0 .9rem;font-size:.8rem;line-height:1.45;text-align:left}
.pg-pw .pw-hint{color:var(--text3)}
.pg-pw .pw-caps{color:var(--warn)}
.pg-pw .pw-hint svg,.pg-pw .pw-caps svg{width:16px;height:16px;flex:none}
.pg-pw .pw-count{margin:-.35rem 0 1rem;font-family:var(--font-head);font-size:1.6rem;font-weight:800;letter-spacing:.02em;color:var(--danger);
  font-variant-numeric:tabular-nums}
.pg-pw .pw-count.is-ready{font-family:var(--font);font-size:.92rem;font-weight:600;color:var(--emerald)}
.pg-pw .pw-captcha{display:flex;justify-content:center;min-height:68px;margin-bottom:1rem}

/* ══ pg-404 · keadaan link (belum dibuka / berakhir / kuota habis) — ikon pengganti angka besar ══ */
.pg-404 .state-ico{width:68px;height:68px;margin:0 auto 1.2rem;border-radius:20px;display:grid;place-items:center;
  background:rgba(0,212,255,.1);border:1px solid rgba(0,212,255,.35);color:var(--accent)}
.pg-404 .state-ico svg{width:34px;height:34px}
.pg-404 .state-ico.is-expired,.pg-404 .state-ico.is-limit{background:var(--warn-soft);border-color:var(--warn-line);color:var(--warn)}

/* ══ pg-redirect (interstitial pixel / pengalihan klien) ══ */
body.pg-redirect{background:var(--rd-bg);color:var(--rd-text)}
.pg-redirect .rc{text-align:center;padding:2rem}
.pg-redirect .sp{width:40px;height:40px;border:3px solid rgba(0,212,255,.15);border-top-color:var(--accent);border-radius:50%;
  animation:sp-rot .7s linear infinite;margin:0 auto 1.5rem}
@keyframes sp-rot{to{transform:rotate(360deg)}}
.pg-redirect .rt{font-size:1rem;color:var(--rd-text2);margin-bottom:.5rem}
.pg-redirect .pb{width:200px;height:3px;background:rgba(0,212,255,.15);border-radius:2px;margin:1.5rem auto 0;overflow:hidden}
.pg-redirect .pf{height:100%;background:var(--rd-grad);border-radius:2px;animation:pb-fill 1.5s ease forwards}
@keyframes pb-fill{from{width:0}to{width:100%}}
/* Tautan cadangan: muncul halus setelah ±2 detik; tambah kelas .now agar langsung terlihat */
.pg-redirect .manual{display:inline-block;margin-top:1.25rem;font-size:.85rem;color:var(--rd-text2);text-decoration:underline;
  text-underline-offset:3px;opacity:0;animation:manual-in .3s ease 2s forwards}
.pg-redirect .manual:hover{color:var(--rd-text)}
.pg-redirect .manual.now{opacity:1;animation:none}
@keyframes manual-in{to{opacity:1}}

/* ══ Mode terang — <html data-theme="light"> (dipasang brand_theme_head() sebelum halaman tergambar) ══
   Aksen & teks bergradien lebih gelap supaya terbaca di kartu putih; tombol gradien tetap cerah. */
:root[data-theme="light"]{
  --bg:#f3f7fb;
  --surface:#ffffff; --surface2:#f6f9fc;
  --border:rgba(16,42,77,.12); --border2:rgba(16,42,77,.2);
  --text:#0d1b2e; --text2:#46566b; --text3:#5a697d;   /* text3 ≥ 5:1 di latar terang (dulu #66768a, 4,3:1) */
  --accent:#00799a; --accent2:#2563eb; --emerald:#047857; --danger:#dc2626;
  --warn:#b45309; --warn-soft:rgba(217,119,6,.1); --warn-line:rgba(180,83,9,.35);
  --danger-soft:rgba(220,38,38,.08); --danger-line:rgba(220,38,38,.35);
  --card-bg:#ffffff; --card-solid:#ffffff; --field-bg:#ffffff;
  --frame-shadow:0 24px 60px -28px rgba(16,42,77,.38);
  --grad-text:linear-gradient(120deg,#0284c7,#2563eb);
  color-scheme:light;
}
:root[data-theme="light"] body.pg-login,:root[data-theme="light"] body.pg-reset{--border:rgba(16,42,77,.14);--surface:#f3f7fb}

/* ── Kurangi animasi ── */
@media (prefers-reduced-motion:reduce){
  .card-shell::before{animation:none}
  .pg-login .err.show,.pg-reset .err.show{animation:none}
  .submit,.pg-verify .btn,.pg-404 .btn,.pg-pw button.go{transition:none}
  .pg-redirect .sp{animation:none}
  .pg-redirect .pf{animation:none;width:100%}
  .pg-redirect .manual{opacity:1;animation:none}
}
