/* ============================================================
   JPT THEME — OJS 3.5.0-5
   Modern Glass UI — Consolidated Stylesheet
   ============================================================ */

/* ═══════════════════════════════════════════════════════════
   1. DESIGN TOKENS
═══════════════════════════════════════════════════════════ */
:root{
  --brand-1:#0f7b52;
  --brand-2:#16a34a;
  --brand-3:#34d399;
  --accent:#0ea5e9;
  --gold:#f59e0b;
  --danger:#ef4444;

  --page-bg:#eef5f1;
  --page-bg-2:#e2efe8;

  --glass-bg:rgba(255,255,255,.55);
  --glass-bg-strong:rgba(255,255,255,.78);
  --glass-border:rgba(255,255,255,.75);
  --glass-shadow:0 10px 34px rgba(8,60,40,.10);
  --glass-shadow-lg:0 22px 60px rgba(8,60,40,.16);

  --text-1:#0b1f18;
  --text-2:#4a6159;
  --text-muted:#7b908a;

  --radius:22px;
  --ease:cubic-bezier(.22,1,.36,1);

  --topbar-h:44px;
  --nav-h:70px;
  --header-h:114px;
  --slide-dur:6.5s;
}
[data-bs-theme="dark"]{
  --page-bg:#060d0a;
  --page-bg-2:#0a1712;
  --glass-bg:rgba(18,30,26,.55);
  --glass-bg-strong:rgba(18,30,26,.82);
  --glass-border:rgba(255,255,255,.09);
  --glass-shadow:0 10px 34px rgba(0,0,0,.45);
  --glass-shadow-lg:0 22px 60px rgba(0,0,0,.6);
  --text-1:#e9f5f0;
  --text-2:#9db3ab;
  --text-muted:#6b8079;
}

/* ═══════════════════════════════════════════════════════════
   2. BASE
═══════════════════════════════════════════════════════════ */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body.jpt-theme{
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;
  color:var(--text-1);
  background:var(--page-bg);
  overflow-x:hidden;
  min-height:100vh;
  margin:0;
  padding:0;
  transition:background .5s var(--ease), color .5s var(--ease);
  -webkit-font-smoothing:antialiased;
  display:flex;
  flex-direction:column;
}
body.jpt-theme a{color:inherit;text-decoration:none;}
body.jpt-theme h1,body.jpt-theme h2,body.jpt-theme h3,
body.jpt-theme h4,body.jpt-theme h5,body.jpt-theme h6{
  color:var(--text-1);margin-top:0;
}
body.jpt-theme p{color:var(--text-2);}
body.jpt-theme img{max-width:100%;height:auto;}
body.jpt-theme section[id]{scroll-margin-top:calc(var(--header-h) + 20px);}
body.jpt-theme::before{
  content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(52,211,153,.20), transparent 60%),
    radial-gradient(900px 500px at 0% 20%, rgba(14,165,233,.14), transparent 60%),
    linear-gradient(180deg, var(--page-bg) 0%, var(--page-bg-2) 100%);
}

/* ═══════════════════════════════════════════════════════════
   3. GLASS UTILITY
═══════════════════════════════════════════════════════════ */
.glass{
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(20px) saturate(170%);
  backdrop-filter:blur(20px) saturate(170%);
  border:1px solid var(--glass-border);
  box-shadow:var(--glass-shadow);
  border-radius:var(--radius);
}

/* ═══════════════════════════════════════════════════════════
   4. KEYFRAMES
═══════════════════════════════════════════════════════════ */
@keyframes jpt-bell{
  0%,60%,100%{transform:rotate(0);}
  70%,90%{transform:rotate(14deg);}
  80%{transform:rotate(-12deg);}
}
@keyframes jpt-pulse{
  0%{box-shadow:0 0 0 0 rgba(52,211,153,.7);}
  70%{box-shadow:0 0 0 12px rgba(52,211,153,0);}
  100%{box-shadow:0 0 0 0 rgba(52,211,153,0);}
}
@keyframes jpt-pulseRed{
  0%{box-shadow:0 0 0 0 rgba(239,68,68,.7);}
  70%{box-shadow:0 0 0 9px rgba(239,68,68,0);}
  100%{box-shadow:0 0 0 0 rgba(239,68,68,0);}
}
@keyframes jpt-marquee{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@keyframes jpt-shine{
  to{background-position:220% center;}
}
@keyframes jpt-fill{
  from{transform:scaleX(0);}
  to{transform:scaleX(1);}
}
@keyframes jpt-spin{
  to{transform:rotate(360deg);}
}
@keyframes jpt-shake{
  0%,100%{transform:translateX(0);}
  20%,60%{transform:translateX(-8px);}
  40%,80%{transform:translateX(8px);}
}
@keyframes jpt-fadeTab{
  from{opacity:0;transform:translateY(12px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes jpt-alertIn{
  from{opacity:0;transform:translateY(-4px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes jpt-alertSlide{
  from{opacity:0;transform:translateY(-8px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes jpt-checkIn{
  from{opacity:0;transform:scale(0);}
  to{opacity:1;transform:scale(1);}
}
@keyframes jpt-cardIn{
  from{opacity:0;transform:translateY(28px) scale(.96);}
  to{opacity:1;transform:translateY(0) scale(1);}
}
@keyframes jpt-logoPop{
  0%{transform:scale(0) rotate(-30deg);opacity:0;}
  60%{transform:scale(1.08) rotate(6deg);opacity:1;}
  100%{transform:scale(1) rotate(0);opacity:1;}
}
@keyframes jpt-logoGlow{
  0%,100%{opacity:.5;transform:scale(1);}
  50%{opacity:1;transform:scale(1.1);}
}
@keyframes jpt-activeDot{
  0%{box-shadow:0 0 0 0 rgba(52,211,153,.85);}
  70%{box-shadow:0 0 0 8px rgba(52,211,153,0);}
  100%{box-shadow:0 0 0 0 rgba(52,211,153,0);}
}
@keyframes jpt-ctaBadgePulse{
  0%{box-shadow:0 0 0 0 rgba(239,68,68,.7);}
  70%{box-shadow:0 0 0 8px rgba(239,68,68,0);}
  100%{box-shadow:0 0 0 0 rgba(239,68,68,0);}
}

/* ═══════════════════════════════════════════════════════════
   5. TOPBAR
═══════════════════════════════════════════════════════════ */
.jpt-topbar{
  position:relative;
  flex-shrink:0;
  width:100%;
  height:var(--topbar-h);
  display:flex;
  align-items:center;
  overflow:hidden;
  background:linear-gradient(90deg,
    rgba(15,123,82,.95) 0%,
    rgba(22,163,74,.93) 45%,
    rgba(52,211,153,.92) 100%);
  -webkit-backdrop-filter:blur(16px) saturate(180%);
  backdrop-filter:blur(16px) saturate(180%);
  border-bottom:1px solid rgba(255,255,255,.20);
  color:#fff;
  z-index:1050;
}
.jpt-topbar::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(115deg,
    rgba(255,255,255,.07) 0 2px,transparent 2px 20px);
  opacity:.6;
}
.topbar-label{
  position:relative;z-index:3;
  display:inline-flex;align-items:center;gap:.5rem;
  padding:0 1.1rem 0 1.2rem;
  height:100%;
  font-size:.74rem;font-weight:800;
  letter-spacing:1.2px;text-transform:uppercase;
  background:rgba(0,0,0,.18);
  border-right:1px solid rgba(255,255,255,.22);
  white-space:nowrap;flex-shrink:0;
}
.topbar-label i{
  font-size:.95rem;
  animation:jpt-bell 2.4s ease-in-out infinite;
  transform-origin:top center;
}
.topbar-marquee{
  position:relative;z-index:2;
  flex:1 1 auto;overflow:hidden;height:100%;
  display:flex;align-items:center;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 40px,#000 calc(100% - 40px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 40px,#000 calc(100% - 40px),transparent 100%);
}
.topbar-track{
  display:flex;align-items:center;gap:2.6rem;
  padding-left:1.6rem;padding-right:1.2rem;
  white-space:nowrap;
  will-change:transform;
  animation:jpt-marquee 34s linear infinite;
}
.topbar-marquee:hover .topbar-track{animation-play-state:paused;}
.topbar-item{
  display:inline-flex;align-items:center;gap:.55rem;
  font-size:.83rem;font-weight:600;
  color:#fff;padding:.2rem 0;
  transition:color .3s var(--ease);
}
.topbar-item:hover{color:#fef3c7;}
.dot-sep{
  width:6px;height:6px;border-radius:50%;
  background:rgba(255,255,255,.85);
  box-shadow:0 0 8px rgba(255,255,255,.8);
  flex-shrink:0;
}
.badge-live{
  font-size:.6rem;font-weight:800;letter-spacing:.6px;
  padding:.15rem .42rem;border-radius:6px;
  background:#ef4444;color:#fff;
  text-transform:uppercase;position:relative;
}
.badge-live::before{
  content:'';position:absolute;inset:0;border-radius:6px;
  box-shadow:0 0 0 0 rgba(239,68,68,.75);
  animation:jpt-pulseRed 1.8s infinite;
}
.badge-new{
  font-size:.6rem;font-weight:800;letter-spacing:.6px;
  padding:.15rem .42rem;border-radius:6px;
  background:linear-gradient(135deg,#f59e0b,#fbbf24);
  color:#432a02;text-transform:uppercase;
  box-shadow:0 3px 10px rgba(245,158,11,.5);
}

/* ═══════════════════════════════════════════════════════════
   6. NAVBAR
═══════════════════════════════════════════════════════════ */
.jpt-navbar{
  position:sticky;top:0;z-index:1030;
  flex-shrink:0;
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
  backdrop-filter:blur(22px) saturate(180%);
  border-bottom:1px solid var(--glass-border);
  box-shadow:0 6px 22px rgba(8,60,40,.08);
  transition:all .45s var(--ease);
  padding:0;
}
.jpt-navbar.scrolled{
  box-shadow:0 10px 32px rgba(8,60,40,.16);
  background:var(--glass-bg-strong);
}
.jpt-navbar .nav-inner{
  max-width:1320px;margin-inline:auto;
  padding:.7rem 1.1rem;
  display:flex;align-items:center;gap:1rem;position:relative;
}
.navbar-brand{
  display:flex;align-items:center;gap:.7rem;
  font-weight:800;letter-spacing:-.4px;flex-shrink:0;color:var(--text-1);
}
.brand-logo{
  width:44px;height:44px;border-radius:13px;
  display:grid;place-items:center;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  color:#fff;font-size:1.35rem;
  box-shadow:0 8px 22px rgba(15,123,82,.42);
  transition:transform .5s var(--ease);flex-shrink:0;
}
.navbar-brand:hover .brand-logo{transform:rotate(-8deg) scale(1.08);}
.navbar-brand .brand-text{
  display:flex;flex-direction:column;line-height:1.15;
  min-width:0;max-width:280px;
}
.navbar-brand .brand-title{
  font-size:1.05rem;font-weight:800;color:var(--text-1);
  letter-spacing:-.35px;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
  line-height:1.1;transition:color .3s var(--ease);
}
.navbar-brand .brand-subtitle{
  display:block;font-size:.68rem;font-weight:500;
  color:var(--text-2);letter-spacing:.35px;margin-top:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.9;
}
.navbar-brand:hover .brand-title{color:var(--brand-1);}
[data-bs-theme="dark"] .navbar-brand:hover .brand-title{color:var(--brand-3);}

/* Brand logo image */
.brand-logo-img{
  max-height:52px;
  max-width:180px;
  width:auto;
  height:auto;
  object-fit:contain;
  object-position:left center;
  flex-shrink:0;
  display:block;
  border-radius:8px;
  transition:transform .5s var(--ease), filter .35s var(--ease);
  filter:drop-shadow(0 2px 6px rgba(8,60,40,.12));
  background:transparent;
}
.navbar-brand:hover .brand-logo-img{
  transform:scale(1.05);
  filter:drop-shadow(0 4px 12px rgba(15,123,82,.25));
}
[data-bs-theme="dark"] .brand-logo-img{
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.4)) brightness(1.02);
}
[data-bs-theme="dark"] .navbar-brand:hover .brand-logo-img{
  filter:drop-shadow(0 4px 12px rgba(52,211,153,.3)) brightness(1.05);
}

.nav-toggler{
  display:none;width:42px;height:42px;border-radius:12px;
  border:1px solid var(--glass-border);
  background:var(--glass-bg);color:var(--text-1);
  font-size:1.4rem;cursor:pointer;
  transition:all .3s var(--ease);
  margin-left:auto;place-items:center;padding:0;
}
.nav-toggler:hover{color:var(--brand-1);transform:rotate(6deg);}
.navbar-collapse{
  display:flex;align-items:center;
  flex:1 1 auto;gap:1rem;
}

/* ─── NAV MENU ─── */
.nav-menu{
  list-style:none;margin:0 auto 0 0;padding:0;
  display:flex;align-items:center;gap:.5rem;
}
.nav-menu li{list-style:none;}
.nav-item{position:relative;}
.nav-link-effect{
  position:relative;display:inline-flex;align-items:center;gap:.55rem;
  padding:.62rem 1.1rem;border-radius:12px;
  font-weight:600;font-size:.875rem;letter-spacing:-.15px;
  color:var(--text-2);background:var(--glass-bg);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border:1px solid var(--glass-border);
  cursor:pointer;overflow:hidden;isolation:isolate;
  box-shadow:0 2px 6px -2px rgba(8,60,40,.06),
             inset 0 1px 0 rgba(255,255,255,.5);
  transition:color .35s var(--ease),background .35s var(--ease),
             border-color .35s var(--ease),
             transform .4s cubic-bezier(.34,1.56,.64,1),
             box-shadow .4s var(--ease);
}
[data-bs-theme="dark"] .nav-link-effect{
  background:rgba(18,30,26,.6);
  border-color:rgba(255,255,255,.08);
}
.nav-link-effect::before{
  content:'';position:absolute;inset:0;border-radius:12px;
  background:linear-gradient(135deg,
    rgba(52,211,153,.2),rgba(14,165,233,.12));
  opacity:0;transform:scale(.85);
  transition:opacity .35s var(--ease), transform .45s var(--ease);
  z-index:-2;
}
.nav-link-effect::after{
  content:'';position:absolute;top:0;left:-130%;
  width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);
  transform:skewX(-22deg);transition:left .85s var(--ease);
  pointer-events:none;z-index:-1;
}
.nav-link-effect .nav-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:20px;height:20px;font-size:1rem;color:var(--brand-1);
  transition:transform .5s cubic-bezier(.34,1.56,.64,1),
             color .3s var(--ease),filter .3s var(--ease);
}
[data-bs-theme="dark"] .nav-link-effect .nav-icon{color:var(--brand-3);}
.nav-link-effect .nav-label{
  position:relative;display:inline-block;
  transition:transform .35s var(--ease);
}
.nav-link-effect .nav-active-dot{
  position:absolute;top:.35rem;right:.45rem;
  width:6px;height:6px;border-radius:50%;background:var(--brand-3);
  box-shadow:0 0 0 0 rgba(52,211,153,.85);
  animation:jpt-activeDot 2.2s infinite;
}
.nav-link-effect:hover{
  color:var(--brand-1);border-color:var(--brand-3);
  transform:translateY(-3px);
  box-shadow:0 12px 24px -8px rgba(15,123,82,.28),
             0 6px 14px -6px rgba(14,165,233,.18),
             inset 0 1px 0 rgba(255,255,255,.55);
}
[data-bs-theme="dark"] .nav-link-effect:hover{
  color:var(--brand-3);border-color:rgba(52,211,153,.5);
}
.nav-link-effect:hover::before{opacity:1;transform:scale(1);}
.nav-link-effect:hover::after{left:130%;}
.nav-link-effect:hover .nav-icon{
  transform:scale(1.2) rotate(-10deg);
  filter:drop-shadow(0 3px 8px rgba(52,211,153,.5));
}
.nav-link-effect:hover .nav-label{transform:translateY(-1px);}

.nav-link-effect.active{
  color:#fff;
  background:linear-gradient(135deg,
    var(--brand-1),var(--brand-2) 50%,var(--brand-3));
  background-size:200% 200%;
  border-color:transparent;
  box-shadow:0 10px 22px -6px rgba(15,123,82,.5),
             0 4px 10px -4px rgba(52,211,153,.4),
             inset 0 1px 0 rgba(255,255,255,.3);
  transform:translateY(-1px);
}
.nav-link-effect.active:hover{
  background-position:100% 50%;
  transform:translateY(-3px);
}
.nav-link-effect.active::before{opacity:0;}
.nav-link-effect.active .nav-icon{
  color:#fff;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.15));
}
.nav-link-effect.active .nav-label{color:#fff;}
.nav-link-effect.active .nav-active-dot{background:#fef3c7;}

.nav-link-effect.dropdown-toggle::after{
  content:'';display:inline-block;width:5px;height:5px;
  border-right:1.8px solid currentColor;
  border-bottom:1.8px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
  margin-left:.35rem;
  transition:transform .4s var(--ease);
  vertical-align:middle;opacity:.7;
}
.nav-item.dropdown.show .nav-link-effect.dropdown-toggle::after{
  transform:rotate(-135deg) translateY(-2px);opacity:1;
}

/* ─── NAV ACTIONS ─── */
.nav-actions{
  display:flex;align-items:center;gap:.55rem;flex-shrink:0;
}
.btn-glass-icon{
  width:42px;height:42px;border-radius:12px;
  display:grid;place-items:center;
  border:1px solid var(--glass-border);
  background:var(--glass-bg);color:var(--text-1);
  cursor:pointer;transition:all .35s var(--ease);padding:0;
}
.btn-glass-icon:hover{
  transform:translateY(-3px) rotate(8deg);
  color:var(--brand-1);box-shadow:var(--glass-shadow);
}

/* ─── CTA — DAFTAR ─── */
.btn-nav-cta{
  position:relative;display:inline-flex;align-items:center;gap:.5rem;
  padding:.62rem 1.15rem;border-radius:12px;
  font-weight:700;font-size:.85rem;letter-spacing:-.1px;
  color:#fff;
  background:linear-gradient(135deg,
    var(--brand-1),var(--brand-2) 45%,var(--brand-3));
  background-size:200% 200%;
  border:none;overflow:hidden;isolation:isolate;cursor:pointer;
  box-shadow:0 8px 22px -6px rgba(15,123,82,.5),
             0 4px 12px -4px rgba(52,211,153,.35),
             inset 0 1px 0 rgba(255,255,255,.25);
  transition:transform .45s cubic-bezier(.34,1.56,.64,1),
             box-shadow .45s var(--ease),
             background-position .8s var(--ease);
}
.btn-nav-cta:hover{
  transform:translateY(-3px) scale(1.03);
  background-position:100% 50%;color:#fff;
  box-shadow:0 14px 32px -8px rgba(15,123,82,.6),
             0 8px 18px -6px rgba(52,211,153,.5),
             inset 0 1px 0 rgba(255,255,255,.35);
}
.btn-nav-cta::before{
  content:'';position:absolute;top:0;left:-130%;
  width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-22deg);
  transition:left .85s var(--ease);
  pointer-events:none;
}
.btn-nav-cta:hover::before{left:140%;}
.btn-nav-cta .nav-cta-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:1rem;height:1rem;
  transition:transform .5s cubic-bezier(.34,1.56,.64,1);
}
.btn-nav-cta:hover .nav-cta-icon{
  transform:translateX(2px) rotate(-12deg) scale(1.15);
}
.btn-nav-cta .nav-cta-badge{
  position:absolute;top:-3px;right:-3px;
  width:11px;height:11px;border-radius:50%;background:#ef4444;
  border:2px solid var(--glass-bg-strong);
  box-shadow:0 0 0 0 rgba(239,68,68,.7);
  animation:jpt-ctaBadgePulse 2s infinite;
}

/* ─── LOGIN ─── */
.btn-nav-login{
  position:relative;display:inline-flex;align-items:center;gap:.5rem;
  padding:.62rem 1.05rem;border-radius:12px;
  font-weight:700;font-size:.85rem;
  color:var(--brand-1);background:var(--glass-bg);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border:1px solid var(--glass-border);
  overflow:hidden;cursor:pointer;
  transition:transform .45s cubic-bezier(.34,1.56,.64,1),
             box-shadow .4s var(--ease),
             border-color .35s var(--ease),
             background .35s var(--ease);
}
[data-bs-theme="dark"] .btn-nav-login{color:var(--brand-3);}
.btn-nav-login:hover{
  transform:translateY(-3px);color:var(--brand-1);
  background:linear-gradient(135deg,
    rgba(52,211,153,.14),rgba(14,165,233,.10));
  border-color:var(--brand-3);
  box-shadow:0 12px 26px -10px rgba(15,123,82,.35);
}
[data-bs-theme="dark"] .btn-nav-login:hover{color:var(--brand-3);}
.btn-nav-login .nav-cta-icon{
  transition:transform .5s cubic-bezier(.34,1.56,.64,1);
}
.btn-nav-login:hover .nav-cta-icon{
  transform:rotate(-10deg) scale(1.15);
}

/* ─── DROPDOWN ─── */
.dropdown-menu-glass{
  position:absolute !important;
  top:calc(100% + .6rem) !important;
  left:0 !important;right:auto !important;
  transform:none !important;margin:0 !important;
  padding:.55rem !important;
  min-width:250px;max-width:320px;
  background:var(--glass-bg-strong) !important;
  -webkit-backdrop-filter:blur(28px) saturate(200%) !important;
  backdrop-filter:blur(28px) saturate(200%) !important;
  border:1px solid var(--glass-border) !important;
  border-radius:16px !important;
  box-shadow:0 20px 50px -12px rgba(8,60,40,.30),
             0 8px 20px -8px rgba(8,60,40,.20),
             inset 0 1px 0 rgba(255,255,255,.6) !important;
  opacity:0;visibility:hidden;
  transform:translateY(-8px) scale(.96) !important;
  transition:opacity .25s var(--ease),
             visibility .25s var(--ease),
             transform .25s var(--ease);
  z-index:1055;
  max-height:calc(100vh - 120px);overflow-y:auto;
}
.dropdown-menu-glass.show{
  opacity:1;visibility:visible;
  transform:translateY(0) scale(1) !important;
}
.dropdown-menu-glass.dropdown-menu-end{
  left:auto !important;right:0 !important;
}
.dropdown-menu-glass .dropdown-item{
  display:flex;align-items:center;gap:.7rem;
  padding:.65rem .85rem;border-radius:11px;
  font-weight:600;font-size:.85rem;color:var(--text-1);
  transition:all .25s var(--ease);margin-bottom:.15rem;
}
.dropdown-menu-glass .dropdown-item:last-child{margin-bottom:0;}
.dropdown-menu-glass .dropdown-item i{
  flex-shrink:0;width:1.2rem;height:1.2rem;
  display:grid;place-items:center;font-size:1rem;
  color:var(--brand-1);
  transition:transform .3s var(--ease), color .25s var(--ease);
}
[data-bs-theme="dark"] .dropdown-menu-glass .dropdown-item i{color:var(--brand-3);}
.dropdown-menu-glass .dropdown-item:hover{
  background:linear-gradient(135deg,
    rgba(52,211,153,.15),rgba(14,165,233,.10));
  color:var(--brand-1);transform:translateX(3px);
}
[data-bs-theme="dark"] .dropdown-menu-glass .dropdown-item:hover{
  background:linear-gradient(135deg,
    rgba(52,211,153,.18),rgba(14,165,233,.12));
  color:var(--brand-3);
}
.dropdown-menu-glass .dropdown-item:hover i{
  transform:scale(1.15) rotate(-6deg);
}
.dropdown-menu-glass .dropdown-item.active{
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  color:#fff;
}
.dropdown-menu-glass .dropdown-item.active i{color:#fff;}
.dropdown-menu-glass .dropdown-divider{
  margin:.4rem .3rem;
  border-color:var(--glass-border);opacity:.7;
}
.dropdown-menu-glass .dropdown-header-glass{
  font-size:.7rem;font-weight:800;
  letter-spacing:1px;text-transform:uppercase;
  color:var(--text-2);padding:.4rem .85rem .35rem;opacity:.8;
}

/* ─── User avatar ─── */
.user-menu{position:relative;}
.user-avatar{
  width:38px;height:38px;border-radius:50%;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  color:#fff;font-weight:800;font-size:.9rem;
  display:grid;place-items:center;
  border:2px solid rgba(255,255,255,.7);
  box-shadow:0 6px 16px rgba(15,123,82,.35);
  cursor:pointer;transition:transform .35s var(--ease);
}
.user-avatar:hover{transform:scale(1.08);}
.user-menu .dropdown-toggle::after{display:none;}

/* ═══════════════════════════════════════════════════════════
   7. HERO CAROUSEL
═══════════════════════════════════════════════════════════ */
.hero-carousel{
  position:relative;
  height:min(88vh, 780px);min-height:560px;
  overflow:hidden;
  border-bottom-left-radius:34px;
  border-bottom-right-radius:34px;
  box-shadow:0 30px 80px -30px rgba(8,60,40,.5);
  isolation:isolate;
  margin-bottom:2rem;
}
.carousel-slides{position:absolute;inset:0;}
.carousel-slide{
  position:absolute;inset:0;
  opacity:0;visibility:hidden;
  transition:opacity 1.4s var(--ease), visibility 1.4s var(--ease);
  z-index:1;
}
.carousel-slide.active{opacity:1;visibility:visible;z-index:2;}
.slide-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  transform:scale(1.06);
  transition:transform 8s ease-out;
}
.carousel-slide.active .slide-bg{transform:scale(1.18);}
.slide-overlay{
  position:absolute;inset:0;z-index:2;
  background:
    linear-gradient(90deg,
      rgba(4,24,18,.88) 0%,
      rgba(4,24,18,.6) 45%,
      rgba(4,24,18,.2) 75%,
      transparent 100%),
    linear-gradient(180deg, transparent 50%, rgba(4,24,18,.55) 100%);
}
.slide-content{
  position:relative;z-index:3;height:100%;
  display:flex;align-items:center;
}
.slide-content .container{
  max-width:1320px;margin-inline:auto;
  padding-inline:1.4rem;width:100%;
}
.slide-card{
  background:transparent;border:none;
  padding:0;max-width:680px;color:#fff;position:relative;
}
.slide-card > *{
  position:relative;z-index:2;
  opacity:0;transform:translateY(38px);
  transition:opacity .9s var(--ease), transform .9s var(--ease);
  text-shadow:0 2px 20px rgba(0,0,0,.45);
}
.carousel-slide.active .slide-card > *:nth-child(1){opacity:1;transform:none;transition-delay:.25s;}
.carousel-slide.active .slide-card > *:nth-child(2){opacity:1;transform:none;transition-delay:.40s;}
.carousel-slide.active .slide-card > *:nth-child(3){opacity:1;transform:none;transition-delay:.55s;}
.carousel-slide.active .slide-card > *:nth-child(4){opacity:1;transform:none;transition-delay:.70s;}
.carousel-slide.active .slide-card > *:nth-child(5){opacity:1;transform:none;transition-delay:.85s;}
.slide-badge{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.5rem 1.05rem;border-radius:100px;
  font-size:.74rem;font-weight:800;
  letter-spacing:.6px;text-transform:uppercase;
  background:rgba(52,211,153,.18);
  border:1px solid rgba(52,211,153,.45);
  color:#a7f3d0;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  margin-bottom:1.2rem;text-shadow:none;width:max-content;
}
.pulse-dot{
  width:8px;height:8px;border-radius:50%;background:var(--brand-3);
  box-shadow:0 0 0 0 rgba(52,211,153,.8);
  animation:jpt-pulse 2s infinite;
}
.slide-title{
  font-size:clamp(2rem,4.6vw,3.6rem);
  font-weight:800;line-height:1.08;
  letter-spacing:-1.6px;color:#fff;
  margin:0 0 1.1rem;
  text-shadow:0 4px 30px rgba(0,0,0,.6);
}
.slide-title .accent{
  background:linear-gradient(120deg,#a7f3d0,#34d399 50%,#38bdf8);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  background-size:220% auto;
  animation:jpt-shine 6s linear infinite;
  text-shadow:none;
}
.slide-sub{
  color:rgba(255,255,255,.9);
  font-size:1.05rem;line-height:1.75;
  margin:0 0 1.7rem;max-width:560px;
  text-shadow:0 2px 14px rgba(0,0,0,.55);
}
.slide-meta{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.6rem;}
.meta-chip{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.72rem;font-weight:700;
  padding:.4rem .75rem;border-radius:10px;
  background:rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.22);
  color:#fff;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
}
.slide-actions{display:flex;flex-wrap:wrap;gap:.75rem;}
.carousel-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:54px;height:54px;border-radius:16px;
  display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(15,32,26,.35);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
  backdrop-filter:blur(18px) saturate(180%);
  color:#fff;font-size:1.2rem;cursor:pointer;
  opacity:.85;padding:0;
  transition:all .35s var(--ease);
}
.carousel-nav:hover{
  background:rgba(52,211,153,.5);
  border-color:rgba(52,211,153,.7);
  transform:translateY(-50%) scale(1.08);
  opacity:1;
}
.carousel-nav.prev{left:24px;}
.carousel-nav.next{right:24px;}
.carousel-dots{
  position:absolute;bottom:30px;left:50%;
  transform:translateX(-50%);z-index:5;
  display:flex;gap:.6rem;padding:.55rem .8rem;border-radius:100px;
  background:rgba(15,32,26,.4);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
  backdrop-filter:blur(18px) saturate(180%);
  border:1px solid rgba(255,255,255,.18);
}
.carousel-dots .dot{
  width:10px;height:10px;border-radius:50%;
  background:rgba(255,255,255,.35);
  border:none;cursor:pointer;padding:0;
  transition:all .4s var(--ease);
}
.carousel-dots .dot:hover{
  background:rgba(255,255,255,.6);transform:scale(1.15);
}
.carousel-dots .dot.active{
  width:30px;border-radius:100px;
  background:linear-gradient(90deg,var(--brand-3),#a7f3d0);
  box-shadow:0 0 16px rgba(52,211,153,.7);
}
.carousel-progress{
  position:absolute;bottom:0;left:0;right:0;height:4px;
  background:rgba(255,255,255,.12);z-index:5;overflow:hidden;
}
.carousel-progress .fill{
  height:100%;width:100%;
  background:linear-gradient(90deg,var(--brand-3),#a7f3d0,#38bdf8);
  transform-origin:left center;transform:scaleX(0);
  box-shadow:0 0 12px rgba(52,211,153,.6);
}
.carousel-progress .fill.run{
  animation:jpt-fill var(--slide-dur) linear forwards;
}
.carousel-counter{
  position:absolute;right:30px;bottom:30px;z-index:5;
  display:flex;align-items:baseline;gap:.3rem;
  font-weight:800;color:#fff;
  padding:.5rem 1rem;border-radius:100px;
  background:rgba(15,32,26,.4);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
  backdrop-filter:blur(18px) saturate(180%);
  border:1px solid rgba(255,255,255,.18);
  font-size:.85rem;letter-spacing:.6px;
}
.carousel-counter .current{color:var(--brand-3);font-size:1.05rem;}
.carousel-counter .sep{opacity:.5;font-weight:600;}
.carousel-counter .total{opacity:.65;font-weight:700;}

/* ═══════════════════════════════════════════════════════════
   8. SECTIONS
═══════════════════════════════════════════════════════════ */
.section-pad{padding:78px 0;position:relative;}
.eyebrow{
  font-size:.75rem;font-weight:800;
  letter-spacing:2px;text-transform:uppercase;
  color:var(--brand-1);margin-bottom:.5rem;
}
[data-bs-theme="dark"] .eyebrow{color:var(--brand-3);}
.section-title{
  font-weight:800;letter-spacing:-1.1px;
  font-size:clamp(1.6rem,3.4vw,2.35rem);
  color:var(--text-1);margin:0 0 1rem;
}
.section-sub{
  color:var(--text-2);max-width:620px;
  margin-inline:auto;line-height:1.75;
}

/* ─── STAT CARDS ─── */
.stat-card{
  padding:1.6rem 1.4rem;text-align:center;
  position:relative;overflow:hidden;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease);
}
.stat-card:hover{
  transform:translateY(-8px);
  box-shadow:var(--glass-shadow-lg);
}
.stat-icon{
  width:52px;height:52px;border-radius:15px;
  display:grid;place-items:center;margin:0 auto .9rem;
  font-size:1.4rem;color:#fff;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  box-shadow:0 10px 24px rgba(15,123,82,.32);
  transition:transform .5s var(--ease);
}
.stat-card:hover .stat-icon{transform:rotate(-10deg) scale(1.1);}
.stat-num{
  font-size:2rem;font-weight:800;
  letter-spacing:-1px;line-height:1;color:var(--text-1);
}
.stat-label{
  font-size:.8rem;color:var(--text-2);
  font-weight:600;margin-top:.35rem;
}

/* ─── ISSUE CARD ─── */
.issue-card{
  position:relative;overflow:hidden;padding:1.4rem;
  height:100%;display:flex;flex-direction:column;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
}
.issue-card:hover{
  transform:translateY(-10px);
  box-shadow:var(--glass-shadow-lg);
}
.issue-cover{
  border-radius:16px;aspect-ratio:3/4;
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:1.1rem;color:#fff;margin-bottom:1.1rem;
  box-shadow:0 18px 36px -14px rgba(0,0,0,.5);
  transition:transform .6s var(--ease);
}
.issue-card:hover .issue-cover{transform:scale(1.04);}
.issue-cover::before{
  content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(120deg,
    rgba(255,255,255,.08) 0 2px,transparent 2px 18px);
}
.issue-cover.v1{background:linear-gradient(150deg,#064e3b,#0f7b52,#34d399);}
.issue-cover.v2{background:linear-gradient(150deg,#0c4a6e,#0284c7,#38bdf8);}
.issue-cover.v3{background:linear-gradient(150deg,#713f12,#b45309,#fbbf24);}
.issue-cover.v4{background:linear-gradient(150deg,#3b0764,#7e22ce,#c084fc);}
.issue-cover span{position:relative;z-index:2;}
.issue-vol{
  font-size:.66rem;font-weight:800;
  letter-spacing:1.4px;opacity:.9;
}
.issue-name{
  font-weight:800;font-size:1.05rem;
  line-height:1.25;letter-spacing:-.3px;
}
.issue-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.8rem;}
.chip{
  font-size:.68rem;font-weight:700;
  padding:.3rem .6rem;border-radius:8px;
  background:rgba(15,123,82,.1);color:var(--brand-1);
  border:1px solid rgba(15,123,82,.18);display:inline-block;
}
[data-bs-theme="dark"] .chip{
  background:rgba(52,211,153,.12);
  color:var(--brand-3);
  border-color:rgba(52,211,153,.2);
}
.chip.alt{
  background:rgba(14,165,233,.1);
  color:#0284c7;
  border-color:rgba(14,165,233,.2);
}
[data-bs-theme="dark"] .chip.alt{color:#38bdf8;}
.issue-card h3{
  color:var(--text-1);font-size:.95rem;
  line-height:1.35;margin-bottom:.7rem;
}
.issue-card h3 a{color:inherit;}
.issue-card h3 a:hover{color:var(--brand-1);}

/* ─── ARTICLE ITEM ─── */
.article-item{
  display:flex;gap:1.1rem;padding:1.35rem;
  border-radius:var(--radius);position:relative;overflow:hidden;
  border:1px solid transparent;
  transition:transform .45s var(--ease),
             box-shadow .45s var(--ease),
             background .45s var(--ease);
}
.article-item + .article-item{margin-top:.85rem;}
.article-item:hover{
  transform:translateX(6px);
  background:var(--glass-bg);
  border-color:var(--glass-border);
  box-shadow:var(--glass-shadow);
}
.article-num{
  flex:0 0 46px;height:46px;border-radius:14px;
  display:grid;place-items:center;
  font-weight:800;font-size:.95rem;color:var(--brand-1);
  background:rgba(15,123,82,.1);
  border:1px solid rgba(15,123,82,.16);
  transition:all .45s var(--ease);
}
[data-bs-theme="dark"] .article-num{
  background:rgba(52,211,153,.12);
  color:var(--brand-3);
  border-color:rgba(52,211,153,.2);
}
.article-item:hover .article-num{
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  color:#fff;transform:rotate(-8deg) scale(1.06);
}
.article-title{
  font-weight:700;font-size:1rem;
  line-height:1.45;letter-spacing:-.3px;
  margin-bottom:.45rem;
  color:var(--text-1);display:block;
  transition:color .3s;
}
.article-title:hover{color:var(--brand-1);}
[data-bs-theme="dark"] .article-title:hover{color:var(--brand-3);}
.article-authors{
  font-size:.82rem;color:var(--text-2);margin-bottom:.6rem;
}
.article-authors i{color:var(--brand-2);}
.article-foot{
  display:flex;flex-wrap:wrap;gap:.9rem;
  font-size:.73rem;color:var(--text-2);font-weight:600;
}
.article-foot span{display:inline-flex;align-items:center;gap:.3rem;}
.badge-oa{
  font-size:.66rem;font-weight:800;
  padding:.28rem .58rem;border-radius:8px;
  background:linear-gradient(135deg,var(--gold),#fbbf24);
  color:#432a02;display:inline-block;
}

/* ─── TABS — nav-pills-glass ─── */
.nav-pills-glass{
  display:inline-flex;gap:.35rem;padding:.35rem;
  border-radius:16px;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
  list-style:none;margin:0;flex-wrap:wrap;max-width:100%;
}
.nav-pills-glass .nav-item{list-style:none;}
.nav-pills-glass .nav-link{
  display:inline-flex;align-items:center;gap:.4rem;
  white-space:nowrap;border-radius:12px;
  font-weight:700;font-size:.85rem;
  color:var(--text-2);padding:.55rem 1.05rem;
  transition:all .35s var(--ease);
  background:transparent;border:none;cursor:pointer;
}
.nav-pills-glass .nav-link i{
  font-size:.9rem;opacity:.85;
  transition:transform .3s var(--ease), opacity .3s var(--ease);
}
.nav-pills-glass .nav-link:hover{color:var(--brand-1);}
.nav-pills-glass .nav-link:hover i{transform:scale(1.15);opacity:1;}
.nav-pills-glass .nav-link.active{
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  color:#fff;
  box-shadow:0 8px 20px rgba(15,123,82,.35);
}
.nav-pills-glass .nav-link.active i{
  opacity:1;color:#fff;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.15));
}

/* ─── Sidebar ─── */
.side-card{padding:1.4rem;margin-bottom:1.25rem;}
.side-title{
  font-size:.95rem;font-weight:800;
  letter-spacing:-.2px;margin:0 0 1rem;
  display:flex;align-items:center;gap:.55rem;color:var(--text-1);
}
.side-title i{color:var(--brand-1);}
[data-bs-theme="dark"] .side-title i{color:var(--brand-3);}
.announce{
  display:flex;gap:.85rem;padding:.85rem;
  border-radius:14px;color:inherit;
  transition:background .35s var(--ease),transform .35s var(--ease);
}
.announce:hover{
  background:rgba(15,123,82,.07);
  transform:translateX(4px);
}
[data-bs-theme="dark"] .announce:hover{background:rgba(52,211,153,.08);}
.announce-date{
  flex:0 0 48px;text-align:center;
  border-radius:12px;padding:.4rem .2rem;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
}
.announce-date b{
  display:block;font-size:1.05rem;font-weight:800;
  line-height:1;color:var(--brand-1);
}
[data-bs-theme="dark"] .announce-date b{color:var(--brand-3);}
.announce-date small{
  font-size:.63rem;color:var(--text-2);
  font-weight:700;text-transform:uppercase;
}
.announce p{
  margin:0;font-size:.83rem;font-weight:600;
  line-height:1.45;color:var(--text-1);
}
.index-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;
}
.index-item{
  text-align:center;padding:.7rem .35rem;
  border-radius:14px;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  font-size:.66rem;font-weight:800;color:var(--text-2);
  transition:all .4s var(--ease);
}
.index-item i{
  display:block;font-size:1.15rem;
  margin-bottom:.3rem;color:var(--brand-1);
}
[data-bs-theme="dark"] .index-item i{color:var(--brand-3);}
.index-item:hover{
  transform:translateY(-5px);
  box-shadow:var(--glass-shadow);
  color:var(--brand-1);
  border-color:var(--brand-3);
}
[data-bs-theme="dark"] .index-item:hover{color:var(--brand-3);}

/* ═══════════════════════════════════════════════════════════
   9. BUTTONS
═══════════════════════════════════════════════════════════ */
.btn-brand{
  --bs-btn-focus-shadow-rgb:none;
  background:linear-gradient(135deg,
    var(--brand-1),var(--brand-2) 55%,var(--brand-3));
  color:#fff;border:none;font-weight:700;border-radius:14px;
  padding:.72rem 1.5rem;position:relative;overflow:hidden;
  box-shadow:0 10px 26px rgba(15,123,82,.35);
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
  display:inline-flex;align-items:center;justify-content:center;
  gap:.35rem;cursor:pointer;
}
.btn-brand:hover{
  color:#fff;transform:translateY(-3px);
  box-shadow:0 16px 38px rgba(15,123,82,.48);
}
.btn-brand::after{
  content:'';position:absolute;top:0;left:-120%;
  width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);
  transform:skewX(-22deg);
  transition:left .7s var(--ease);
}
.btn-brand:hover::after{left:130%;}

.btn-ghost{
  border:1px solid var(--glass-border);
  background:var(--glass-bg);
  color:var(--text-1);font-weight:600;border-radius:14px;
  padding:.72rem 1.4rem;
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  transition:all .35s var(--ease);
  display:inline-flex;align-items:center;justify-content:center;
  gap:.35rem;cursor:pointer;
}
.btn-ghost:hover{
  color:var(--brand-1);
  transform:translateY(-3px);
  box-shadow:var(--glass-shadow);
  border-color:var(--brand-3);
}
.btn-glass-light{
  border:1px solid rgba(255,255,255,.4);
  background:rgba(255,255,255,.18);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  color:#fff;font-weight:600;border-radius:14px;
  padding:.72rem 1.4rem;
  transition:all .35s var(--ease);
  display:inline-flex;align-items:center;justify-content:center;
  gap:.35rem;cursor:pointer;
}
.btn-glass-light:hover{
  background:rgba(255,255,255,.32);
  color:#fff;transform:translateY(-3px);
}

/* ─── CTA BOX ─── */
.cta-box{
  padding:3rem 2rem;text-align:center;
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,
    rgba(15,123,82,.92),rgba(52,211,153,.88));
  border-radius:28px;color:#fff;
  border:1px solid rgba(255,255,255,.25);
  box-shadow:0 30px 70px -20px rgba(15,123,82,.6);
}
.cta-box::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(600px 300px at 10% 0%, rgba(255,255,255,.28), transparent 60%),
    repeating-linear-gradient(125deg,
      rgba(255,255,255,.06) 0 2px, transparent 2px 26px);
}
.cta-box > *{position:relative;z-index:2;}
.cta-box h2{
  font-weight:800;letter-spacing:-1.2px;color:#fff;
}

/* ═══════════════════════════════════════════════════════════
   10. FOOTER
═══════════════════════════════════════════════════════════ */
.jpt-footer{
  flex-shrink:0;
  margin-top:auto;
  padding:3.2rem 0 1.6rem;
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(20px) saturate(170%);
  backdrop-filter:blur(20px) saturate(170%);
  border-top:1px solid var(--glass-border);
}
.jpt-footer .container{
  max-width:1320px;margin-inline:auto;
  padding-inline:1.4rem;
}
.footer-link{
  color:var(--text-2);font-size:.85rem;font-weight:500;
  display:block;padding:.32rem 0;
  transition:all .3s var(--ease);
}
.footer-link:hover{
  color:var(--brand-1);transform:translateX(6px);
}
[data-bs-theme="dark"] .footer-link:hover{color:var(--brand-3);}
.social-btn{
  width:40px;height:40px;border-radius:12px;
  display:grid;place-items:center;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  color:var(--text-2);
  transition:all .4s var(--ease);
}
.social-btn:hover{
  transform:translateY(-5px) rotate(8deg);
  color:#fff;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  box-shadow:0 12px 26px rgba(15,123,82,.4);
}
.issn-chip{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.72rem;font-weight:700;
  padding:.35rem .7rem;border-radius:10px;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  color:var(--text-2);
}

/* ─── BACK TO TOP ─── */
#jpt-toTop{
  position:fixed;right:22px;bottom:22px;
  width:50px;height:50px;border-radius:16px;
  display:grid;place-items:center;
  border:1px solid var(--glass-border);
  background:var(--glass-bg-strong);color:var(--brand-1);
  font-size:1.15rem;
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  box-shadow:var(--glass-shadow-lg);z-index:1040;
  opacity:0;visibility:hidden;
  transform:translateY(20px) scale(.85);
  transition:all .45s var(--ease);cursor:pointer;padding:0;
}
[data-bs-theme="dark"] #jpt-toTop{color:var(--brand-3);}
#jpt-toTop.show{
  opacity:1;visibility:visible;transform:translateY(0) scale(1);
}
#jpt-toTop:hover{transform:translateY(-6px) scale(1.06);}

/* ─── PROGRESS BAR ─── */
#progressBar{
  position:fixed;top:0;left:0;height:3px;width:0;
  background:linear-gradient(90deg,
    var(--brand-1),var(--brand-3),var(--accent));
  box-shadow:0 0 14px rgba(52,211,153,.8);
  z-index:2000;transition:width .1s linear;pointer-events:none;
}

/* ═══════════════════════════════════════════════════════════
   11. REGISTER / LOGIN SHARED
═══════════════════════════════════════════════════════════ */
.back-wrap{
  max-width:1320px;margin:1.5rem auto 0;
  padding-inline:1.4rem;width:100%;flex-shrink:0;
}
.back-link{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.55rem 1.05rem;border-radius:12px;
  font-weight:600;font-size:.85rem;color:var(--text-2);
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border:1px solid var(--glass-border);
  transition:all .35s var(--ease);
}
.back-link:hover{
  color:var(--brand-1);transform:translateX(-4px);
  box-shadow:var(--glass-shadow);
  border-color:var(--brand-3);
}
[data-bs-theme="dark"] .back-link:hover{color:var(--brand-3);}
.back-link i{transition:transform .35s var(--ease);}
.back-link:hover i{transform:translateX(-3px);}

.main-wrap{
  flex:1 1 auto;
  min-height:calc(100vh - var(--header-h) - 100px);
  display:flex;align-items:flex-start;justify-content:center;
  padding:2.5rem 1.4rem 3rem;position:relative;
}

/* ─── Register / Login card ─── */
.reg-card{
  position:relative;width:100%;max-width:640px;
  background:var(--glass-bg-strong);
  -webkit-backdrop-filter:blur(28px) saturate(180%);
  backdrop-filter:blur(28px) saturate(180%);
  border:1px solid var(--glass-border);
  border-radius:28px;
  box-shadow:
    0 24px 60px -20px rgba(8,60,40,.30),
    0 12px 32px -12px rgba(8,60,40,.20),
    inset 0 1px 0 rgba(255,255,255,.6);
  padding:2.5rem 2.4rem 2.4rem;
  overflow:hidden;isolation:isolate;
  animation:jpt-cardIn .9s var(--ease) both;
}
.reg-card::before{
  content:'';position:absolute;
  top:-100px;left:50%;transform:translateX(-50%);
  width:340px;height:220px;border-radius:50%;
  background:radial-gradient(circle,
    rgba(52,211,153,.35) 0%, transparent 70%);
  filter:blur(50px);pointer-events:none;z-index:-1;
}
.reg-card::after{
  content:'';position:absolute;
  top:0;left:20%;right:20%;height:2px;
  background:linear-gradient(90deg,
    transparent,var(--brand-3),var(--accent),transparent);
  border-radius:0 0 2px 2px;opacity:.7;
}

.reg-header{text-align:center;margin-bottom:1.5rem;}
.reg-badge{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.35rem .85rem;border-radius:100px;
  font-size:.7rem;font-weight:800;
  letter-spacing:.6px;text-transform:uppercase;
  background:rgba(52,211,153,.15);
  border:1px solid rgba(52,211,153,.4);
  color:var(--brand-1);margin-bottom:.9rem;
}
[data-bs-theme="dark"] .reg-badge{color:var(--brand-3);}
.reg-badge .pulse-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--brand-3);
  box-shadow:0 0 0 0 rgba(52,211,153,.8);
  animation:jpt-pulse 2s infinite;
}
.reg-badge.login-badge{
  background:rgba(14,165,233,.15);
  border-color:rgba(14,165,233,.4);
  color:#0284c7;
}
[data-bs-theme="dark"] .reg-badge.login-badge{color:#38bdf8;}

.reg-logo{
  width:64px;height:64px;border-radius:18px;
  display:inline-grid;place-items:center;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  color:#fff;font-size:1.8rem;margin-bottom:1rem;
  box-shadow:
    0 14px 32px -8px rgba(15,123,82,.55),
    0 6px 16px -6px rgba(52,211,153,.4),
    inset 0 1px 0 rgba(255,255,255,.3);
  position:relative;
  animation:jpt-logoPop .8s var(--ease) .2s both;
}
.reg-logo::after{
  content:'';position:absolute;inset:-6px;border-radius:22px;
  background:radial-gradient(circle,
    rgba(52,211,153,.4) 0%, transparent 70%);
  filter:blur(12px);z-index:-1;
  animation:jpt-logoGlow 3s ease-in-out infinite;
}
.reg-title{
  font-size:1.55rem;font-weight:800;
  letter-spacing:-.6px;color:var(--text-1);
  margin:0 0 .35rem;
}
.reg-subtitle{
  font-size:.86rem;color:var(--text-2);
  margin:0 auto;line-height:1.55;max-width:440px;
}

/* ─── Progress steps ─── */
.reg-progress{
  display:flex;align-items:center;justify-content:center;
  gap:.4rem;margin:1.6rem 0 2rem;padding:0 .5rem;
}
.progress-step{display:flex;align-items:center;gap:.5rem;flex:0 0 auto;}
.step-circle{
  width:32px;height:32px;border-radius:50%;
  display:grid;place-items:center;
  font-weight:800;font-size:.82rem;
  color:var(--text-muted);background:var(--glass-bg);
  border:2px solid var(--glass-border);
  transition:all .45s var(--ease);
}
.step-circle i{font-size:.9rem;}
.step-label{
  font-size:.76rem;font-weight:700;
  color:var(--text-muted);letter-spacing:-.1px;
  transition:color .35s var(--ease);white-space:nowrap;
}
.progress-connector{
  flex:0 0 20px;height:2px;
  background:var(--glass-border);border-radius:2px;
  transition:background .45s var(--ease);
}
.progress-step.active .step-circle{
  color:#fff;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  border-color:transparent;
  box-shadow:
    0 8px 18px -6px rgba(15,123,82,.5),
    0 0 0 4px rgba(52,211,153,.2);
  transform:scale(1.08);
}
.progress-step.active .step-label{color:var(--brand-1);}
[data-bs-theme="dark"] .progress-step.active .step-label{color:var(--brand-3);}
.progress-step.completed .step-circle{
  color:#fff;background:var(--brand-2);border-color:transparent;
}
.progress-step.completed .step-label{color:var(--brand-2);}

/* ─── Field labels ─── */
.field-label{
  display:block;font-size:.78rem;font-weight:700;
  color:var(--text-2);letter-spacing:.3px;
  text-transform:uppercase;margin-bottom:.6rem;
}
.field-label .req{color:var(--danger);margin-left:2px;}
.field-label .opt{
  color:var(--text-muted);font-weight:600;
  font-size:.7rem;text-transform:none;
  letter-spacing:0;margin-left:.35rem;
}

/* ─── Role grid ─── */
.role-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:.7rem;margin-bottom:1.4rem;
  padding:.35rem;border-radius:16px;
  transition:box-shadow .35s var(--ease);
}
.role-grid.error{box-shadow:0 0 0 3px rgba(239,68,68,.35);}
.role-card{
  position:relative;cursor:pointer;margin:0;outline:none;
}
.role-card input[type="radio"]{
  position:absolute;opacity:0;
  width:1px;height:1px;margin:0;padding:0;border:0;
  pointer-events:none;
}
.role-inner{
  position:relative;padding:1rem .75rem;
  border-radius:14px;border:1.8px solid var(--glass-border);
  background:var(--glass-bg);text-align:center;
  transition:all .35s var(--ease);overflow:hidden;
}
.role-inner::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,
    rgba(52,211,153,.12),rgba(14,165,233,.08));
  opacity:0;transition:opacity .35s var(--ease);
}
.role-inner > *{position:relative;z-index:1;}
.role-inner i{
  display:block;font-size:1.4rem;color:var(--brand-1);
  margin-bottom:.4rem;transition:transform .4s var(--ease);
}
[data-bs-theme="dark"] .role-inner i{color:var(--brand-3);}
.role-inner .role-name{
  display:block;font-weight:700;font-size:.82rem;
  color:var(--text-1);margin-bottom:.1rem;
}
.role-inner .role-desc{
  display:block;font-size:.68rem;
  color:var(--text-2);line-height:1.3;
}
.role-card input:checked + .role-inner{
  border-color:var(--brand-3);
  box-shadow:
    0 0 0 4px rgba(52,211,153,.15),
    0 8px 20px -8px rgba(15,123,82,.3);
}
.role-card input:checked + .role-inner::before{opacity:1;}
.role-card input:checked + .role-inner i{transform:scale(1.15);}
.role-card:hover .role-inner{
  transform:translateY(-2px);box-shadow:var(--glass-shadow);
}
.role-card.is-checked .role-inner{
  border-color:var(--brand-3);
  box-shadow:
    0 0 0 4px rgba(52,211,153,.15),
    0 8px 20px -8px rgba(15,123,82,.3);
}
.role-inner .role-check{
  position:absolute;top:.4rem;right:.4rem;
  width:16px;height:16px;border-radius:50%;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  display:grid;place-items:center;
  opacity:0;transform:scale(0);
  transition:all .3s var(--ease);z-index:2;
}
.role-inner .role-check i{
  font-size:.55rem;color:#fff;margin:0;
}
.role-card input:checked + .role-inner .role-check{
  opacity:1;transform:scale(1);
}
.role-card input:focus-visible + .role-inner,
.role-card:focus-visible .role-inner{
  outline:3px solid var(--brand-3);outline-offset:3px;
}
.role-card:not(.role-disabled):active .role-inner{
  transform:translateY(0) scale(.98);
}
.role-card.role-disabled{cursor:not-allowed;opacity:.55;}
.role-card.role-disabled .role-inner{filter:grayscale(.55);}
.role-card.role-disabled:hover .role-inner{
  transform:none;box-shadow:none;border-color:var(--glass-border);
}
.role-card.role-disabled input:checked + .role-inner{
  border-color:var(--glass-border);box-shadow:none;
}
.role-card.role-disabled .role-check{display:none;}
.role-card.role-disabled .role-desc{color:var(--danger);font-weight:600;}

.role-empty-msg{
  grid-column:1 / -1;
  padding:1rem 1.15rem;border-radius:14px;
  background:rgba(239,68,68,.08);
  border:1px solid rgba(239,68,68,.25);
  color:#b91c1c;
  font-size:.82rem;font-weight:600;
  display:flex;align-items:flex-start;gap:.6rem;
}
[data-bs-theme="dark"] .role-empty-msg{
  background:rgba(239,68,68,.15);color:#fca5a5;
}
.role-empty-msg i{font-size:1.1rem;flex-shrink:0;margin-top:1px;}
.role-empty-msg a{
  color:inherit;text-decoration:underline;text-underline-offset:2px;
}

/* ─── Form grid ─── */
.form-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;
}
.form-grid .full{grid-column:1 / -1;}

/* ─── Field group ─── */
.field-group{position:relative;}
.field-input-wrap{
  position:relative;display:flex;align-items:center;
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border:1px solid var(--glass-border);
  border-radius:14px;transition:all .35s var(--ease);
  overflow:hidden;
}
.field-input-wrap::before{
  content:'';position:absolute;inset:0;border-radius:14px;
  background:linear-gradient(135deg,
    rgba(52,211,153,.10),rgba(14,165,233,.06));
  opacity:0;transition:opacity .35s var(--ease);
  pointer-events:none;
}
.field-group.focused .field-input-wrap{
  border-color:var(--brand-3);
  box-shadow:
    0 0 0 4px rgba(52,211,153,.15),
    0 8px 20px -8px rgba(15,123,82,.25);
}
.field-group.focused .field-input-wrap::before{opacity:1;}
.field-group.valid .field-input-wrap{border-color:var(--brand-2);}
.field-group.valid .field-input-wrap::after{
  content:'\F26A';font-family:'bootstrap-icons';
  position:absolute;right:1rem;
  color:var(--brand-2);font-size:1.05rem;
  animation:jpt-checkIn .4s var(--ease);
}
.field-group.error .field-input-wrap{
  border-color:var(--danger);
  box-shadow:0 0 0 4px rgba(239,68,68,.12);
}
.field-group.error .field-label{color:var(--danger) !important;}
.field-error{
  font-size:.72rem;color:var(--danger);margin-top:.35rem;
  display:none;align-items:center;gap:.3rem;
  animation:jpt-alertIn .35s var(--ease);
}
.field-group.error .field-error{display:flex;}

.field-icon{
  padding:0 .9rem 0 1.05rem;font-size:1rem;
  color:var(--text-muted);flex-shrink:0;
  transition:color .3s var(--ease), transform .35s var(--ease);
  position:relative;z-index:1;
}
.field-group.focused .field-icon{
  color:var(--brand-1);transform:scale(1.1);
}
[data-bs-theme="dark"] .field-group.focused .field-icon{color:var(--brand-3);}
.field-input{
  flex:1;border:none;outline:none;background:transparent;
  font-size:.92rem;font-weight:500;color:var(--text-1);
  padding:.88rem 0;font-family:inherit;min-width:0;
  position:relative;z-index:1;
}
.field-input::placeholder{color:var(--text-muted);opacity:.7;font-weight:400;}

.field-select{
  flex:1;border:none;outline:none;background:transparent;
  font-size:.92rem;font-weight:500;color:var(--text-1);
  padding:.88rem 2rem .88rem 0;
  font-family:inherit;min-width:0;
  position:relative;z-index:1;cursor:pointer;
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234a6159' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 1.1rem center;
  background-size:10px;
}
[data-bs-theme="dark"] .field-select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%239db3ab' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
}
.field-select option{padding:.5rem;background:#fff;color:#0b1f18;}
[data-bs-theme="dark"] .field-select option{background:#0a1712;color:#e9f5f0;}
.field-select:invalid{color:var(--text-muted);}

/* ─── Toggle password ─── */
.btn-toggle-pass{
  width:40px;height:40px;display:grid;place-items:center;
  border:none;background:transparent;color:var(--text-muted);
  cursor:pointer;border-radius:10px;margin-right:.3rem;
  transition:all .3s var(--ease);position:relative;z-index:1;
}
.btn-toggle-pass:hover{
  color:var(--brand-1);background:rgba(15,123,82,.08);
}
[data-bs-theme="dark"] .btn-toggle-pass:hover{
  color:var(--brand-3);background:rgba(52,211,153,.1);
}

/* ─── Password strength ─── */
.pwd-strength{
  margin-top:.65rem;display:flex;align-items:center;gap:.55rem;
}
.pwd-strength-bar{
  flex:1;height:6px;border-radius:100px;
  background:var(--glass-border);overflow:hidden;position:relative;
}
.pwd-strength-fill{
  height:100%;width:0%;border-radius:100px;
  background:var(--danger);
  transition:width .4s var(--ease), background .4s var(--ease);
}
.pwd-strength-label{
  font-size:.68rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.5px;
  min-width:52px;text-align:right;
  color:var(--text-muted);
  transition:color .35s var(--ease);
}
.pwd-strength[data-level="weak"] .pwd-strength-fill{
  background:linear-gradient(90deg,#ef4444,#f87171);
}
.pwd-strength[data-level="weak"] .pwd-strength-label{color:#ef4444;}
.pwd-strength[data-level="fair"] .pwd-strength-fill{
  background:linear-gradient(90deg,#f59e0b,#fbbf24);
}
.pwd-strength[data-level="fair"] .pwd-strength-label{color:#d97706;}
.pwd-strength[data-level="good"] .pwd-strength-fill{
  background:linear-gradient(90deg,#0ea5e9,#38bdf8);
}
.pwd-strength[data-level="good"] .pwd-strength-label{color:#0284c7;}
.pwd-strength[data-level="strong"] .pwd-strength-fill{
  background:linear-gradient(90deg,#16a34a,#34d399);
}
.pwd-strength[data-level="strong"] .pwd-strength-label{color:var(--brand-1);}
[data-bs-theme="dark"] .pwd-strength[data-level="strong"] .pwd-strength-label{
  color:var(--brand-3);
}

/* ─── Password checklist ─── */
.pwd-checklist{
  margin-top:.65rem;padding:.85rem 1rem;
  border-radius:12px;
  background:rgba(52,211,153,.06);
  border:1px solid rgba(52,211,153,.18);
  display:grid;grid-template-columns:1fr 1fr;
  gap:.35rem .9rem;
}
[data-bs-theme="dark"] .pwd-checklist{
  background:rgba(52,211,153,.05);
  border-color:rgba(52,211,153,.15);
}
.check-item{
  display:flex;align-items:center;gap:.4rem;
  font-size:.74rem;font-weight:600;
  color:var(--text-2);transition:color .3s var(--ease);
}
.check-item i{
  font-size:.85rem;color:var(--text-muted);
  transition:all .3s var(--ease);
}
.check-item.met{color:var(--brand-1);}
[data-bs-theme="dark"] .check-item.met{color:var(--brand-3);}
.check-item.met i{color:var(--brand-2);transform:scale(1.15);}

/* ─── Password match indicator ─── */
.pwd-match{
  display:none;align-items:center;gap:.35rem;
  font-size:.72rem;font-weight:700;margin-top:.4rem;
}
.pwd-match.show{display:flex;}
.pwd-match.ok{color:var(--brand-2);}
.pwd-match.bad{color:var(--danger);}
.pwd-match i{font-size:.9rem;}

/* ─── Terms ─── */
.terms-row{margin:1.4rem 0 1.5rem;}
.terms-check{
  display:flex;align-items:flex-start;gap:.65rem;
  cursor:pointer;font-size:.83rem;
  color:var(--text-2);line-height:1.55;
  transition:color .3s var(--ease);margin:0;
}
.terms-check:hover{color:var(--text-1);}
.terms-check input[type="checkbox"]{display:none;}
.check-box{
  width:20px;height:20px;border-radius:6px;
  border:1.8px solid var(--glass-border);
  background:var(--glass-bg);
  display:grid;place-items:center;flex-shrink:0;
  transition:all .3s var(--ease);margin-top:1px;
}
.check-box i{
  font-size:.75rem;color:#fff;opacity:0;
  transform:scale(.5);transition:all .3s var(--ease);
}
.terms-check input:checked + .check-box{
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  border-color:var(--brand-3);
  box-shadow:0 4px 12px -4px rgba(15,123,82,.5);
}
.terms-check input:checked + .check-box i{opacity:1;transform:scale(1);}
.terms-check.error .check-box{
  border-color:var(--danger);
  box-shadow:0 0 0 4px rgba(239,68,68,.12);
}
.terms-check a{
  color:var(--brand-1);font-weight:700;
  text-decoration:underline;
  text-underline-offset:2px;
  text-decoration-thickness:1px;
}
[data-bs-theme="dark"] .terms-check a{color:var(--brand-3);}

/* ─── Submit ─── */
.btn-submit{
  position:relative;width:100%;
  display:inline-flex;align-items:center;justify-content:center;
  gap:.6rem;padding:1rem 1.5rem;border-radius:14px;
  font-size:.95rem;font-weight:700;letter-spacing:.2px;
  color:#fff;
  background:linear-gradient(135deg,
    var(--brand-1),var(--brand-2) 45%,var(--brand-3));
  background-size:200% 200%;
  border:none;cursor:pointer;overflow:hidden;isolation:isolate;
  box-shadow:
    0 12px 28px -8px rgba(15,123,82,.5),
    0 6px 14px -6px rgba(52,211,153,.35),
    inset 0 1px 0 rgba(255,255,255,.28);
  transition:transform .45s cubic-bezier(.34,1.56,.64,1),
             box-shadow .45s var(--ease),
             background-position .8s var(--ease);
}
.btn-submit:hover{
  transform:translateY(-3px) scale(1.01);
  background-position:100% 50%;
  box-shadow:
    0 18px 40px -10px rgba(15,123,82,.6),
    0 10px 22px -8px rgba(52,211,153,.5),
    inset 0 1px 0 rgba(255,255,255,.4);
}
.btn-submit::before{
  content:'';position:absolute;top:0;left:-130%;
  width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-22deg);
  transition:left .85s var(--ease);pointer-events:none;
}
.btn-submit:hover::before{left:140%;}
.btn-submit i{
  font-size:1.1rem;
  transition:transform .5s cubic-bezier(.34,1.56,.64,1);
}
.btn-submit:hover i{transform:translateX(3px) rotate(-8deg) scale(1.1);}
.btn-submit.loading{pointer-events:none;opacity:.85;}
.btn-submit.loading i{animation:jpt-spin 1s linear infinite;}

/* ─── Divider ─── */
.divider{
  display:flex;align-items:center;gap:1rem;
  margin:1.5rem 0 1.25rem;
}
.divider::before,.divider::after{
  content:'';flex:1;height:1px;
  background:linear-gradient(90deg,
    transparent,var(--glass-border),transparent);
}
.divider span{
  font-size:.72rem;font-weight:700;
  color:var(--text-muted);letter-spacing:.8px;
  text-transform:uppercase;
}

/* ─── Login CTA ─── */
.login-cta{text-align:center;}
.btn-login-link{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.85rem 1.4rem;border-radius:14px;
  font-size:.88rem;font-weight:700;
  color:var(--brand-1);
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border:1px solid var(--glass-border);
  transition:all .4s var(--ease);
  width:100%;justify-content:center;
  position:relative;overflow:hidden;
}
.btn-login-link::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,
    rgba(52,211,153,.14),rgba(14,165,233,.10));
  opacity:0;transition:opacity .35s var(--ease);
}
.btn-login-link:hover{
  color:var(--brand-1);transform:translateY(-3px);
  border-color:var(--brand-3);
  box-shadow:0 12px 26px -10px rgba(15,123,82,.35);
}
.btn-login-link:hover::before{opacity:1;}
[data-bs-theme="dark"] .btn-login-link{color:var(--brand-3);}
[data-bs-theme="dark"] .btn-login-link:hover{color:var(--brand-3);}
.btn-login-link i,.btn-login-link span{position:relative;z-index:1;}
.btn-login-link i{
  font-size:1.05rem;
  transition:transform .4s var(--ease);
}
.btn-login-link:hover i{transform:scale(1.15) rotate(-8deg);}

/* ─── Alert ─── */
.alert-jpt{
  display:flex;align-items:flex-start;gap:.75rem;
  padding:.9rem 1.1rem;border-radius:14px;
  font-size:.85rem;font-weight:500;margin-bottom:1.35rem;
  animation:jpt-alertSlide .5s var(--ease) both;
}
.alert-jpt i{font-size:1.1rem;flex-shrink:0;margin-top:1px;}
.alert-jpt.error{
  background:rgba(239,68,68,.1);
  border:1px solid rgba(239,68,68,.3);
  color:#b91c1c;
}
[data-bs-theme="dark"] .alert-jpt.error{
  background:rgba(239,68,68,.15);color:#fca5a5;
}
.alert-jpt.success{
  background:rgba(52,211,153,.12);
  border:1px solid rgba(52,211,153,.35);
  color:var(--brand-1);
}
[data-bs-theme="dark"] .alert-jpt.success{color:var(--brand-3);}

/* ─── Privacy box ─── */
.privacy-box{
  margin:1.4rem 0;padding:1rem 1.15rem;
  border-radius:14px;
  background:rgba(14,165,233,.06);
  border:1px solid rgba(14,165,233,.2);
}
.privacy-header{
  display:flex;align-items:center;gap:.55rem;
  font-size:.85rem;font-weight:700;
  color:var(--accent);margin-bottom:.6rem;
}
.privacy-header i{font-size:1.1rem;}
.privacy-content{
  font-size:.78rem;color:var(--text-2);
  line-height:1.55;max-height:120px;
  overflow-y:auto;padding-right:.5rem;
}
.privacy-content::-webkit-scrollbar{width:4px;}
.privacy-content::-webkit-scrollbar-thumb{
  background:var(--glass-border);border-radius:2px;
}

/* ─── Recaptcha ─── */
.recaptcha-wrap{
  margin:1.4rem 0;display:flex;justify-content:center;
}

/* ═══════════════════════════════════════════════════════════
   12. LOGIN PAGE EXTRAS
═══════════════════════════════════════════════════════════ */
.login-extras{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;
  margin:1.1rem 0 1.5rem;padding:.15rem 0;
}
.login-extras .terms-check{margin:0;font-size:.83rem;}

.login-forgot-link{
  display:inline-flex;align-items:center;gap:.35rem;
  font-size:.83rem;font-weight:700;
  color:var(--brand-1);letter-spacing:-.1px;
  transition:color .3s var(--ease), transform .3s var(--ease);
}
.login-forgot-link i{font-size:.95rem;}
.login-forgot-link:hover{
  color:var(--brand-2);transform:translateX(2px);
}
[data-bs-theme="dark"] .login-forgot-link{color:var(--brand-3);}
[data-bs-theme="dark"] .login-forgot-link:hover{color:var(--brand-2);}

.alt-login{display:flex;flex-direction:column;gap:.6rem;}
.btn-alt-login{
  display:flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.78rem 1.1rem;border-radius:14px;
  font-weight:600;font-size:.86rem;
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border:1px solid var(--glass-border);
  color:var(--text-1);cursor:pointer;
  transition:all .35s var(--ease);
}
.btn-alt-login i{
  font-size:1.1rem;color:var(--brand-1);
  transition:transform .4s var(--ease);
}
[data-bs-theme="dark"] .btn-alt-login i{color:var(--brand-3);}
.btn-alt-login:hover{
  transform:translateY(-3px);
  box-shadow:var(--glass-shadow);
  border-color:var(--brand-3);
  color:var(--brand-1);
}
[data-bs-theme="dark"] .btn-alt-login:hover{color:var(--brand-3);}
.btn-alt-login:hover i{transform:scale(1.12) rotate(-6deg);}

#loginCard{max-width:520px;}

/* ═══════════════════════════════════════════════════════════
   13. ISSUE VIEW PAGE
═══════════════════════════════════════════════════════════ */
.issue-main{
  flex:1 1 auto;
  padding:1rem 0 3rem;
}
.issue-container{
  max-width:1180px;
  margin-inline:auto;
  padding-inline:1.4rem;
}

.issue-breadcrumbs{
  display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;
  font-size:.8rem;font-weight:600;
  color:var(--text-muted);
  padding:.85rem 0 1.5rem;
}
.issue-breadcrumbs a{
  color:var(--text-2);
  display:inline-flex;align-items:center;gap:.35rem;
  transition:color .3s var(--ease);
}
.issue-breadcrumbs a:hover{color:var(--brand-1);}
[data-bs-theme="dark"] .issue-breadcrumbs a:hover{color:var(--brand-3);}
.issue-breadcrumbs i{font-size:.65rem;opacity:.5;}
.issue-breadcrumbs span{color:var(--text-1);font-weight:700;}

/* ─── Issue hero ─── */
.issue-hero{
  padding:2.25rem 2rem;
  position:relative;
  overflow:hidden;
  margin-bottom:2rem;
  isolation:isolate;
}
.issue-hero-bg{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(560px 300px at 100% 0%,
      rgba(52,211,153,.25), transparent 65%),
    radial-gradient(440px 240px at 0% 100%,
      rgba(14,165,233,.15), transparent 60%);
}
.issue-hero > .row{position:relative;z-index:1;}

.issue-hero-cover{
  position:relative;
  border-radius:20px;overflow:hidden;
  box-shadow:
    0 24px 50px -18px rgba(8,60,40,.4),
    0 10px 24px -10px rgba(8,60,40,.25);
  transition:transform .55s var(--ease);
  background:var(--glass-bg);
}
.issue-hero-cover img{
  display:block;width:100%;height:auto;
  transition:transform .8s var(--ease);
}
.issue-hero-cover:hover{
  transform:translateY(-6px) rotate(-1deg);
}
.issue-hero-cover:hover img{transform:scale(1.05);}
.issue-hero-cover-glow{
  position:absolute;inset:-30px;
  background:radial-gradient(circle,
    rgba(52,211,153,.35), transparent 70%);
  filter:blur(30px);z-index:-1;pointer-events:none;
}

.issue-hero-meta{display:flex;flex-direction:column;gap:.85rem;}
.issue-hero-badge{
  display:inline-flex;align-items:center;gap:.5rem;
  width:max-content;
  font-size:.7rem;font-weight:800;
  letter-spacing:1px;text-transform:uppercase;
  padding:.45rem .9rem;border-radius:100px;
  background:rgba(15,123,82,.12);
  border:1px solid rgba(15,123,82,.28);
  color:var(--brand-1);
}
[data-bs-theme="dark"] .issue-hero-badge{
  background:rgba(52,211,153,.14);
  border-color:rgba(52,211,153,.3);
  color:var(--brand-3);
}
.issue-hero-badge .pulse-dot{width:7px;height:7px;}

.issue-hero-title{
  font-size:clamp(1.7rem,3.2vw,2.5rem);
  font-weight:800;letter-spacing:-1.2px;
  line-height:1.1;color:var(--text-1);
  margin:0;
}
.issue-hero-subtitle{
  font-size:1.05rem;font-weight:600;
  color:var(--text-2);line-height:1.55;
  margin:0;
}

.issue-hero-chips{
  display:flex;flex-wrap:wrap;gap:.55rem;
  margin-top:.25rem;
}
.hero-chip{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.74rem;font-weight:700;
  padding:.42rem .8rem;border-radius:10px;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  color:var(--text-1);
  transition:all .3s var(--ease);
}
.hero-chip i{
  font-size:.85rem;
  color:var(--brand-1);
}
[data-bs-theme="dark"] .hero-chip i{color:var(--brand-3);}
.hero-chip a{
  color:var(--brand-1);
  text-decoration:underline;
  text-underline-offset:2px;
}
[data-bs-theme="dark"] .hero-chip a{color:var(--brand-3);}
.hero-chip:hover{
  transform:translateY(-2px);
  box-shadow:var(--glass-shadow);
  border-color:var(--brand-3);
}
.hero-chip-doi{
  background:rgba(14,165,233,.1);
  border-color:rgba(14,165,233,.25);
}

.issue-hero-desc{
  font-size:.9rem;line-height:1.75;
  color:var(--text-2);
  padding-top:.85rem;
  border-top:1px solid var(--glass-border);
  margin-top:.4rem;
}
.issue-hero-desc p:last-child{margin-bottom:0;}

.issue-hero-galleys{
  display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;
  padding:.9rem 1.15rem;border-radius:14px;
  background:rgba(15,123,82,.06);
  border:1px solid rgba(15,123,82,.18);
  margin-top:.5rem;
}
[data-bs-theme="dark"] .issue-hero-galleys{
  background:rgba(52,211,153,.07);
  border-color:rgba(52,211,153,.2);
}
.issue-hero-galleys-label{
  display:inline-flex;align-items:center;gap:.4rem;
  font-size:.78rem;font-weight:700;
  color:var(--text-2);
}
.issue-hero-galleys-label i{color:var(--brand-1);}
[data-bs-theme="dark"] .issue-hero-galleys-label i{color:var(--brand-3);}
.issue-hero-galleys-list{display:flex;flex-wrap:wrap;gap:.4rem;}

.issue-hero-actions{
  display:flex;flex-wrap:wrap;gap:.55rem;
  margin-top:.5rem;
}
.issue-hero-actions .btn{
  font-size:.82rem;
  padding:.6rem 1.15rem;
}

/* ─── Issue stats ─── */
.issue-stats{margin-bottom:2.5rem;}
.issue-stat-card{
  padding:1.4rem 1.15rem;text-align:center;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.issue-stat-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--glass-shadow-lg);
}
.issue-stat-icon{
  width:44px;height:44px;border-radius:13px;
  display:grid;place-items:center;
  margin:0 auto .7rem;
  font-size:1.15rem;color:#fff;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  box-shadow:0 8px 20px -6px rgba(15,123,82,.35);
  transition:transform .5s var(--ease);
}
.issue-stat-card:hover .issue-stat-icon{
  transform:rotate(-10deg) scale(1.1);
}
.issue-stat-num{
  font-size:1.7rem;font-weight:800;
  letter-spacing:-1px;line-height:1;color:var(--text-1);
}
.issue-stat-label{
  font-size:.74rem;font-weight:700;
  color:var(--text-2);
  text-transform:uppercase;letter-spacing:.4px;
  margin-top:.4rem;
}

/* ─── TOC section ─── */
.issue-toc-section{margin-bottom:2.5rem;}
.issue-toc-heading{
  text-align:center;margin-bottom:2.5rem;
  max-width:640px;margin-inline:auto;
}

/* ─── Pagination ─── */
.issue-pagination{
  display:grid;grid-template-columns:1fr auto 1fr;
  gap:.85rem;align-items:stretch;
  margin:2.5rem 0 3rem;
}
.issue-page-link{
  display:flex;align-items:center;gap:.85rem;
  padding:1rem 1.25rem;border-radius:16px;
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border:1px solid var(--glass-border);
  transition:all .4s var(--ease);
  min-width:0;text-decoration:none;color:inherit;
}
.issue-page-link:hover{
  transform:translateY(-4px);
  border-color:var(--brand-3);
  box-shadow:0 14px 30px -12px rgba(15,123,82,.35);
  color:inherit;
}
.issue-page-link.next{justify-content:flex-end;text-align:right;}
.issue-page-icon{
  width:42px;height:42px;flex-shrink:0;
  border-radius:12px;display:grid;place-items:center;
  background:rgba(15,123,82,.08);
  color:var(--brand-1);font-size:1.1rem;
  transition:all .35s var(--ease);
}
[data-bs-theme="dark"] .issue-page-icon{
  background:rgba(52,211,153,.1);color:var(--brand-3);
}
.issue-page-link:hover .issue-page-icon{
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  color:#fff;transform:scale(1.08);
}
.issue-page-body{
  display:flex;flex-direction:column;
  min-width:0;flex:1;
}
.issue-page-body small{
  font-size:.65rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.7px;
  color:var(--text-muted);margin-bottom:.2rem;
}
.issue-page-body strong{
  font-size:.88rem;font-weight:700;
  color:var(--text-1);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.issue-page-disabled{
  opacity:.4;cursor:not-allowed;pointer-events:none;
}
.issue-page-center{
  display:inline-flex;flex-direction:column;
  align-items:center;justify-content:center;gap:.25rem;
  width:70px;height:70px;border-radius:18px;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  color:#fff;
  font-size:.65rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.6px;
  text-decoration:none;
  box-shadow:0 12px 26px -10px rgba(15,123,82,.5);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.issue-page-center i{font-size:1.2rem;}
.issue-page-center:hover{
  color:#fff;
  transform:translateY(-4px) scale(1.05);
  box-shadow:0 18px 36px -12px rgba(15,123,82,.6);
}

.issue-cta{margin-bottom:1rem;}

/* ═══════════════════════════════════════════════════════════
   14. ISSUE TOC
═══════════════════════════════════════════════════════════ */
.toc-preview-notice{
  display:flex;align-items:flex-start;gap:.9rem;
  padding:1rem 1.25rem;margin-bottom:1.5rem;
  border-radius:16px;
  background:rgba(245,158,11,.12);
  border:1px solid rgba(245,158,11,.35);
  color:#92400e;
  animation:jpt-alertSlide .5s var(--ease) both;
}
[data-bs-theme="dark"] .toc-preview-notice{
  background:rgba(245,158,11,.15);color:#fbbf24;
}
.toc-preview-notice i{font-size:1.35rem;flex-shrink:0;margin-top:2px;}
.toc-preview-notice strong{
  display:block;font-size:.9rem;margin-bottom:.15rem;
}

.toc-section{margin-bottom:2.5rem;}
.toc-section-header{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;
  margin-bottom:1rem;padding:0 .25rem;
}
.toc-section-title{
  font-size:1.15rem;font-weight:800;
  letter-spacing:-.4px;color:var(--text-1);
  margin:0;display:flex;align-items:center;gap:.55rem;
}
.toc-section-title i{color:var(--brand-1);font-size:1rem;}
[data-bs-theme="dark"] .toc-section-title i{color:var(--brand-3);}
.toc-section-count{
  font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.6px;
  color:var(--text-muted);
  padding:.3rem .65rem;border-radius:100px;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
}

.toc-articles{padding:1rem;}
.toc-article-item{
  display:flex;gap:1.1rem;
  padding:1.35rem;border-radius:var(--radius);
  position:relative;overflow:hidden;
  border:1px solid transparent;
  transition:transform .45s var(--ease),
             box-shadow .45s var(--ease),
             background .45s var(--ease),
             border-color .45s var(--ease);
}
.toc-article-item + .toc-article-item{
  margin-top:.5rem;
  border-top:1px solid var(--glass-border);
  border-radius:0;padding-top:1.5rem;
}
.toc-article-item:first-child{border-radius:var(--radius);}
.toc-article-item:last-child{border-radius:var(--radius);}
.toc-article-item:hover{
  transform:translateX(6px);
  background:var(--glass-bg);
  border-color:var(--glass-border);
  box-shadow:var(--glass-shadow);
  border-top-color:transparent;
}
.toc-article-item:hover + .toc-article-item{border-top-color:transparent;}
.toc-article-item:hover .article-num{
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  color:#fff;transform:rotate(-8deg) scale(1.06);
}
.toc-article-body{flex:1;min-width:0;}
.toc-author-link{
  color:var(--text-2);
  transition:color .3s var(--ease);
}
.toc-author-link:hover{
  color:var(--brand-1);text-decoration:underline;
}
[data-bs-theme="dark"] .toc-author-link:hover{color:var(--brand-3);}

.toc-article-abstract{
  font-size:.82rem;line-height:1.65;
  color:var(--text-2);
  margin:.4rem 0 .7rem;
  padding-left:.85rem;
  border-left:3px solid rgba(15,123,82,.2);
}
[data-bs-theme="dark"] .toc-article-abstract{
  border-left-color:rgba(52,211,153,.25);
}

.toc-doi a{
  color:var(--brand-1);
  text-decoration:underline;
  text-underline-offset:2px;
}
[data-bs-theme="dark"] .toc-doi a{color:var(--brand-3);}

.toc-galley-links{
  display:flex;flex-wrap:wrap;gap:.45rem;
  margin-top:.85rem;
}

.toc-empty{padding:3rem 1.5rem;text-align:center;}
.toc-empty i{
  font-size:3rem;color:var(--text-muted);
  display:block;margin-bottom:1rem;
}
.toc-empty h3{
  font-size:1.15rem;font-weight:800;
  color:var(--text-1);margin-bottom:.5rem;
}
.toc-empty p{
  font-size:.88rem;color:var(--text-2);margin:0;
}

/* ═══════════════════════════════════════════════════════════
   15. ARTICLE SUMMARY
═══════════════════════════════════════════════════════════ */
.jpt-article-summary{
  position:relative;
  display:flex;gap:1.25rem;
  padding:1.5rem;
  background:var(--glass-bg);
  -webkit-backdrop-filter:blur(20px) saturate(170%);
  backdrop-filter:blur(20px) saturate(170%);
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
  box-shadow:var(--glass-shadow);
  transition:
    transform .45s var(--ease),
    box-shadow .45s var(--ease),
    border-color .35s var(--ease);
  overflow:hidden;isolation:isolate;
}
.jpt-article-summary::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg,
    rgba(52,211,153,.06) 0%,
    rgba(14,165,233,.04) 100%);
  opacity:0;transition:opacity .4s var(--ease);
  pointer-events:none;z-index:-1;
}
.jpt-article-summary:hover{
  transform:translateY(-4px);
  box-shadow:var(--glass-shadow-lg);
  border-color:rgba(52,211,153,.4);
}
.jpt-article-summary:hover::before{opacity:1;}
.jpt-article-summary + .jpt-article-summary{margin-top:1rem;}
.jpt-article-summary.has-cover{padding-left:1.25rem;}

.summary-cover{
  flex:0 0 110px;width:110px;
  align-self:flex-start;
  border-radius:14px;overflow:hidden;
  box-shadow:0 10px 24px -10px rgba(8,60,40,.35);
  transition:transform .5s var(--ease);
  display:block;
}
.summary-cover:hover{
  transform:scale(1.04) rotate(-1deg);
}
.summary-cover img{
  display:block;width:100%;height:auto;
  aspect-ratio:3/4;object-fit:cover;
}

.summary-body{
  flex:1;min-width:0;
  display:flex;flex-direction:column;gap:.55rem;
}

.summary-badges{
  display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;
}
.summary-badge{
  display:inline-flex;align-items:center;gap:.35rem;
  font-size:.66rem;font-weight:800;
  letter-spacing:.5px;text-transform:uppercase;
  padding:.28rem .6rem;border-radius:8px;
  white-space:nowrap;
}
.summary-badge i{font-size:.72rem;}
.summary-badge-oa{
  background:linear-gradient(135deg,var(--gold),#fbbf24);
  color:#432a02;
  box-shadow:0 4px 10px -3px rgba(245,158,11,.4);
}
.summary-badge-section{
  background:rgba(15,123,82,.1);
  border:1px solid rgba(15,123,82,.2);
  color:var(--brand-1);
  text-transform:none;letter-spacing:.2px;font-size:.68rem;
}
[data-bs-theme="dark"] .summary-badge-section{
  background:rgba(52,211,153,.12);
  border-color:rgba(52,211,153,.25);
  color:var(--brand-3);
}
.summary-badge-peer{
  background:rgba(14,165,233,.1);
  border:1px solid rgba(14,165,233,.25);
  color:#0284c7;
  text-transform:none;letter-spacing:.2px;font-size:.68rem;
}
[data-bs-theme="dark"] .summary-badge-peer{color:#38bdf8;}

.summary-title{
  font-size:1.02rem;font-weight:800;
  letter-spacing:-.35px;line-height:1.4;
  margin:0;color:var(--text-1);
}
.summary-title a{
  color:inherit;display:inline-block;
  transition:color .3s var(--ease);
}
.summary-title a:hover{color:var(--brand-1);}
[data-bs-theme="dark"] .summary-title a:hover{color:var(--brand-3);}

.summary-subtitle{
  font-size:.86rem;font-weight:500;
  color:var(--text-2);line-height:1.5;margin:0;
}

.summary-authors{
  display:flex;align-items:flex-start;gap:.5rem;
  font-size:.82rem;color:var(--text-2);line-height:1.55;
}
.summary-authors > i{
  color:var(--brand-2);margin-top:.2rem;
  flex-shrink:0;font-size:.9rem;
}
.summary-authors-list{display:inline;min-width:0;}
.summary-author-link{
  color:var(--text-2);font-weight:600;
  transition:color .3s var(--ease);
}
.summary-author-link:hover{
  color:var(--brand-1);text-decoration:underline;
  text-underline-offset:2px;
}
[data-bs-theme="dark"] .summary-author-link:hover{color:var(--brand-3);}
.summary-author-sep{
  display:inline-block;margin:0 .3rem;
  color:var(--text-muted);font-weight:600;
}

.summary-abstract{
  font-size:.82rem;line-height:1.7;
  color:var(--text-2);margin:.15rem 0;
  padding-left:.85rem;
  border-left:3px solid rgba(15,123,82,.2);
}
[data-bs-theme="dark"] .summary-abstract{
  border-left-color:rgba(52,211,153,.25);
}

.summary-keywords{
  display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.15rem;
}
.summary-keyword{
  font-size:.7rem;font-weight:600;
  padding:.25rem .6rem;border-radius:100px;
  background:var(--glass-bg-strong);
  border:1px solid var(--glass-border);
  color:var(--text-2);
  transition:all .3s var(--ease);
}
.summary-keyword:hover{
  color:var(--brand-1);
  border-color:var(--brand-3);
  transform:translateY(-1px);
}
[data-bs-theme="dark"] .summary-keyword:hover{color:var(--brand-3);}

.summary-meta{
  display:flex;flex-wrap:wrap;gap:.9rem;
  font-size:.74rem;font-weight:600;
  color:var(--text-muted);
  margin-top:.25rem;padding-top:.65rem;
  border-top:1px solid var(--glass-border);
}
.summary-meta-item{
  display:inline-flex;align-items:center;gap:.35rem;
}
.summary-meta-item i{
  color:var(--brand-1);font-size:.85rem;
}
[data-bs-theme="dark"] .summary-meta-item i{color:var(--brand-3);}
.summary-meta-doi a{
  color:var(--brand-1);
  text-decoration:underline;
  text-underline-offset:2px;
  transition:color .3s var(--ease);
}
.summary-meta-doi a:hover{color:var(--brand-2);}
[data-bs-theme="dark"] .summary-meta-doi a{color:var(--brand-3);}

.summary-galleys{
  display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.35rem;
}

/* ─── Compact variant ─── */
.jpt-article-summary.is-compact{
  padding:1.1rem 1.15rem;gap:.9rem;
}
.jpt-article-summary.is-compact .summary-title{
  font-size:.92rem;line-height:1.35;
}
.jpt-article-summary.is-compact .summary-authors{font-size:.76rem;}
.jpt-article-summary.is-compact .summary-abstract{
  font-size:.78rem;
  -webkit-line-clamp:2;
  display:-webkit-box;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.jpt-article-summary.is-compact .summary-meta{
  font-size:.68rem;padding-top:.5rem;
}
.jpt-article-summary.is-compact .summary-galleys{margin-top:.25rem;}

/* ─── List & grid wrappers ─── */
.jpt-article-list{
  display:flex;flex-direction:column;gap:1rem;
}
.jpt-article-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));
  gap:1rem;
}
.jpt-article-grid .jpt-article-summary{
  flex-direction:column;padding:1.25rem;height:100%;
}
.jpt-article-grid .summary-cover{
  width:100%;flex:0 0 auto;margin-bottom:.5rem;
}
.jpt-article-grid .summary-cover img{aspect-ratio:16/9;}

.jpt-article-list-heading{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;
  margin-bottom:1.25rem;
}
.jpt-article-list-heading h2{
  font-size:1.15rem;font-weight:800;
  letter-spacing:-.4px;margin:0;color:var(--text-1);
}
.jpt-article-list-count{
  font-size:.72rem;font-weight:700;
  padding:.3rem .7rem;border-radius:100px;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  color:var(--text-2);
  text-transform:uppercase;letter-spacing:.5px;
}

/* ═══════════════════════════════════════════════════════════
   16. ARTICLE DETAILS
═══════════════════════════════════════════════════════════ */
.jpt-article-details{
  max-width:1180px;
  margin-inline:auto;
  padding:0 1.4rem 3rem;
}

.article-details-hero{
  padding:2.25rem 2rem;
  position:relative;overflow:hidden;
  margin-bottom:2rem;isolation:isolate;
}
.article-details-hero-bg{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(560px 300px at 100% 0%,
      rgba(52,211,153,.22), transparent 65%),
    radial-gradient(440px 240px at 0% 100%,
      rgba(14,165,233,.13), transparent 60%);
}
.article-details-hero > .row{position:relative;z-index:1;}

.article-details-cover{
  position:relative;border-radius:20px;overflow:hidden;
  box-shadow:
    0 24px 50px -18px rgba(8,60,40,.4),
    0 10px 24px -10px rgba(8,60,40,.25);
  transition:transform .55s var(--ease);
  background:var(--glass-bg);
}
.article-details-cover img{
  display:block;width:100%;height:auto;
  transition:transform .8s var(--ease);
}
.article-details-cover:hover{
  transform:translateY(-6px) rotate(-1deg);
}
.article-details-cover:hover img{transform:scale(1.05);}
.article-details-cover-glow{
  position:absolute;inset:-30px;
  background:radial-gradient(circle,
    rgba(52,211,153,.3), transparent 70%);
  filter:blur(30px);z-index:-1;pointer-events:none;
}

.article-details-meta{display:flex;flex-direction:column;gap:.9rem;}

.article-details-badges{
  display:flex;flex-wrap:wrap;gap:.45rem;
}
.details-badge{
  display:inline-flex;align-items:center;gap:.35rem;
  font-size:.68rem;font-weight:800;
  letter-spacing:.5px;text-transform:uppercase;
  padding:.32rem .7rem;border-radius:8px;
  white-space:nowrap;
}
.details-badge i{font-size:.75rem;}
.details-badge-oa{
  background:linear-gradient(135deg,var(--gold),#fbbf24);
  color:#432a02;
  box-shadow:0 4px 10px -3px rgba(245,158,11,.4);
}
.details-badge-section{
  background:rgba(15,123,82,.1);
  border:1px solid rgba(15,123,82,.2);
  color:var(--brand-1);
  text-transform:none;letter-spacing:.2px;font-size:.7rem;
}
[data-bs-theme="dark"] .details-badge-section{
  background:rgba(52,211,153,.12);
  border-color:rgba(52,211,153,.25);
  color:var(--brand-3);
}
.details-badge-peer{
  background:rgba(14,165,233,.1);
  border:1px solid rgba(14,165,233,.25);
  color:#0284c7;
  text-transform:none;letter-spacing:.2px;font-size:.7rem;
}
[data-bs-theme="dark"] .details-badge-peer{color:#38bdf8;}

.article-details-title{
  font-size:clamp(1.6rem,3vw,2.4rem);
  font-weight:800;letter-spacing:-1.1px;
  line-height:1.15;color:var(--text-1);
  margin:0;
}
.article-details-subtitle{
  font-size:1.05rem;font-weight:600;
  color:var(--text-2);line-height:1.55;
  margin:.25rem 0 0;
}

/* ─── Authors ─── */
.article-details-authors{
  display:flex;flex-direction:column;gap:.7rem;
  margin-top:.5rem;padding-top:1rem;
  border-top:1px solid var(--glass-border);
}
.article-author-card{
  display:flex;gap:.85rem;align-items:flex-start;
  padding:.75rem .9rem;border-radius:14px;
  background:rgba(15,123,82,.04);
  border:1px solid rgba(15,123,82,.1);
  transition:all .35s var(--ease);
}
[data-bs-theme="dark"] .article-author-card{
  background:rgba(52,211,153,.05);
  border-color:rgba(52,211,153,.12);
}
.article-author-card:hover{
  transform:translateX(4px);
  background:rgba(15,123,82,.07);
  border-color:rgba(15,123,82,.2);
}
[data-bs-theme="dark"] .article-author-card:hover{
  background:rgba(52,211,153,.08);
  border-color:rgba(52,211,153,.22);
}
.article-author-card.is-corresponding{
  background:rgba(14,165,233,.06);
  border-color:rgba(14,165,233,.2);
}
[data-bs-theme="dark"] .article-author-card.is-corresponding{
  background:rgba(14,165,233,.08);
  border-color:rgba(14,165,233,.25);
}
.article-author-avatar{
  flex:0 0 42px;width:42px;height:42px;
  border-radius:12px;display:grid;place-items:center;
  font-size:1rem;font-weight:800;color:#fff;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  box-shadow:0 6px 14px -4px rgba(15,123,82,.35);
}
.article-author-info{flex:1;min-width:0;}
.article-author-name-row{
  display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;
}
.article-author-name{
  font-size:.92rem;font-weight:700;
  color:var(--text-1);
  transition:color .3s var(--ease);
}
.article-author-name:hover{color:var(--brand-1);}
[data-bs-theme="dark"] .article-author-name:hover{color:var(--brand-3);}

.author-corresponding-badge{
  display:inline-flex;align-items:center;gap:.3rem;
  font-size:.62rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.5px;
  padding:.2rem .5rem;border-radius:6px;
  background:rgba(14,165,233,.15);
  border:1px solid rgba(14,165,233,.3);
  color:#0284c7;
}
[data-bs-theme="dark"] .author-corresponding-badge{color:#38bdf8;}

.author-orcid{
  display:inline-flex;align-items:center;gap:.25rem;
  font-size:.66rem;font-weight:700;
  padding:.2rem .5rem;border-radius:6px;
  background:#a6ce39;color:#fff;
  transition:all .3s var(--ease);
}
.author-orcid:hover{
  background:#8bb32e;transform:translateY(-1px);
}
.author-orcid i{font-size:.75rem;}

.article-author-affil{
  display:flex;align-items:flex-start;gap:.4rem;
  font-size:.78rem;color:var(--text-2);
  line-height:1.55;margin-top:.3rem;
}
.article-author-affil i{
  color:var(--brand-2);margin-top:.15rem;
  flex-shrink:0;font-size:.85rem;
}

/* ─── Chips ─── */
.article-details-chips{
  display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem;
}
.details-chip{
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.5rem .8rem;border-radius:12px;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  transition:all .3s var(--ease);
}
.details-chip:hover{
  transform:translateY(-2px);
  box-shadow:var(--glass-shadow);
  border-color:var(--brand-3);
}
.details-chip > i{
  font-size:1rem;color:var(--brand-1);flex-shrink:0;
}
[data-bs-theme="dark"] .details-chip > i{color:var(--brand-3);}
.details-chip span{
  display:flex;flex-direction:column;
  line-height:1.15;min-width:0;
}
.details-chip small{
  font-size:.6rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.5px;
  color:var(--text-muted);
}
.details-chip strong{
  font-size:.78rem;font-weight:700;color:var(--text-1);
}
.details-chip strong a{
  color:var(--brand-1);
  text-decoration:underline;text-underline-offset:2px;
}
[data-bs-theme="dark"] .details-chip strong a{color:var(--brand-3);}

.details-chip-doi{
  background:rgba(14,165,233,.08);
  border-color:rgba(14,165,233,.22);
}
.details-chip-doi > i{color:#0284c7;}
[data-bs-theme="dark"] .details-chip-doi > i{color:#38bdf8;}

.article-details-pubid{
  font-size:.78rem;color:var(--text-2);padding:.3rem 0;
}
.article-details-pubid a{
  color:var(--brand-1);text-decoration:underline;
}
[data-bs-theme="dark"] .article-details-pubid a{color:var(--brand-3);}

/* ─── Layout ─── */
.article-details-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:1.5rem;align-items:start;
}
.article-details-main{
  display:flex;flex-direction:column;gap:1.25rem;
  min-width:0;
}
.article-details-sidebar{
  display:flex;flex-direction:column;gap:1rem;
  position:sticky;
  top:calc(var(--header-h) + 20px);
  max-height:calc(100vh - var(--header-h) - 40px);
  overflow-y:auto;padding-right:.25rem;
}
.article-details-sidebar::-webkit-scrollbar{width:4px;}
.article-details-sidebar::-webkit-scrollbar-thumb{
  background:var(--glass-border);border-radius:2px;
}

/* ─── Main sections ─── */
.article-details-section{padding:1.75rem 1.85rem;}
.article-details-section-title{
  font-size:1.05rem;font-weight:800;
  letter-spacing:-.3px;color:var(--text-1);
  margin:0 0 1.1rem;
  display:flex;align-items:center;gap:.6rem;
}
.article-details-section-title i{
  color:var(--brand-1);font-size:1rem;
}
[data-bs-theme="dark"] .article-details-section-title i{color:var(--brand-3);}
.article-details-count{
  margin-left:auto;
  font-size:.72rem;font-weight:800;
  padding:.2rem .6rem;border-radius:100px;
  background:rgba(15,123,82,.1);color:var(--brand-1);
}
[data-bs-theme="dark"] .article-details-count{
  background:rgba(52,211,153,.12);color:var(--brand-3);
}

.article-details-abstract{
  font-size:.92rem;line-height:1.85;color:var(--text-2);
}
.article-details-abstract p:last-child{margin-bottom:0;}
.article-details-abstract strong{color:var(--text-1);}

.article-details-keywords{
  display:flex;flex-wrap:wrap;gap:.5rem;
}
.article-keyword{
  display:inline-flex;align-items:center;gap:.35rem;
  font-size:.78rem;font-weight:600;
  padding:.45rem .85rem;border-radius:100px;
  background:var(--glass-bg-strong);
  border:1px solid var(--glass-border);
  color:var(--text-1);
  transition:all .3s var(--ease);text-decoration:none;
}
.article-keyword i{
  font-size:.75rem;color:var(--brand-1);
}
[data-bs-theme="dark"] .article-keyword i{color:var(--brand-3);}
a.article-keyword:hover{
  transform:translateY(-2px);
  color:var(--brand-1);
  border-color:var(--brand-3);
  box-shadow:0 6px 16px -6px rgba(15,123,82,.3);
}
[data-bs-theme="dark"] a.article-keyword:hover{color:var(--brand-3);}

/* ─── References ─── */
.article-details-references{
  list-style:none;counter-reset:ref-counter;
  padding:0;margin:0;
  display:flex;flex-direction:column;gap:.85rem;
}
.article-reference-item{
  counter-increment:ref-counter;
  position:relative;
  padding:.85rem .95rem .85rem 3.2rem;
  border-radius:12px;
  background:rgba(15,123,82,.03);
  border:1px solid rgba(15,123,82,.08);
  font-size:.82rem;line-height:1.7;color:var(--text-2);
  transition:all .35s var(--ease);
}
[data-bs-theme="dark"] .article-reference-item{
  background:rgba(52,211,153,.04);
  border-color:rgba(52,211,153,.1);
}
.article-reference-item::before{
  content:counter(ref-counter);
  position:absolute;left:.95rem;top:.85rem;
  width:1.7rem;height:1.7rem;border-radius:8px;
  display:grid;place-items:center;
  font-size:.72rem;font-weight:800;
  color:var(--brand-1);
  background:rgba(15,123,82,.1);
  border:1px solid rgba(15,123,82,.18);
}
[data-bs-theme="dark"] .article-reference-item::before{
  color:var(--brand-3);
  background:rgba(52,211,153,.12);
  border-color:rgba(52,211,153,.2);
}
.article-reference-item:hover{
  background:rgba(15,123,82,.06);
  border-color:rgba(15,123,82,.18);
  transform:translateX(3px);
}
[data-bs-theme="dark"] .article-reference-item:hover{
  background:rgba(52,211,153,.07);
  border-color:rgba(52,211,153,.2);
}
.article-reference-item a{
  color:var(--brand-1);
  text-decoration:underline;text-underline-offset:2px;
  word-break:break-word;
}
[data-bs-theme="dark"] .article-reference-item a{color:var(--brand-3);}

/* ─── Metadata ─── */
.article-details-metadata{
  display:grid;grid-template-columns:1fr;gap:0;margin:0;
}
.article-details-metadata dt,
.article-details-metadata dd{
  padding:.75rem 0;
  border-bottom:1px solid var(--glass-border);
  margin:0;
}
.article-details-metadata dt:last-of-type,
.article-details-metadata dd:last-of-type{border-bottom:none;}
.article-details-metadata dt{
  font-size:.7rem;font-weight:800;
  text-transform:uppercase;letter-spacing:.5px;
  color:var(--text-muted);
  display:flex;align-items:center;gap:.45rem;
  padding-bottom:.35rem;border-bottom:none;
}
.article-details-metadata dt i{
  color:var(--brand-1);font-size:.85rem;
}
[data-bs-theme="dark"] .article-details-metadata dt i{color:var(--brand-3);}
.article-details-metadata dd{
  font-size:.88rem;line-height:1.65;
  color:var(--text-1);padding-top:0;margin-bottom:.65rem;
}

/* ─── License ─── */
.article-details-license .article-license-content{
  display:flex;flex-direction:column;gap:.85rem;
}
.article-license-badge{
  display:inline-flex;align-items:center;gap:.55rem;
  width:max-content;
  padding:.7rem 1.15rem;border-radius:12px;
  background:linear-gradient(135deg,
    rgba(52,211,153,.15),rgba(14,165,233,.1));
  border:1px solid rgba(52,211,153,.3);
  color:var(--brand-1);
  font-size:.82rem;font-weight:700;
  transition:all .35s var(--ease);text-decoration:none;
}
[data-bs-theme="dark"] .article-license-badge{color:var(--brand-3);}
.article-license-badge i:first-child{font-size:1.1rem;}
.article-license-badge i:last-child{
  font-size:.75rem;opacity:.7;
  transition:transform .35s var(--ease);
}
.article-license-badge:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 24px -8px rgba(15,123,82,.3);
}
.article-license-badge:hover i:last-child{
  transform:translate(2px,-2px);
}
.article-license-text{
  font-size:.82rem;line-height:1.7;
  color:var(--text-2);margin:0;
}

/* ─── Sidebar cards ─── */
.article-details-sidebar-card{padding:1.3rem 1.35rem;}
.sidebar-card-title{
  font-size:.92rem;font-weight:800;
  letter-spacing:-.2px;color:var(--text-1);
  margin:0 0 1rem;
  display:flex;align-items:center;gap:.55rem;
}
.sidebar-card-title i{
  color:var(--brand-1);font-size:.95rem;
}
[data-bs-theme="dark"] .sidebar-card-title i{color:var(--brand-3);}

.article-galleys-list{
  display:flex;flex-direction:column;gap:.55rem;
}
.article-galleys-locked{
  text-align:center;padding:1.5rem 1rem;
  border-radius:12px;
  background:rgba(239,68,68,.06);
  border:1px dashed rgba(239,68,68,.25);
}
.article-galleys-locked i{
  font-size:1.8rem;color:#ef4444;
  display:block;margin-bottom:.6rem;
}
.article-galleys-locked p{
  font-size:.85rem;font-weight:700;
  color:var(--text-1);margin:0 0 .2rem;
}
.article-galleys-locked small{
  font-size:.74rem;color:var(--text-2);
}

/* ─── Citation ─── */
.citation-tabs{
  display:flex;gap:.3rem;list-style:none;
  padding:0;margin:0 0 .85rem;
  padding:.3rem;border-radius:11px;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
}
.citation-tab{
  flex:1;padding:.45rem .5rem;
  border:none;background:transparent;border-radius:8px;
  font-size:.74rem;font-weight:800;
  letter-spacing:.3px;text-transform:uppercase;
  color:var(--text-2);cursor:pointer;
  transition:all .3s var(--ease);
}
.citation-tab:hover{color:var(--brand-1);}
.citation-tab.active{
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  color:#fff;
  box-shadow:0 6px 14px -4px rgba(15,123,82,.4);
}

.citation-tab-content .tab-pane{
  animation:jpt-fadeTab .35s var(--ease) both;
}
.citation-text{
  font-size:.78rem;line-height:1.7;
  color:var(--text-2);
  padding:.75rem .85rem;border-radius:10px;
  background:rgba(15,123,82,.04);
  border:1px solid rgba(15,123,82,.1);
  margin-bottom:.6rem;word-break:break-word;
}
[data-bs-theme="dark"] .citation-text{
  background:rgba(52,211,153,.04);
  border-color:rgba(52,211,153,.12);
}
.citation-text em{color:var(--text-1);}

.citation-copy-btn{
  display:inline-flex;align-items:center;gap:.4rem;
  width:100%;justify-content:center;
  padding:.55rem .85rem;border-radius:10px;
  font-size:.76rem;font-weight:700;
  background:var(--glass-bg-strong);
  border:1px solid var(--glass-border);
  color:var(--text-1);cursor:pointer;
  transition:all .3s var(--ease);
}
.citation-copy-btn i{
  font-size:.85rem;color:var(--brand-1);
}
[data-bs-theme="dark"] .citation-copy-btn i{color:var(--brand-3);}
.citation-copy-btn:hover{
  transform:translateY(-2px);
  color:var(--brand-1);
  border-color:var(--brand-3);
  box-shadow:0 8px 20px -8px rgba(15,123,82,.3);
}
[data-bs-theme="dark"] .citation-copy-btn:hover{color:var(--brand-3);}
.citation-copy-btn.copied{
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  border-color:transparent;color:#fff;
}
.citation-copy-btn.copied i{color:#fff;}

/* ─── Info list ─── */
.article-info-list{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:.6rem;
}
.article-info-list li{
  display:flex;justify-content:space-between;
  align-items:flex-start;gap:.75rem;
  padding:.55rem 0;
  border-bottom:1px dashed var(--glass-border);
  font-size:.8rem;
}
.article-info-list li:last-child{border-bottom:none;}
.article-info-list li span{
  display:inline-flex;align-items:center;gap:.4rem;
  color:var(--text-muted);font-weight:600;flex-shrink:0;
}
.article-info-list li span i{
  color:var(--brand-1);font-size:.85rem;
}
[data-bs-theme="dark"] .article-info-list li span i{color:var(--brand-3);}
.article-info-list li strong{
  color:var(--text-1);font-weight:700;
  text-align:right;min-width:0;word-break:break-word;
}
.article-info-list li strong a{
  color:var(--brand-1);
  text-decoration:underline;text-underline-offset:2px;
}
[data-bs-theme="dark"] .article-info-list li strong a{color:var(--brand-3);}

/* ─── Issue link ─── */
.article-issue-link{
  display:flex;align-items:center;gap:.85rem;
  padding:.85rem .9rem;border-radius:12px;
  background:rgba(15,123,82,.05);
  border:1px solid rgba(15,123,82,.15);
  text-decoration:none;color:inherit;
  transition:all .35s var(--ease);
}
[data-bs-theme="dark"] .article-issue-link{
  background:rgba(52,211,153,.06);
  border-color:rgba(52,211,153,.18);
}
.article-issue-link:hover{
  transform:translateY(-3px);
  border-color:var(--brand-3);
  box-shadow:0 10px 24px -8px rgba(15,123,82,.3);
  color:inherit;
}
.article-issue-info{
  flex:1;min-width:0;
  display:flex;flex-direction:column;line-height:1.25;
}
.article-issue-info strong{
  font-size:.85rem;font-weight:800;color:var(--text-1);
}
.article-issue-info small{
  font-size:.72rem;color:var(--text-2);font-weight:500;
}
.article-issue-link > i{
  font-size:.9rem;color:var(--brand-1);
  transition:transform .35s var(--ease);
}
[data-bs-theme="dark"] .article-issue-link > i{color:var(--brand-3);}
.article-issue-link:hover > i{transform:translateX(4px);}

/* ─── Share ─── */
.article-share-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;
}
.share-btn{
  display:grid;place-items:center;
  aspect-ratio:1;border-radius:12px;
  font-size:1.05rem;color:#fff;
  transition:all .35s var(--ease);text-decoration:none;
}
.share-btn:hover{
  transform:translateY(-4px) scale(1.05);color:#fff;
}
.share-twitter{background:linear-gradient(135deg,#000,#333);}
.share-facebook{background:linear-gradient(135deg,#1877f2,#4293ff);}
.share-linkedin{background:linear-gradient(135deg,#0a66c2,#378fe9);}
.share-email{background:linear-gradient(135deg,var(--brand-1),var(--brand-3));}

/* ═══════════════════════════════════════════════════════════
   17. GALLEY LINK
═══════════════════════════════════════════════════════════ */
.galley-link{
  display:inline-flex;align-items:center;gap:.55rem;
  text-decoration:none;color:inherit;cursor:pointer;
  transition:all .35s var(--ease);
  position:relative;font-weight:700;line-height:1.25;
  border-radius:12px;isolation:isolate;
  -webkit-user-select:none;user-select:none;
}
.galley-link-icon{
  display:inline-grid;place-items:center;flex-shrink:0;
  transition:transform .45s var(--ease);
}
.galley-link-icon i{
  font-size:1.05rem;color:var(--brand-1);
  transition:color .3s var(--ease), filter .3s var(--ease);
}
[data-bs-theme="dark"] .galley-link-icon i{color:var(--brand-3);}
.galley-link-body{
  display:flex;flex-direction:column;min-width:0;line-height:1.15;
}
.galley-link-label{
  font-size:.8rem;font-weight:800;
  letter-spacing:.2px;color:var(--text-1);
  transition:color .3s var(--ease);
}
.galley-link-size,
.galley-link-mime{
  font-size:.66rem;font-weight:600;
  color:var(--text-muted);margin-top:.1rem;
}
.galley-link-mime{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.6rem;
}
.galley-link-new,
.galley-link-arrow{
  display:inline-flex;align-items:center;
  flex-shrink:0;margin-left:auto;
}
.galley-link-new i{
  font-size:.75rem;color:var(--text-muted);
  transition:transform .35s var(--ease), color .3s var(--ease);
}
.galley-link-arrow i{
  font-size:1rem;color:var(--brand-1);
  transition:transform .35s var(--ease);
}
[data-bs-theme="dark"] .galley-link-arrow i{color:var(--brand-3);}

/* ─── Variant: inline ─── */
.galley-link-inline{
  padding:.45rem .8rem;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
}
.galley-link-inline:hover{
  transform:translateY(-2px);
  border-color:var(--brand-3);
  box-shadow:0 8px 20px -8px rgba(15,123,82,.3);
}
.galley-link-inline:hover .galley-link-label{color:var(--brand-1);}
[data-bs-theme="dark"] .galley-link-inline:hover .galley-link-label{color:var(--brand-3);}
.galley-link-inline:hover .galley-link-icon i{transform:scale(1.12);}

/* ─── Variant: button ─── */
.galley-link-button{
  width:100%;justify-content:flex-start;
  padding:.85rem 1.15rem;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  border:1px solid transparent;color:#fff;
  box-shadow:0 10px 24px -8px rgba(15,123,82,.45);
}
.galley-link-button .galley-link-icon i,
.galley-link-button .galley-link-label{color:#fff;}
.galley-link-button .galley-link-size,
.galley-link-button .galley-link-mime{color:rgba(255,255,255,.8);}
.galley-link-button .galley-link-arrow i{color:#fff;}
.galley-link-button:hover{
  transform:translateY(-3px) scale(1.01);
  box-shadow:0 16px 34px -10px rgba(15,123,82,.55);
  color:#fff;
}
.galley-link-button:hover .galley-link-icon i{
  transform:rotate(-8deg) scale(1.15);
}
.galley-link-button:hover .galley-link-arrow i{transform:translateY(3px);}
.galley-link-button.is-remote{
  background:linear-gradient(135deg,#0ea5e9,#38bdf8);
  box-shadow:0 10px 24px -8px rgba(14,165,233,.5);
}
.galley-link-button.is-remote:hover{
  box-shadow:0 16px 34px -10px rgba(14,165,233,.6);
}

/* ─── Variant: sidebar ─── */
.galley-link-sidebar{
  width:100%;padding:.75rem .85rem;
  background:var(--glass-bg-strong);
  border:1px solid var(--glass-border);
  border-radius:12px;
}
.galley-link-sidebar .galley-link-icon{
  width:40px;height:40px;border-radius:10px;
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  box-shadow:0 6px 14px -4px rgba(15,123,82,.35);
}
.galley-link-sidebar .galley-link-icon i{color:#fff;}
.galley-link-sidebar:hover{
  transform:translateX(4px);
  border-color:var(--brand-3);
  box-shadow:0 8px 20px -8px rgba(15,123,82,.3);
}
.galley-link-sidebar:hover .galley-link-label{color:var(--brand-1);}
[data-bs-theme="dark"] .galley-link-sidebar:hover .galley-link-label{color:var(--brand-3);}
.galley-link-sidebar:hover .galley-link-arrow i,
.galley-link-sidebar:hover .galley-link-new i{
  transform:translateX(3px);
}
.galley-link-sidebar.is-remote .galley-link-icon{
  background:linear-gradient(135deg,#0ea5e9,#38bdf8);
  box-shadow:0 6px 14px -4px rgba(14,165,233,.4);
}

/* ─── Variant: hero ─── */
.galley-link-hero{
  padding:.7rem 1.15rem;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  border-radius:12px;font-size:.82rem;
}
.galley-link-hero:hover{
  transform:translateY(-3px) scale(1.02);
  border-color:var(--brand-3);
  box-shadow:0 12px 26px -10px rgba(15,123,82,.35);
}
.galley-link-hero:hover .galley-link-label{color:var(--brand-1);}
[data-bs-theme="dark"] .galley-link-hero:hover .galley-link-label{color:var(--brand-3);}
.galley-link-hero.galley-link-primary{
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  border-color:transparent;color:#fff;
  box-shadow:0 10px 24px -8px rgba(15,123,82,.5);
}
.galley-link-hero.galley-link-primary .galley-link-label,
.galley-link-hero.galley-link-primary .galley-link-icon i,
.galley-link-hero.galley-link-primary .galley-link-arrow i,
.galley-link-hero.galley-link-primary .galley-link-new i{color:#fff;}
.galley-link-hero.galley-link-primary .galley-link-size{color:rgba(255,255,255,.8);}
.galley-link-hero.galley-link-primary:hover{
  transform:translateY(-4px) scale(1.04);
  box-shadow:0 18px 40px -12px rgba(15,123,82,.6);
  color:#fff;
}

/* ─── Variant: badge ─── */
.galley-link-badge{
  padding:.35rem .7rem;border-radius:100px;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
  font-size:.7rem;gap:.35rem;
}
.galley-link-badge .galley-link-icon i{font-size:.8rem;}
.galley-link-badge .galley-link-label{
  font-size:.7rem;font-weight:800;
  letter-spacing:.3px;text-transform:uppercase;
}
.galley-link-badge:hover{
  transform:translateY(-2px);
  border-color:var(--brand-3);
  background:linear-gradient(135deg,var(--brand-1),var(--brand-3));
  color:#fff;
}
.galley-link-badge:hover .galley-link-label,
.galley-link-badge:hover .galley-link-icon i{color:#fff;}

/* ─── Variant: icon ─── */
.galley-link-icon-only{
  width:36px;height:36px;padding:0;
  display:grid;place-items:center;
  border-radius:10px;
  background:var(--glass-bg);
  border:1px solid var(--glass-border);
}
.galley-link-icon-only .galley-link-icon i{font-size:1.05rem;}
.galley-link-icon-only:hover{
  transform:translateY(-3px) rotate(-4deg);
  border-color:var(--brand-3);
  box-shadow:0 10px 22px -8px rgba(15,123,82,.4);
}

/* ─── Locked state ─── */
.galley-link.is-locked{
  cursor:not-allowed;opacity:.7;
  background:rgba(239,68,68,.06);
  border:1px dashed rgba(239,68,68,.3);
}
.galley-link.is-locked .galley-link-icon i{color:#ef4444;}
.galley-link.is-locked .galley-link-label{color:var(--text-2);}
.galley-link.is-locked:hover{transform:none;box-shadow:none;}
.galley-link-lock{
  display:inline-flex;align-items:center;margin-left:auto;
}
.galley-link-lock i{font-size:.9rem;color:#ef4444;}

/* ─── Size adjustments ─── */
.galley-link.galley-link-sm{font-size:.72rem;padding:.35rem .6rem;}
.galley-link.galley-link-sm .galley-link-label{font-size:.72rem;}
.galley-link.galley-link-sm .galley-link-icon i{font-size:.85rem;}
.galley-link.galley-link-lg{padding:.95rem 1.35rem;}
.galley-link.galley-link-lg .galley-link-label{font-size:.92rem;}
.galley-link.galley-link-lg .galley-link-icon i{font-size:1.2rem;}

/* ─── Groups ─── */
.galley-links-group{
  display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;
}
.galley-links-group.galley-links-vertical{
  flex-direction:column;align-items:stretch;
}
.galley-links-group.galley-links-vertical .galley-link{width:100%;}

/* ═══════════════════════════════════════════════════════════
   18. RESPONSIVE
═══════════════════════════════════════════════════════════ */
@media (max-width:991.98px){
  .nav-toggler{display:grid;place-items:center;}
  .navbar-collapse{
    display:none;position:absolute;
    top:calc(100% + .5rem);left:1rem;right:1rem;
    flex-direction:column;align-items:stretch;
    padding:1rem;border-radius:16px;
    background:var(--glass-bg-strong);
    -webkit-backdrop-filter:blur(22px);
    backdrop-filter:blur(22px);
    border:1px solid var(--glass-border);
    box-shadow:var(--glass-shadow-lg);
    gap:.8rem;z-index:1050;
    max-height:calc(100vh - 100px);overflow-y:auto;
  }
  .navbar-collapse.show{display:flex;}
  .nav-menu{
    flex-direction:column;align-items:stretch;
    margin:0;gap:.4rem;width:100%;
  }
  .nav-link-effect{
    width:100%;padding:.85rem 1.1rem;
    justify-content:flex-start;border-radius:12px;
    transform:none !important;
  }
  .nav-link-effect .nav-icon{width:24px;font-size:1.15rem;}
  .nav-link-effect .nav-active-dot{
    position:static;margin-left:auto;width:9px;height:9px;
  }
  .nav-link-effect::after{display:none;}

  .nav-actions{flex-wrap:wrap;width:100%;gap:.5rem;}
  .btn-nav-cta,.btn-nav-login{flex:1 1 auto;justify-content:center;}

  .dropdown-menu-glass{
    position:static !important;
    transform:none !important;
    opacity:1 !important;visibility:visible !important;
    background:rgba(15,123,82,.06) !important;
    border:none !important;box-shadow:none !important;
    padding:.35rem 0 .35rem 1.5rem !important;
    margin:.25rem 0 .5rem !important;
    min-width:0 !important;max-width:100% !important;
    max-height:none !important;border-radius:0 !important;
    border-left:2px solid rgba(15,123,82,.2) !important;
    display:none;
  }
  [data-bs-theme="dark"] .dropdown-menu-glass{
    background:rgba(52,211,153,.06) !important;
    border-left-color:rgba(52,211,153,.25) !important;
  }
  .dropdown-menu-glass.show{display:block !important;}
  .dropdown-menu-glass .dropdown-item{padding:.55rem .8rem;font-size:.83rem;}
  .dropdown-menu-glass .dropdown-item:hover{transform:none;}

  .hero-carousel{height:min(80vh, 640px);min-height:520px;}
  .carousel-nav{width:46px;height:46px;}
  .carousel-nav.prev{left:14px;}
  .carousel-nav.next{right:14px;}
  .carousel-counter{right:20px;bottom:20px;}

  .article-details-layout{grid-template-columns:1fr;}
  .article-details-sidebar{
    position:static;max-height:none;overflow:visible;
  }
  .article-details-hero{padding:1.75rem 1.5rem;}
  .article-details-cover{max-width:280px;margin-inline:auto;}

  .issue-hero{padding:1.75rem 1.5rem;}
  .issue-hero-cover{max-width:280px;margin-inline:auto;}
  .issue-pagination{grid-template-columns:1fr;}
  .issue-page-center{
    width:100%;height:auto;flex-direction:row;
    padding:.85rem 1rem;gap:.5rem;
  }
  .issue-page-center span{display:inline;}

  .jpt-article-summary{
    padding:1.15rem;gap:.9rem;
  }
  .jpt-article-summary.has-cover{
    flex-direction:column;padding:1.15rem;
  }
  .summary-cover{
    width:100%;flex:0 0 auto;
    max-width:180px;margin-inline:auto;
  }
  .summary-title{font-size:.95rem;}
  .summary-meta{gap:.6rem;}
}

@media (max-width:767.98px){
  .jpt-article-summary{padding:1.15rem;gap:.9rem;}
}

@media (max-width:575.98px){
  :root{--topbar-h:40px;}

  .main-wrap{
    padding:1.5rem 1rem 2rem;align-items:flex-start;
  }
  .reg-card{
    padding:2rem 1.4rem 1.75rem;
    border-radius:22px;max-width:100%;
  }
  .reg-logo{width:56px;height:56px;font-size:1.55rem;}
  .reg-title{font-size:1.3rem;}
  .reg-subtitle{font-size:.8rem;}
  .field-input{font-size:.88rem;padding:.8rem 0;}
  .field-select{font-size:.88rem;padding:.8rem 2rem .8rem 0;}
  .btn-submit{padding:.9rem 1.25rem;font-size:.88rem;}
  .form-grid{grid-template-columns:1fr;}
  .role-grid{grid-template-columns:1fr;}
  .pwd-checklist{grid-template-columns:1fr;}
  .progress-step .step-label{display:none;}
  .progress-connector{flex:1;}

  .section-pad{padding:56px 0;}
  .article-item{flex-direction:column;gap:.8rem;}
  .stat-num{font-size:1.6rem;}
  .index-grid{grid-template-columns:repeat(2,1fr);}

  .topbar-label{font-size:.66rem;padding:0 .75rem;letter-spacing:.8px;}
  .topbar-label span{display:none;}
  .topbar-item{font-size:.76rem;}
  .topbar-track{gap:1.8rem;animation-duration:26s;}

  .navbar-brand .brand-text{max-width:180px;}
  .navbar-brand .brand-title{font-size:.95rem;}
  .navbar-brand .brand-subtitle{font-size:.62rem;}

  .hero-carousel{
    height:auto;min-height:0;
    padding:60px 0 90px;
    border-bottom-left-radius:24px;
    border-bottom-right-radius:24px;
  }
  .carousel-slides{position:relative;height:auto;}
  .carousel-slide{position:relative;inset:auto;display:none;}
  .carousel-slide.active{display:block;}
  .slide-bg{position:absolute;}
  .slide-card{padding:0;}
  .slide-title{letter-spacing:-1px;}
  .slide-sub{font-size:.95rem;}
  .carousel-nav{display:none;}
  .carousel-dots{bottom:22px;}
  .carousel-counter{
    right:16px;bottom:22px;
    font-size:.75rem;padding:.4rem .8rem;
  }
  .carousel-progress{display:none;}
  .cta-box{padding:2.2rem 1.3rem;}

  .nav-pills-glass{
    flex-wrap:nowrap;overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding:.35rem .5rem;width:100%;
  }
  .nav-pills-glass::-webkit-scrollbar{display:none;}
  .nav-pills-glass .nav-link{
    font-size:.78rem;padding:.45rem .8rem;flex-shrink:0;
  }
  .nav-pills-glass .nav-link i{font-size:.8rem;}

  .brand-logo-img{
    max-height:40px;max-width:120px;
  }

  /* Login */
  #loginCard{padding:1.85rem 1.3rem 1.6rem;}
  .login-extras{
    flex-direction:column;align-items:flex-start;gap:.6rem;
  }

  /* Issue view */
  .issue-container{padding-inline:1rem;}
  .issue-hero{padding:1.4rem 1.15rem;border-radius:20px;}
  .issue-hero-title{letter-spacing:-.8px;}
  .issue-hero-chips .hero-chip{
    font-size:.68rem;padding:.35rem .65rem;
  }
  .issue-hero-galleys{flex-direction:column;align-items:flex-start;}
  .issue-hero-actions .btn{width:100%;justify-content:center;}
  .issue-stat-card{padding:1.15rem .85rem;}
  .issue-stat-num{font-size:1.35rem;}
  .issue-stat-icon{width:38px;height:38px;font-size:1rem;}
  .issue-page-link{padding:.85rem 1rem;}
  .issue-page-body strong{font-size:.82rem;}

  /* TOC */
  .toc-issue-header{padding:1.4rem 1.15rem;}
  .toc-article-item{
    flex-direction:column;gap:.8rem;
    padding:1.1rem .85rem;
  }
  .toc-article-item .article-num{
    width:40px;height:40px;font-size:.85rem;
  }
  .toc-section-header{
    flex-direction:column;align-items:flex-start;gap:.4rem;
  }

  /* Article summary */
  .jpt-article-summary{padding:1rem;}
  .summary-badges{gap:.3rem;}
  .summary-badge{font-size:.6rem;padding:.25rem .5rem;}
  .summary-title{font-size:.88rem;letter-spacing:-.2px;}
  .summary-authors{font-size:.76rem;}
  .summary-meta{font-size:.68rem;gap:.55rem;}
  .summary-galleys{gap:.35rem;}
  .summary-abstract{
    font-size:.78rem;
    -webkit-line-clamp:3;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .jpt-article-grid{grid-template-columns:1fr;}

  /* Article details */
  .jpt-article-details{padding:0 1rem 2rem;}
  .article-details-hero{padding:1.35rem 1.15rem;border-radius:20px;}
  .article-details-title{letter-spacing:-.7px;}
  .article-details-section{padding:1.35rem 1.25rem;}
  .article-details-sidebar-card{padding:1.1rem 1.15rem;}
  .article-author-card{padding:.65rem .75rem;}
  .article-author-avatar{
    flex:0 0 36px;width:36px;height:36px;font-size:.85rem;
  }
  .article-details-chips .details-chip{
    flex:1 1 calc(50% - .25rem);min-width:0;
  }
  .article-share-grid{gap:.4rem;}
  .citation-tabs .citation-tab{
    font-size:.68rem;padding:.4rem .3rem;
  }

  /* Galley link */
  .galley-link-hero,
  .galley-link-inline{
    width:100%;justify-content:center;
  }
  .galley-link-badge{
    font-size:.66rem;padding:.3rem .6rem;
  }
  .galley-links-group:not(.galley-links-vertical){
    flex-direction:column;align-items:stretch;
  }
  .galley-links-group:not(.galley-links-vertical) .galley-link{
    width:100%;justify-content:center;
  }
}

/* ═══════════════════════════════════════════════════════════
   19. REDUCED MOTION
═══════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    transition-duration:.001ms !important;
  }
  .topbar-track{animation:none;padding-left:1rem;}
  .carousel-slide.active .slide-bg{transform:scale(1.06);}
  .nav-link-effect:hover{transform:none;}
  .nav-active-dot{animation:none;}
  .carousel-progress .fill.run{animation:none;transform:scaleX(1);}
}
