/* Partner program pages (/partners/): additions on top of the Client Portal surface (client-portal.css).
   Body carries .gj-portal.gj-partner and data-role="admin", so --app-context* is the platform (blue) accent.
   Light and dark follow data-bs-theme from the shared theme preference in gj-ui.js. */

/* ------------------------------------------------------------ auth pages: apply card and wide form */
.gj-partner__apply-card {
  display: flex; align-items: center; gap: .85rem; margin-top: .9rem; padding: .9rem 1rem; border-radius: 18px; text-decoration: none;
  color: var(--theme-chrome-ink) !important; background: var(--theme-chrome-glass); border: 1px solid var(--theme-chrome-line);
  backdrop-filter: saturate(160%) blur(12px); -webkit-backdrop-filter: saturate(160%) blur(12px);
  transition: transform .16s ease, background-color .16s ease; animation: gj-portal-rise .5s .1s ease both;
}
.gj-partner__apply-card:hover { transform: translateY(-2px); background: var(--theme-chrome-glass-strong); }
.gj-partner__apply-card > i { margin-left: auto; transition: transform .16s ease; }
.gj-partner__apply-card:hover > i { transform: translateX(3px); }
.gj-partner__apply-icon { flex: none; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 14px; font-size: 1.2rem; color: #0b1520; background: linear-gradient(135deg, var(--app-context-glow), var(--app-context-accent2)); }
.gj-partner__apply-text { display: grid; min-width: 0; }
.gj-partner__apply-text strong { color: #fff; }
.gj-partner__apply-text small { color: var(--theme-chrome-muted); }
.gj-partner__auth-footer { position: relative; z-index: 1; color: var(--theme-chrome-muted); }
.gj-partner__auth-footer a, .gj-portal--auth .gj-portal__footer a { color: var(--theme-chrome-ink); }

.gj-portal__auth.gj-partner__apply { max-width: 760px; }
/* Long auth pages scroll past the fixed aurora: keep the deep backdrop behind them. */
.gj-partner.gj-portal--auth { background: var(--app-context-deeper); }
.gj-partner__perks { list-style: none; margin: 0 0 1.2rem; padding: 0; display: grid; gap: .55rem; }
.gj-partner__perks li { display: flex; gap: .7rem; align-items: flex-start; padding: .7rem .8rem; border-radius: 14px; background: var(--p-raised); border: 1px solid var(--p-line); }
.gj-partner__perks i { flex: none; display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 11px; color: var(--tone-ink); background: var(--tone-soft); font-size: 1rem; }
.gj-partner__perks span { display: grid; min-width: 0; }
.gj-partner__perks small { color: var(--p-muted); font-size: .84rem; }

.gj-partner__form { display: grid; gap: 1rem; }
.gj-partner__grid { display: grid; gap: .85rem; }
.gj-partner__label { font-size: .78rem; font-weight: 750; color: var(--p-muted); margin-bottom: .45rem; padding: 0; }
.gj-partner__req { font-style: normal; color: var(--theme-danger); }
.gj-partner__kinds { margin: 0; padding: 0; border: 0; min-width: 0; }
.gj-partner__kind-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.gj-partner__kind { position: relative; display: block; cursor: pointer; }
.gj-partner__kind input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.gj-partner__kind-body {
  display: grid; gap: .15rem; align-content: start; height: 100%; padding: .75rem .8rem; border-radius: 14px; background: var(--p-surface); border: 1px solid var(--p-line);
  box-shadow: var(--p-shadow-1); transition: border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}
.gj-partner__kind-body i { font-size: 1.15rem; color: var(--p-accent-ink); }
.gj-partner__kind-body strong { font-size: .95rem; }
.gj-partner__kind-body small { color: var(--p-muted); font-size: .8rem; line-height: 1.35; }
.gj-partner__kind:hover .gj-partner__kind-body { transform: translateY(-1px); border-color: var(--app-context-border); }
.gj-partner__kind input:checked + .gj-partner__kind-body { border-color: var(--app-context); box-shadow: 0 0 0 3px var(--p-focus), var(--p-shadow-2); background: linear-gradient(180deg, var(--app-context-soft), var(--p-surface)); }
.gj-partner__kind input:focus-visible + .gj-partner__kind-body { outline: 3px solid var(--p-focus); outline-offset: 2px; }
.gj-partner .gj-portal__field textarea {
  width: 100%; min-height: 6.5rem; padding: .65rem .8rem; border-radius: 12px; border: 1px solid var(--p-line); background: var(--p-surface);
  color: var(--p-ink); font: inherit; resize: vertical;
}
.gj-partner .gj-portal__field textarea:focus { outline: none; border-color: var(--app-context); box-shadow: 0 0 0 3px var(--p-focus); }
.gj-partner .gj-portal__field textarea[aria-invalid="true"], .gj-partner .gj-portal__field select[aria-invalid="true"] { border-color: var(--theme-danger); }
.gj-partner .gj-portal__field .gj-portal__field-error { margin: 0; }
.gj-partner__fine { display: flex; gap: .5rem; margin: 0; font-size: .84rem; color: var(--p-muted); }
.gj-partner__fine i { color: var(--p-accent-ink); }
/* Bot trap: off-screen for people and hidden from assistive technology. */
.gj-partner__honeypot { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.gj-partner__celebrate { animation: gj-partner-pop .6s cubic-bezier(.2,.9,.3,1.4) both; }

/* ------------------------------------------------------------ portal */
.gj-partner__kind-chip { display: inline-flex; align-items: center; gap: .35rem; }
.gj-partner .gj-portal__mini-list li > span:first-child { display: grid; min-width: 0; }
.gj-partner__more { display: inline-flex; align-items: center; gap: .35rem; margin-top: .7rem; font-weight: 700; text-decoration: none; }
.gj-partner__more i { transition: transform .16s ease; }
.gj-partner__more:hover i { transform: translateX(3px); }
.gj-partner__terms { margin-top: 1rem; }
.gj-partner__actions { display: flex; flex-wrap: wrap; gap: .5rem; }

.gj-partner__codes { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.gj-partner__code {
  position: relative; padding: .85rem .9rem; border-radius: 14px; background: var(--p-raised); border: 1px solid var(--p-line); overflow: hidden;
  animation: gj-portal-rise .4s ease both;
}
.gj-partner__code::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--tone); }
.gj-partner__code-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.gj-partner__code-text { font: 800 1.15rem/1.2 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .06em; overflow-wrap: anywhere; }
.gj-partner__share { display: flex; gap: .45rem; margin-top: .6rem; }
.gj-partner__share input {
  flex: 1; min-width: 0; min-height: 2.15rem; padding: 0 .65rem; border-radius: 10px; border: 1px solid var(--p-line); background: var(--p-surface);
  color: var(--p-muted); font: 500 .82rem/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.gj-partner__share .gj-portal__btn.is-copied { color: var(--theme-success, #059669) !important; border-color: currentColor; }

.gj-partner__timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.gj-partner__timeline li { display: grid; gap: .1rem; padding: .7rem .8rem .7rem 1rem; border-radius: 12px; background: var(--p-raised); border: 1px solid var(--p-line); border-left: 3px solid var(--tone); }
.gj-partner__timeline strong { font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.gj-partner__timeline span, .gj-partner__timeline small { color: var(--p-muted); font-size: .84rem; overflow-wrap: anywhere; }
.gj-partner .gj-portal__table .num { text-align: end; font-variant-numeric: tabular-nums; }

.gj-partner__alert { display: flex; gap: .6rem; align-items: flex-start; margin: 0 0 1rem; padding: .8rem 1rem; border-radius: 14px; color: #9f1239; background: #ffe4e6; border: 1px solid #fecdd3; }
.gj-partner__alert span { display: grid; gap: .1rem; }
[data-bs-theme="dark"] .gj-partner__alert { color: #fda4af; background: rgb(251 113 133 / .12); border-color: rgb(251 113 133 / .3); }

@keyframes gj-partner-pop { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: none; } }

@media (max-width: 639.98px) {
  .gj-partner__nav--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gj-partner__share { flex-direction: column; }
}
@media (min-width: 640px) {
  .gj-partner__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gj-partner__perks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gj-partner__perks li { flex-direction: column; }
  .gj-partner__kind-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.gj-partner .gj-portal__hero-actions { margin-top: .9rem; }
