/* NZWL Codes — dark studio lock (match calendar / page-head) */
.nzwl-codes{
  --codes-gold: #f0c75e;
  --codes-gold-2: #c9a227;
  --codes-danger: #e85d6a;
  --codes-ok: #3dba7a;
  --codes-warn: #e0a84a;
  --codes-ink: #fff6e8;
  --codes-mute: rgba(255,246,232,.62);
  --codes-faint: rgba(255,246,232,.42);
  --codes-panel: rgba(20,16,12,.72);
  --codes-panel-2: rgba(12,10,8,.55);
  --codes-line: rgba(212,168,83,.32);
  --codes-line-soft: rgba(212,168,83,.2);
  max-width: 980px;
  margin: 0 auto;
  padding: 4px 0 40px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  color: var(--codes-ink);
}
.nzwl-codes-kicker{
  display:inline-block;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  color: rgba(255,244,220,.72);
  text-transform:uppercase;
}
.nzwl-codes-h2{
  margin:.25rem 0 0;
  font-size:1.28rem;
  font-weight:750;
  color: #fff8e7;
  letter-spacing:.01em;
  text-shadow: 0 1px 8px rgba(0,0,0,.25);
  background: none !important;
}
.nzwl-codes-h3{
  margin:16px 0 10px;
  font-size:1rem;
  font-weight:650;
  color: rgba(255,248,231,.88);
  background: none !important;
}
.nzwl-codes-sec-head{margin-bottom:12px}
.nzwl-codes-muted{color:var(--codes-mute);font-size:.9rem}

/* kill light glass from theme on this page */
.nzwl-codes .nzwl-glass,
.nzwl-codes-howto,
.nzwl-codes-card,
.nzwl-codes-past-details,
.nzwl-codes-empty{
  background: var(--codes-panel) !important;
  background-image: none !important;
  border: 1px solid var(--codes-line) !important;
  box-shadow: none !important;
  color: var(--codes-ink) !important;
  border-radius: 18px;
  position: relative;
  isolation: auto;
  overflow: visible;
}
.nzwl-codes .nzwl-glass::before,
.nzwl-codes .nzwl-glass::after,
.nzwl-codes-howto::before,
.nzwl-codes-howto::after,
.nzwl-codes-card::before,
.nzwl-codes-card::after,
.nzwl-codes-past-details::before,
.nzwl-codes-past-details::after{
  display:none !important;
  content:none !important;
  background:none !important;
}
.nzwl-codes .nzwl-glass > *,
.nzwl-codes-card > *{
  position: relative;
  z-index: 1;
}

/* howto */
.nzwl-codes-howto{ padding: 18px 18px 16px; }
.nzwl-codes-howto__head{ margin-bottom: 14px; }
.nzwl-codes-howto__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.nzwl-codes-howto-card{
  background: var(--codes-panel-2) !important;
  border: 1px solid var(--codes-line-soft) !important;
  border-radius: 14px;
  padding: 14px 14px 12px;
}
.nzwl-codes-howto-card__title{
  font-weight:700;
  font-size:.92rem;
  margin-bottom:10px;
  color: #ffe9a8;
}
.nzwl-codes-howto-steps{
  margin:0;
  padding-left:1.1rem;
  color: var(--codes-mute);
  font-size:.88rem;
  line-height:1.7;
}
.nzwl-codes-path{
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px 6px;
}
.nzwl-codes-path-step{
  display:inline-block;
  padding:3px 9px;
  border-radius:999px;
  background: rgba(12,10,8,.55);
  border: 1px solid rgba(212,168,83,.28);
  font-size:.8rem;
  font-weight:600;
  color: #fff6e8;
}
.nzwl-codes-path-sep{ opacity:.5; font-size:.78rem; color: var(--codes-gold); }
.nzwl-codes-official{
  margin:14px 0 0;
  font-size:.86rem;
  color: var(--codes-mute);
}
.nzwl-codes-official a{
  color: var(--codes-gold);
  font-weight:650;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.nzwl-codes-official a:hover{ color:#ffe9a8; }

/* card */
.nzwl-codes-card{
  display:grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(160px, 220px);
  gap: 16px;
  padding: 16px;
  margin-bottom: 12px;
  align-items: start;
}
.nzwl-codes-card.is-featured{
  border-color: rgba(240,199,94,.45) !important;
}
.nzwl-codes-card.is-expired{ opacity: .9; }
.nzwl-codes-card__main{
  display:flex;
  flex-direction:column;
  gap:11px;
  min-width:0;
}
.nzwl-codes-card__meta{display:flex;flex-direction:column;gap:6px}
.nzwl-codes-card__title{
  margin:0;
  font-size:1.12rem;
  font-weight:750;
  letter-spacing:.01em;
  line-height:1.35;
  color:#fff8e7;
  background:none !important;
}
.nzwl-codes-badge{
  display:inline-flex;
  align-self:flex-start;
  padding:3px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.04em;
  border: 1px solid transparent;
}
.nzwl-codes-badge--live{
  background: rgba(61,186,122,.14);
  border-color: rgba(61,186,122,.35);
  color: #7dffb5;
}
.nzwl-codes-badge--expired{
  background: rgba(232,93,106,.12);
  border-color: rgba(232,93,106,.35);
  color: #ff8a95;
}
.nzwl-codes-badge--pending{
  background: rgba(224,168,74,.12);
  border-color: rgba(224,168,74,.35);
  color: #ffd78a;
}
.nzwl-codes-expired-tip{
  padding:10px 12px;
  border-radius:12px;
  background: rgba(232,93,106,.1);
  border: 1px solid rgba(232,93,106,.3);
  color: #ff8a95;
  font-size:.86rem;
  font-weight:600;
  line-height:1.45;
}

.nzwl-codes-codebox{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  padding:11px 12px;
  border-radius:14px;
  background: rgba(12,10,8,.55) !important;
  border: 1px solid rgba(212,168,83,.28);
}
.nzwl-codes-codebox.is-expired{
  background: rgba(232,93,106,.08) !important;
  border-color: rgba(232,93,106,.28);
}
.nzwl-codes-code{
  flex:1;
  min-width:0;
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  font-size: clamp(.9rem, 2.2vw, 1.05rem);
  font-weight:700;
  letter-spacing:.05em;
  word-break:break-all;
  color: #ffe9a8;
  user-select: all;
  cursor: text;
  background: none !important;
}
.nzwl-codes-codebox.is-expired .nzwl-codes-code{
  color: #ff8a95;
  text-decoration: line-through;
  text-decoration-thickness: 2px;
}
.nzwl-codes-copy{
  appearance:none;
  border:0;
  cursor:pointer;
  padding:9px 14px;
  border-radius:999px;
  font-weight:700;
  font-size:.84rem;
  font-family:inherit;
  color: #12100d;
  background: linear-gradient(135deg, #f0c75e, #c9a227);
  transition: transform .15s ease, filter .15s ease, opacity .15s;
  white-space:nowrap;
}
.nzwl-codes-copy:hover:not(:disabled){
  filter: brightness(1.06);
  transform: translateY(-1px);
}
.nzwl-codes-copy:disabled{
  cursor:not-allowed;
  opacity:.5;
  background: #5a5550;
  color: rgba(255,246,232,.7);
}
.nzwl-codes-copy.is-copied{
  background: linear-gradient(135deg, #5ad68f, #2f9d5f);
  color: #0b1a12;
}

.nzwl-codes-time{
  display:grid;
  gap:5px;
  font-size:.86rem;
  color: var(--codes-mute);
}
.nzwl-codes-time-row{display:flex;gap:10px;align-items:baseline}
.nzwl-codes-time-lab{
  flex:0 0 2.5em;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  color: var(--codes-faint);
  text-transform:uppercase;
}
.is-expired-text{color:#ff8a95;font-weight:650}
.nzwl-codes-rewards,
.nzwl-codes-note{
  margin:0;
  font-size:.86rem;
  color: var(--codes-mute);
  line-height:1.55;
}
.nzwl-codes-rewards .nzwl-codes-time-lab{margin-right:8px}

/* smaller image */
.nzwl-codes-card__media{
  min-width:0;
  max-width: 220px;
  justify-self: end;
}
.nzwl-codes-figure{
  margin:0;
  width: 100%;
  max-width: 200px;
  border-radius: 12px;
  overflow:hidden;
  background: rgba(12,10,8,.55);
  border: 1px solid rgba(212,168,83,.25);
  display:flex;
  align-items:center;
  justify-content:center;
  aspect-ratio: 3 / 4;
}
.nzwl-codes-figure img{
  display:block;
  width:100%;
  height:100%;
  object-fit: cover;
  object-position: center top;
}
.nzwl-codes-figure--empty{
  color: var(--codes-faint);
  font-size:.8rem;
  min-height: 120px;
  aspect-ratio: auto;
}

/* past */
.nzwl-codes-past-details{ padding: 2px 0; }
.nzwl-codes-past-summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
  padding:14px 16px;
  user-select:none;
  color: var(--codes-ink);
}
.nzwl-codes-past-summary::-webkit-details-marker{display:none}
.nzwl-codes-past-title{
  font-weight:700;
  font-size:1.05rem;
  flex:1;
  color: #fff8e7;
  background:none !important;
}
.nzwl-codes-past-count{
  font-size:.8rem;
  color: var(--codes-mute);
  font-weight:600;
}
.nzwl-codes-past-caret{
  width:10px;height:10px;
  border-right:2px solid var(--codes-gold);
  border-bottom:2px solid var(--codes-gold);
  transform: rotate(45deg);
  opacity:.7;
  transition: transform .2s ease;
}
details[open] .nzwl-codes-past-caret{
  transform: rotate(-135deg);
  margin-top:6px;
}
.nzwl-codes-past-body{
  padding: 0 14px 16px;
  border-top: 1px solid rgba(212,168,83,.18);
}
.nzwl-codes-month{margin-top:14px}
.nzwl-codes-month-label{
  margin:0 0 8px;
  font-size:.88rem;
  font-weight:700;
  color: var(--codes-gold);
  letter-spacing:.04em;
  background:none !important;
}
.nzwl-codes-empty{
  padding:26px 20px;
  text-align:center;
  color: var(--codes-mute);
}

/* page title area shouldn't get white text-bg from plugins */
.nzwl-page-duihuanma .nzwl-page-content h2,
.nzwl-page-duihuanma .nzwl-page-content h3{
  background: transparent !important;
  box-shadow: none !important;
  -webkit-text-fill-color: unset;
}

@media (max-width: 820px){
  .nzwl-codes-howto__grid{grid-template-columns:1fr}
  .nzwl-codes-card{
    grid-template-columns:1fr;
  }
  .nzwl-codes-card__media{
    max-width: 160px;
    justify-self: start;
  }
  .nzwl-codes-figure{
    max-width: 140px;
    aspect-ratio: 3/4;
  }
}
