
.ngk-plan-modal-root{font-family:inherit}
.ngk-plan-modal{position:fixed;inset:0;z-index:999999;display:none;align-items:center;justify-content:center;padding:20px}
.ngk-plan-modal.is-open{display:flex}
.ngk-plan-backdrop{position:absolute;inset:0;background:rgba(10,24,50,.62);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.ngk-plan-dialog{--ngk-accent:#6d5bd0;position:relative;width:min(920px,100%);max-height:88vh;overflow:auto;background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(250,247,244,.98));border:1px solid color-mix(in srgb,var(--ngk-accent) 35%,#fff);border-radius:26px;padding:34px;box-shadow:0 30px 90px rgba(7,21,45,.30);animation:ngkModalIn .22s ease-out}
@keyframes ngkModalIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
.ngk-plan-close{position:absolute;top:14px;right:16px;width:40px;height:40px;border:0;border-radius:50%;background:#f4f4f6;color:#1b2b49;font-size:28px;line-height:1;cursor:pointer;transition:.2s ease}
.ngk-plan-close:hover{transform:rotate(4deg) scale(1.04);background:#ececf1}
.ngk-plan-kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:color-mix(in srgb,var(--ngk-accent) 11%,white);color:var(--ngk-accent);font-size:12px;font-weight:800;letter-spacing:.08em}
.ngk-plan-dialog h2{margin:14px 56px 6px 0;color:#102a54;font-size:clamp(25px,4vw,39px);line-height:1.15}
.ngk-plan-meta{display:flex;align-items:center;gap:12px;margin:4px 0 18px}
.ngk-plan-meta strong{font-size:24px;color:var(--ngk-accent)}
.ngk-plan-meta span{color:#627087;font-size:14px;padding-left:12px;border-left:1px solid #d9dde6}
.ngk-plan-intro{color:#34435e;font-size:16px;line-height:1.7}
.ngk-plan-intro p{margin:0 0 18px}
.ngk-level-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:20px 0 22px}
.ngk-level{padding:13px 8px;border-radius:14px;text-align:center;border:1px solid #e2e6ed;background:#f7f8fa}
.ngk-level span{display:block;font-size:17px;font-weight:900;color:#2c3950}
.ngk-level small{display:block;margin-top:3px;font-size:10px;color:#7d8798}
.ngk-level.is-active{border-color:color-mix(in srgb,var(--ngk-accent) 35%,#fff);background:color-mix(in srgb,var(--ngk-accent) 9%,white);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ngk-accent) 8%,transparent)}
.ngk-level.is-active span,.ngk-level.is-active small{color:var(--ngk-accent)}
.ngk-level.is-locked{opacity:.56}
.ngk-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin:10px 0 22px}
.ngk-feature-item{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.8);border:1px solid #e7e9ee;border-radius:13px;padding:12px 14px;color:#2f3c52}
.ngk-check{width:23px;height:23px;flex:0 0 23px;border-radius:50%;display:grid;place-items:center;background:var(--ngk-accent);color:#fff;font-size:12px;font-weight:900}
.ngk-best-for{position:relative;padding:18px 18px 18px 20px;border-radius:16px;background:linear-gradient(90deg,color-mix(in srgb,var(--ngk-accent) 8%,white),#fff);border-left:4px solid var(--ngk-accent)}
.ngk-best-for>span{display:block;color:var(--ngk-accent);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}
.ngk-best-for p{margin:6px 0 0;color:#34435e;line-height:1.65}
.ngk-plan-actions{margin-top:22px}
.ngk-primary-action{display:flex;justify-content:center;align-items:center;min-height:52px;border-radius:14px;background:var(--ngk-accent);color:#fff!important;text-decoration:none!important;font-weight:800;box-shadow:0 10px 28px color-mix(in srgb,var(--ngk-accent) 25%,transparent);transition:transform .18s ease,box-shadow .18s ease}
.ngk-primary-action:hover{transform:translateY(-2px);box-shadow:0 14px 32px color-mix(in srgb,var(--ngk-accent) 33%,transparent)}
body.ngk-modal-open{overflow:hidden}
.ngk-plan-trigger{text-decoration:none}
@media(max-width:700px){
  .ngk-plan-modal{padding:10px}
  .ngk-plan-dialog{border-radius:20px;padding:24px 16px 18px;max-height:92vh}
  .ngk-plan-close{top:10px;right:10px}
  .ngk-plan-dialog h2{font-size:27px;margin-right:42px}
  .ngk-plan-meta{flex-wrap:wrap}
  .ngk-level-strip{grid-template-columns:repeat(5,minmax(52px,1fr));gap:5px;overflow-x:auto;padding-bottom:2px}
  .ngk-level{padding:10px 4px;border-radius:11px}
  .ngk-level span{font-size:15px}
  .ngk-level small{font-size:9px}
  .ngk-feature-grid{grid-template-columns:1fr;gap:8px}
  .ngk-feature-item{padding:11px 12px}
}
@media(prefers-reduced-motion:reduce){
  .ngk-plan-dialog,.ngk-primary-action,.ngk-plan-close{animation:none!important;transition:none!important}
}


/* v1.0.4 - standalone plan page shortcodes */
.ngk-inline-plan{
  width:100%;
  padding:28px 16px;
  font-family:inherit;
}
.ngk-inline-plan-inner{
  width:min(920px,100%);
  margin:0 auto;
  background:linear-gradient(180deg,rgba(255,255,255,.99),rgba(250,247,244,.99));
  border:1px solid color-mix(in srgb,var(--ngk-accent) 30%,#fff);
  border-radius:26px;
  padding:36px;
  box-shadow:0 22px 60px rgba(7,21,45,.14);
}
.ngk-inline-plan h2{
  margin:14px 0 6px;
  color:#102a54;
  font-size:clamp(27px,4vw,40px);
  line-height:1.15;
}
@media(max-width:700px){
  .ngk-inline-plan{padding:14px 8px}
  .ngk-inline-plan-inner{padding:24px 16px;border-radius:20px}
}

/* v1.0.5 — Kanji visual language adoption (visual-only) */
.ngk-inline-plan,
.ngk-plan-modal-root{
  --ngk-ink:#172033;
  --ngk-muted:#667085;
  --ngk-purple:#7c3aed;
  --ngk-pink:#ec4899;
  --ngk-blue:#2563eb;
  --ngk-cyan:#06b6d4;
  --ngk-green:#059669;
  --ngk-yellow:#f59e0b;
  --ngk-orange:#ea580c;
  --ngk-red:#dc2626;
  color:var(--ngk-ink);
  font-family:system-ui,-apple-system,"Segoe UI","Noto Sans Bengali","Noto Sans JP",sans-serif;
}
.ngk-inline-plan *,
.ngk-plan-modal-root *{box-sizing:border-box}

/* Premium main surface — matched to Kanji hero/card family */
.ngk-inline-plan-inner,
.ngk-plan-dialog{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(circle at 10% 13%,rgba(255,255,255,.94) 0 6%,transparent 7%),
    radial-gradient(circle at 91% 16%,rgba(255,255,255,.55) 0 7%,transparent 8%),
    linear-gradient(135deg,#fff1f2 0%,#f5d0fe 34%,#ddd6fe 67%,#cffafe 100%);
  border:1px solid rgba(255,255,255,.78);
  box-shadow:0 18px 45px rgba(109,40,217,.16);
}
.ngk-inline-plan-inner:before,
.ngk-inline-plan-inner:after,
.ngk-plan-dialog:before,
.ngk-plan-dialog:after{
  content:"";
  position:absolute;
  z-index:-1;
  width:150px;
  height:150px;
  border-radius:50%;
  opacity:.25;
  pointer-events:none;
}
.ngk-inline-plan-inner:before,
.ngk-plan-dialog:before{left:-58px;bottom:-78px;background:linear-gradient(135deg,#fb7185,#f59e0b)}
.ngk-inline-plan-inner:after,
.ngk-plan-dialog:after{right:-58px;top:-76px;background:linear-gradient(135deg,#38bdf8,#8b5cf6)}

.ngk-plan-kicker{
  position:relative;
  z-index:1;
  background:rgba(255,255,255,.64);
  border:1px solid rgba(255,255,255,.78);
  color:#6d28d9;
  box-shadow:0 6px 16px rgba(76,29,149,.08);
  letter-spacing:.09em;
  font-weight:900;
}
.ngk-inline-plan h2,
.ngk-plan-dialog h2{
  position:relative;
  z-index:1;
  background:linear-gradient(90deg,#6d28d9,#db2777,#2563eb);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  font-weight:900;
}
.ngk-plan-meta{position:relative;z-index:1}
.ngk-plan-meta strong{
  color:#6d28d9;
  font-weight:950;
  text-shadow:0 3px 12px rgba(109,40,217,.10);
}
.ngk-plan-meta span{color:var(--ngk-muted);border-left-color:rgba(124,58,237,.18);font-weight:700}
.ngk-plan-intro{position:relative;z-index:1;color:#4b5563;font-weight:560}

/* N5–N1 tabs — same five-color logic used by Kanji level cards */
.ngk-level-strip{position:relative;z-index:1}
.ngk-level{
  position:relative;
  overflow:hidden;
  min-height:72px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.48);
  color:#fff;
  box-shadow:0 8px 19px rgba(31,41,55,.13);
  transition:transform .22s ease,box-shadow .22s ease,filter .22s ease,background-position .35s ease;
  background-size:170% 170%;
}
.ngk-level:nth-child(1){background-image:linear-gradient(135deg,#1d4ed8,#06b6d4,#60a5fa)}
.ngk-level:nth-child(2){background-image:linear-gradient(135deg,#047857,#10b981,#84cc16)}
.ngk-level:nth-child(3){background-image:linear-gradient(135deg,#c2410c,#f97316,#fbbf24)}
.ngk-level:nth-child(4){background-image:linear-gradient(135deg,#6d28d9,#a855f7,#ec4899)}
.ngk-level:nth-child(5){background-image:linear-gradient(135deg,#b91c1c,#f43f5e,#f97316)}
.ngk-level span,
.ngk-level small,
.ngk-level.is-active span,
.ngk-level.is-active small{color:#fff}
.ngk-level span{font-weight:950;text-shadow:0 1px 5px rgba(0,0,0,.12)}
.ngk-level small{opacity:.91;font-weight:750}
.ngk-level.is-active{border-color:rgba(255,255,255,.54);box-shadow:0 8px 19px rgba(31,41,55,.13)}
.ngk-level.is-locked{filter:grayscale(.7);opacity:.45}

/* Content tiles — Kanji chapter/tile pastel family */
.ngk-feature-grid{position:relative;z-index:1}
.ngk-feature-item{
  position:relative;
  overflow:hidden;
  background:linear-gradient(145deg,#fff 0%,#faf5ff 52%,#eef2ff 100%);
  border:1px solid #ddd6fe;
  color:var(--ngk-ink);
  border-radius:18px;
  padding:14px 15px;
  box-shadow:0 7px 18px rgba(76,29,149,.08);
  font-weight:700;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background-position .35s ease;
  background-size:170% 170%;
}
.ngk-feature-item:nth-child(4n+2){background-image:linear-gradient(145deg,#fff,#ecfeff,#eff6ff);border-color:#bae6fd}
.ngk-feature-item:nth-child(4n+3){background-image:linear-gradient(145deg,#fff,#ecfdf5,#f0fdf4);border-color:#bbf7d0}
.ngk-feature-item:nth-child(4n+4){background-image:linear-gradient(145deg,#fff,#fff7ed,#fffbeb);border-color:#fed7aa}
.ngk-check{
  background:linear-gradient(135deg,#7c3aed,#ec4899);
  box-shadow:0 5px 12px rgba(124,58,237,.24);
}

/* Best-for callout */
.ngk-best-for{
  position:relative;
  z-index:1;
  overflow:hidden;
  border:1px solid #e9d5ff;
  border-left:4px solid #7c3aed;
  background:linear-gradient(120deg,#fff 0%,#faf5ff 52%,#ecfeff 100%);
  box-shadow:0 8px 22px rgba(76,29,149,.09);
}
.ngk-best-for>span{color:#7c3aed}
.ngk-best-for p{color:#4b5563;font-weight:600}

/* CTA — Kanji premium gradient + light sweep */
.ngk-primary-action{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:54px;
  border-radius:16px;
  background:linear-gradient(120deg,#312e81,#7c3aed,#db2777);
  box-shadow:0 12px 28px rgba(91,33,182,.24);
  font-weight:900;
  transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;
}
.ngk-primary-action:before{
  content:"";
  position:absolute;
  inset:-55%;
  z-index:-1;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.34) 48%,transparent 61%);
  transform:translateX(-60%) rotate(8deg);
  transition:transform .55s ease;
}
.ngk-plan-close{
  background:linear-gradient(135deg,#fff,#f5f3ff);
  color:#5b21b6;
  border:1px solid #ddd6fe;
  box-shadow:0 6px 16px rgba(76,29,149,.10);
}

@media (hover:hover) and (pointer:fine){
  .ngk-inline-plan-inner:hover{box-shadow:0 24px 56px rgba(109,40,217,.20)}
  .ngk-level:hover{transform:translateY(-5px) scale(1.025);box-shadow:0 16px 30px rgba(31,41,55,.20);filter:saturate(1.08);background-position:100% 100%}
  .ngk-feature-item:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(76,29,149,.14);border-color:#c4b5fd;background-position:100% 100%}
  .ngk-primary-action:hover{transform:translateY(-3px);box-shadow:0 17px 34px rgba(91,33,182,.31);filter:saturate(1.08)}
  .ngk-primary-action:hover:before{transform:translateX(58%) rotate(8deg)}
  .ngk-plan-close:hover{transform:rotate(4deg) scale(1.05);box-shadow:0 9px 20px rgba(76,29,149,.16)}
}
.ngk-level:active,.ngk-primary-action:active{transform:scale(.975)}
.ngk-feature-item:active{transform:scale(.985)}

@media(max-width:700px){
  .ngk-inline-plan-inner,.ngk-plan-dialog{border-radius:23px}
  .ngk-level{min-height:64px}
  .ngk-feature-item{border-radius:16px;padding:12px 13px}
  .ngk-primary-action{min-height:52px}
}

@media(prefers-reduced-motion:reduce){
  .ngk-inline-plan *,
  .ngk-plan-modal-root *{transition:none!important;animation:none!important}
}

/* v1.0.6 — cache bust: removed legacy automatic /jlpt-plans/ footer render; visual styles unchanged. */
