/* Nuastro Birth Chart — scoped styles
   All rules live under .nuastro-bc-wrap to avoid conflicts with WordPress themes.
   CSS custom properties are defined on the wrapper, not :root. */

.nuastro-bc-wrap {
  --nu-ink:      #111110;
  --nu-ink-mid:  #444442;
  --nu-ink-soft: #888886;
  --nu-bg:       #FFFFFF;
  --nu-bg-soft:  #F8F8F6;
  --nu-border:   #E0E0DC;
  font-family: 'Jost', sans-serif;
  font-weight: 300;
  background: var(--nu-bg);
  color: var(--nu-ink);
}

.nuastro-bc-wrap *,
.nuastro-bc-wrap *::before,
.nuastro-bc-wrap *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* Reset form elements so WP themes can't override them */
.nuastro-bc-wrap input,
.nuastro-bc-wrap select,
.nuastro-bc-wrap button {
  font-family: 'Jost', sans-serif;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
}

/* ── Layout ─────────────────────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-page {
  max-width: 1080px;
  margin: 0 auto;
  padding: 40px 28px 72px;
}

/* ── Brand ──────────────────────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-brand {
  text-align: center;
  margin-bottom: 40px;
  padding-bottom: 32px;
  border-bottom: .5px solid var(--nu-border);
}
.nuastro-bc-wrap .nu-brand-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px;
  font-weight: 400;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--nu-ink);
  margin-bottom: 6px;
}
.nuastro-bc-wrap .nu-brand-sub {
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
}

/* ── Form ───────────────────────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-form-wrap {
  max-width: 760px;
  margin: 0 auto 52px;
}
.nuastro-bc-wrap .nu-form-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 30px;
  font-weight: 400;
  letter-spacing: .02em;
  margin-bottom: 26px;
  color: var(--nu-ink);
}
.nuastro-bc-wrap .nu-fg3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px 22px;
  margin-bottom: 22px;
}
.nuastro-bc-wrap .nu-fg {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.nuastro-bc-wrap label {
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
  font-weight: 400;
}
.nuastro-bc-wrap input:not([type="hidden"]),
.nuastro-bc-wrap select {
  background: var(--nu-bg-soft);
  border: .5px solid var(--nu-border);
  padding: 11px 14px;
  font-family: 'Jost', sans-serif;
  font-size: 15px;
  font-weight: 400;
  color: var(--nu-ink);
  outline: none;
  transition: border-color .15s;
  width: 100%;
  box-shadow: none;
}
.nuastro-bc-wrap input:focus,
.nuastro-bc-wrap select:focus {
  border-color: var(--nu-ink);
  box-shadow: none;
  outline: none;
}
.nuastro-bc-wrap .nu-hint {
  font-size: 10px;
  color: var(--nu-ink-soft);
  margin-top: 2px;
}
.nuastro-bc-wrap .nu-geo {
  font-size: 10px;
  margin-top: 3px;
  min-height: 14px;
}
.nuastro-bc-wrap .nu-geo.ok  { color: #4A7A4A; }
.nuastro-bc-wrap .nu-geo.err { color: #A03030; }

.nuastro-bc-wrap .nu-btn {
  width: 100%;
  background: var(--nu-ink);
  color: var(--nu-bg);
  border: none;
  padding: 15px;
  font-family: 'Jost', sans-serif;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .3em;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity .15s;
  display: block;
}
.nuastro-bc-wrap .nu-btn:hover    { opacity: .7; }
.nuastro-bc-wrap .nu-btn:disabled { opacity: .35; cursor: not-allowed; }

/* Two-button row (guest layout) */
.nuastro-bc-wrap .nu-btn-row {
  display: grid;
  gap: 12px;
  margin-bottom: 4px;
}
.nuastro-bc-wrap .nu-btn-row-two {
  grid-template-columns: 1fr 1fr;
}
/* Ghost variant: white background with border */
.nuastro-bc-wrap .nu-btn-ghost {
  background: var(--nu-bg);
  color: var(--nu-ink);
  border: .5px solid var(--nu-ink);
}
.nuastro-bc-wrap .nu-btn-ghost:hover { opacity: .6; }
/* Full-width single button */
.nuastro-bc-wrap .nu-btn-full {
  width: 100%;
}

/* ── Action bar above the chart wheel ───────────────────────────────────────── */
.nuastro-bc-wrap .nu-chart-action {
  margin-bottom: 28px;
  text-align: center;
}
.nuastro-bc-wrap .nu-action-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
.nuastro-bc-wrap .nu-action-btn {
  background: none;
  border: .5px solid var(--nu-ink);
  color: var(--nu-ink);
  padding: 10px 22px;
  font-family: 'Jost', sans-serif;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .28em;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity .15s;
  white-space: nowrap;
  flex-shrink: 0;
}
.nuastro-bc-wrap .nu-action-btn:hover { opacity: .6; }
/* Filled variant for "Save My Chart" */
.nuastro-bc-wrap .nu-action-btn:not(.nu-action-btn-ghost) {
  background: var(--nu-ink);
  color: var(--nu-bg);
}
.nuastro-bc-wrap .nu-action-hint {
  font-size: 10px;
  letter-spacing: .1em;
  color: var(--nu-ink-soft);
  text-transform: uppercase;
}

@media (max-width: 480px) {
  .nuastro-bc-wrap .nu-btn-row-two { grid-template-columns: 1fr; }
  .nuastro-bc-wrap .nu-action-bar  { flex-direction: column; align-items: center; gap: 10px; }
}

.nuastro-bc-wrap .nu-loading {
  display: none;
  text-align: center;
  padding: 14px;
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
}

/* ── Results ────────────────────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-results     { display: none; }
.nuastro-bc-wrap .nu-results.on  { display: block; }

.nuastro-bc-wrap .nu-ch          { text-align: center; margin-bottom: 28px; }
.nuastro-bc-wrap .nu-ch h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 48px;
  font-weight: 300;
  letter-spacing: .08em;
  line-height: 1.1;
}
.nuastro-bc-wrap .nu-sub {
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
  margin-top: 6px;
}
.nuastro-bc-wrap .nu-axes {
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--nu-ink-mid);
  margin-top: 10px;
  font-weight: 400;
}
.nuastro-bc-wrap .nu-chart-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 48px;
}
.nuastro-bc-wrap .nu-chart-svg {
  width: 100%;
  max-width: 680px;
}

/* ── Top row: wheel (left) + chart snapshot (right) ─────────────────────────── */
.nuastro-bc-wrap .nu-top-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0 40px;
  align-items: start;
  margin-bottom: 48px;
}
.nuastro-bc-wrap .nu-top-grid .nu-chart-wrap {
  margin-bottom: 0;
  align-items: flex-start;
}
.nuastro-bc-wrap .nu-top-snapshot {
  display: flex;
  flex-direction: column;
}
.nuastro-bc-wrap .nu-snap-head {
  margin-bottom: 22px;
}
.nuastro-bc-wrap .nu-snap-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 38px;
  font-weight: 300;
  letter-spacing: .06em;
  line-height: 1.1;
  color: var(--nu-ink);
}
.nuastro-bc-wrap .nu-snap-date {
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
  margin-top: 8px;
}
/* In the snapshot column the section title sits flush above the panel */
.nuastro-bc-wrap .nu-top-snapshot .nu-sec {
  margin-bottom: 14px;
}

.nuastro-bc-wrap .nu-sec {
  font-family: 'Cormorant Garamond', serif;
  font-size: 24px;
  font-weight: 400;
  letter-spacing: .03em;
  color: var(--nu-ink);
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.nuastro-bc-wrap .nu-sec::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--nu-border);
}
.nuastro-bc-wrap .nu-tw {
  overflow-x: auto;
  border: .5px solid var(--nu-border);
  margin-bottom: 44px;
}

/* ── Table ──────────────────────────────────────────────────────────────────── */
.nuastro-bc-wrap table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  background: var(--nu-bg);
}
.nuastro-bc-wrap thead tr { background: var(--nu-ink); }
.nuastro-bc-wrap thead th {
  padding: 11px 14px;
  font-size: 9px;
  letter-spacing: .2em;
  text-transform: uppercase;
  font-weight: 400;
  text-align: left;
  color: rgba(255,255,255,.6);
  border: none;
}
.nuastro-bc-wrap thead th.nu-th-nu { color: rgba(255,255,255,.95); }
.nuastro-bc-wrap tbody tr          { border-bottom: .5px solid var(--nu-border); }
.nuastro-bc-wrap tbody tr:last-child { border-bottom: none; }
.nuastro-bc-wrap tbody tr:hover    { background: var(--nu-bg-soft); }
.nuastro-bc-wrap td {
  padding: 11px 14px;
  vertical-align: middle;
  border: none;
}

.nuastro-bc-wrap .nu-td-p {
  display: flex;
  align-items: center;
  gap: 7px;
  font-family: 'Cormorant Garamond', serif;
  font-size: 15px;
  font-weight: 400;
}
.nuastro-bc-wrap .nu-pg {
  font-size: 16px;
  color: var(--nu-ink-mid);
  width: 22px;
  text-align: center;
  font-family: 'Apple Symbols', 'Segoe UI Symbol', 'Arial Unicode MS', sans-serif;
}
.nuastro-bc-wrap .nu-sn  { color: var(--nu-ink); font-size: 14px; }
.nuastro-bc-wrap .nu-dg  { color: var(--nu-ink-soft); font-size: 12px; margin-left: 2px; }
.nuastro-bc-wrap .nu-rx  { color: #A03030; font-size: 10px; margin-left: 3px; }
.nuastro-bc-wrap .nu-hn  { font-size: 12px; color: var(--nu-ink-soft); }

.nuastro-bc-wrap .nu-tr-ang           { background: var(--nu-bg-soft) !important; }
.nuastro-bc-wrap .nu-tr-ang .nu-td-p  {
  font-size: 12px;
  letter-spacing: .05em;
  font-family: 'Jost', sans-serif;
  color: var(--nu-ink-mid);
  font-weight: 400;
}
.nuastro-bc-wrap .nu-oph-italic { font-style: italic; }

/* ── Responsive ─────────────────────────────────────────────────────────────── */

/* ── 680 px — tablet / large phone ────── */
@media (max-width: 680px) {
  .nuastro-bc-wrap .nu-page { padding: 24px 16px 56px; }
  .nuastro-bc-wrap .nu-fg3  { grid-template-columns: 1fr 1fr; }

  .nuastro-bc-wrap .nu-brand-name { font-size: 18px; }
  .nuastro-bc-wrap .nu-ch h2      { font-size: 36px; }

  /* Axes: allow wrapping so the long string doesn't overflow */
  .nuastro-bc-wrap .nu-axes {
    font-size: 11px;
    word-break: break-word;
    line-height: 1.7;
  }
}

/* ── 480 px — phone ────────────────────── */
@media (max-width: 480px) {
  .nuastro-bc-wrap .nu-fg3 { grid-template-columns: 1fr; }

  /* Bigger touch targets for inputs / buttons — 16px prevents iOS auto-zoom */
  .nuastro-bc-wrap input:not([type="hidden"]),
  .nuastro-bc-wrap select {
    padding: 12px 14px;
    font-size: 16px;
  }
  .nuastro-bc-wrap .nu-btn { padding: 16px; font-size: 10px; }

  /* Brand */
  .nuastro-bc-wrap .nu-brand-name { font-size: 16px; letter-spacing: .22em; }
  .nuastro-bc-wrap .nu-brand-sub  { font-size: 9px; }

  /* Results header */
  .nuastro-bc-wrap .nu-ch h2 { font-size: 28px; }
  .nuastro-bc-wrap .nu-axes  { font-size: 10px; }

  /* Table cells */
  .nuastro-bc-wrap thead th,
  .nuastro-bc-wrap td { padding: 9px 11px; }
  .nuastro-bc-wrap .nu-sn { font-size: 13px; }
}

/* ── Mobile table: comparison table scrolls horizontally on small screens ──── */
@media (max-width: 680px) {
  .nuastro-bc-wrap .nu-tw { -webkit-overflow-scrolling: touch; }
}

/* ── Section note (e.g. "within 4°") ────────────────────────────────────────── */
.nuastro-bc-wrap .nu-sec-note {
  font-family: 'Jost', sans-serif;
  font-size: 10px;
  letter-spacing: .16em;
  opacity: .5;
  text-transform: uppercase;
  font-weight: 400;
}

/* ── Comparison table: secondary columns at reduced opacity ─────────────────── */
.nuastro-bc-wrap .nu-cmp { opacity: 0.55; }

/* ── House table ─────────────────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-house-num {
  width: 40px;
  font-size: 10px;
  letter-spacing: .12em;
  color: var(--nu-ink-soft);
  text-transform: uppercase;
  vertical-align: top;
  padding-top: 12px;
  white-space: nowrap;
}
.nuastro-bc-wrap .nu-house-planets {
  font-size: 13px;
  line-height: 2;
  padding: 8px 14px;
  color: var(--nu-ink);
}
.nuastro-bc-wrap .nu-house-sep {
  color: var(--nu-border);
  font-size: 11px;
}

/* ── Aspect table ────────────────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-asp-planet { font-size: 13px; }
.nuastro-bc-wrap .nu-asp-sym {
  text-align: center;
  font-size: 16px;
  color: var(--nu-ink-mid);
  font-family: 'Cormorant Garamond', serif;
  letter-spacing: 0;
}
.nuastro-bc-wrap .nu-asp-orb { color: var(--nu-ink-soft); font-size: 12px; }
.nuastro-bc-wrap .nu-asp-empty {
  text-align: center;
  color: var(--nu-ink-soft);
  font-size: 12px;
  padding: 20px;
  letter-spacing: .1em;
}

/* ── Bottom grid: Houses + Chart Snapshot ────────────────────────────────────── */
.nuastro-bc-wrap .nu-bottom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 36px;
  align-items: start;
  margin-bottom: 44px;
}
/* Remove bottom margin from nu-tw inside the grid so the grid controls spacing */
.nuastro-bc-wrap .nu-tw.nu-tw-flush {
  margin-bottom: 0;
}

/* ── House ruler column ───────────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-house-ruler {
  padding: 8px 10px 8px 14px;
  vertical-align: top;
  padding-top: 10px;
  white-space: nowrap;
}
.nuastro-bc-wrap .nu-house-ruler-sign {
  font-family: 'Cormorant Garamond', serif;
  font-size: 14px;
  font-weight: 400;
  color: var(--nu-ink-mid);
}

/* ── Chart Snapshot info panel ───────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-info-panel {
  border: .5px solid var(--nu-border);
  background: var(--nu-bg);
}
.nuastro-bc-wrap .nu-info-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  padding: 10px 16px;
  border-bottom: .5px solid var(--nu-border);
}
.nuastro-bc-wrap .nu-info-row:last-child {
  border-bottom: none;
}
.nuastro-bc-wrap .nu-info-lbl {
  font-size: 9px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
  white-space: nowrap;
  flex-shrink: 0;
}
.nuastro-bc-wrap .nu-info-val {
  font-family: 'Cormorant Garamond', serif;
  font-size: 14px;
  font-weight: 400;
  color: var(--nu-ink);
  text-align: right;
}
.nuastro-bc-wrap .nu-info-divider {
  height: .5px;
  background: var(--nu-ink);
  opacity: .12;
  margin: 2px 0;
}

/* ── Dignity colours ─────────────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-dignity-domicile  { color: #4A7A4A; }
.nuastro-bc-wrap .nu-dignity-exalted   { color: #4A6A9A; }
.nuastro-bc-wrap .nu-dignity-detriment { color: #A06030; }
.nuastro-bc-wrap .nu-dignity-fall      { color: #A03030; }

/* ── Ascendant Snapshot panel ────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-asc-panel {
  border: .5px solid var(--nu-border);
  background: var(--nu-bg);
}
.nuastro-bc-wrap .nu-asc-head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  padding: 16px 22px 12px;
  border-bottom: .5px solid var(--nu-border);
  background: var(--nu-bg-soft);
}
.nuastro-bc-wrap .nu-asc-sign {
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px;
  font-weight: 400;
  color: var(--nu-ink);
  letter-spacing: .03em;
}
.nuastro-bc-wrap .nu-asc-deg {
  font-size: 13px;
  color: var(--nu-ink-soft);
}
.nuastro-bc-wrap .nu-asc-ruler {
  margin-left: auto;
  font-size: 9px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
  white-space: nowrap;
}
.nuastro-bc-wrap .nu-asc-body {
  padding: 20px 22px;
}
.nuastro-bc-wrap .nu-asc-text {
  font-family: 'Cormorant Garamond', serif;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.78;
  color: var(--nu-ink);
}
.nuastro-bc-wrap .nu-asc-pending {
  color: var(--nu-ink-soft);
  font-style: italic;
}

/* ── Responsive: stack grids on mobile ───────────────────────────────────────── */
@media (max-width: 680px) {
  .nuastro-bc-wrap .nu-top-grid {
    grid-template-columns: 1fr;
    gap: 32px 0;
  }
  .nuastro-bc-wrap .nu-top-grid .nu-chart-wrap {
    justify-content: center;
  }
  .nuastro-bc-wrap .nu-snap-name { font-size: 32px; }
  .nuastro-bc-wrap .nu-bottom-grid {
    grid-template-columns: 1fr;
    gap: 32px 0;
  }
  .nuastro-bc-wrap .nu-tw.nu-tw-flush {
    margin-bottom: 0;
  }
  .nuastro-bc-wrap .nu-sec { font-size: 20px; }
}

/* ── House selector tabs ─────────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-house-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border-bottom: 1px solid var(--nu-border);
}
.nuastro-bc-wrap .nu-htab {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  padding: 9px 13px;
  font-family: 'Jost', sans-serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .12em;
  color: var(--nu-ink-soft);
  cursor: pointer;
  transition: color .15s, border-color .15s;
  margin-bottom: -1px;
  white-space: nowrap;
}
.nuastro-bc-wrap .nu-htab:hover { color: var(--nu-ink); }
.nuastro-bc-wrap .nu-htab.nu-htab-active {
  color: var(--nu-ink);
  font-weight: 500;
  border-bottom-color: var(--nu-ink);
}

/* ── House panel ─────────────────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-house-panel {
  border: .5px solid var(--nu-border);
  border-top: none;
  background: var(--nu-bg);
  margin-bottom: 48px;
}
.nuastro-bc-wrap .nu-house-panel-header {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  padding: 16px 24px 12px;
  border-bottom: .5px solid var(--nu-border);
  background: var(--nu-bg-soft);
}
.nuastro-bc-wrap .nu-house-hdr-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 20px;
  font-weight: 400;
  color: var(--nu-ink-soft);
  letter-spacing: .08em;
  min-width: 30px;
}
.nuastro-bc-wrap .nu-house-hdr-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: .02em;
  color: var(--nu-ink);
  flex: 1;
}
.nuastro-bc-wrap .nu-house-hdr-cusp {
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
}
.nuastro-bc-wrap .nu-house-panel-body {
  padding: 22px 24px 18px;
}
.nuastro-bc-wrap .nu-house-intro {
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
  margin-bottom: 16px;
  line-height: 1.7;
}
.nuastro-bc-wrap .nu-house-sign-text {
  font-family: 'Cormorant Garamond', serif;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.78;
  color: var(--nu-ink);
}
.nuastro-bc-wrap .nu-house-pending {
  color: var(--nu-ink-soft);
  font-style: italic;
}
.nuastro-bc-wrap .nu-house-panel-foot {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 12px 24px;
  border-top: .5px solid var(--nu-border);
  background: var(--nu-bg-soft);
  font-size: 13px;
  color: var(--nu-ink-mid);
}
.nuastro-bc-wrap .nu-house-contains-lbl {
  font-size: 9px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
  margin-right: 6px;
  white-space: nowrap;
}
.nuastro-bc-wrap .nu-house-empty {
  color: var(--nu-ink-soft);
  font-style: italic;
  font-size: 12px;
}

@media (max-width: 680px) {
  .nuastro-bc-wrap .nu-house-panel-header { padding: 14px 16px 10px; }
  .nuastro-bc-wrap .nu-house-panel-body   { padding: 18px 16px 14px; }
  .nuastro-bc-wrap .nu-house-panel-foot   { padding: 10px 16px; }
  .nuastro-bc-wrap .nu-house-sign-text    { font-size: 16px; }
  .nuastro-bc-wrap .nu-htab              { padding: 8px 10px; font-size: 10px; }
}

/* ── Profile page ────────────────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-profile-section {
  margin-bottom: 52px;
}
.nuastro-bc-wrap .nu-profile-fields {
  border: .5px solid var(--nu-border);
  background: var(--nu-bg);
  margin-bottom: 20px;
}
.nuastro-bc-wrap .nu-profile-field {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 13px 20px;
  border-bottom: .5px solid var(--nu-border);
}
.nuastro-bc-wrap .nu-profile-field:last-child {
  border-bottom: none;
}
.nuastro-bc-wrap .nu-profile-field-label {
  font-size: 9px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
  white-space: nowrap;
  flex-shrink: 0;
}
.nuastro-bc-wrap .nu-profile-field-value {
  font-family: 'Cormorant Garamond', serif;
  font-size: 16px;
  font-weight: 400;
  color: var(--nu-ink);
  text-align: right;
}
.nuastro-bc-wrap .nu-profile-actions {
  margin-top: 16px;
}
.nuastro-bc-wrap .nu-profile-chart-link {
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--nu-ink);
  text-decoration: none;
  border-bottom: .5px solid var(--nu-ink);
  padding-bottom: 1px;
  transition: opacity .15s;
}
.nuastro-bc-wrap .nu-profile-chart-link:hover { opacity: .5; }
.nuastro-bc-wrap .nu-profile-empty {
  font-size: 14px;
  color: var(--nu-ink-soft);
  font-family: 'Cormorant Garamond', serif;
}
.nuastro-bc-wrap .nu-profile-empty a {
  color: var(--nu-ink);
}
.nuastro-bc-wrap .nu-profile-login {
  font-size: 14px;
  color: var(--nu-ink-soft);
}

/* ── Profile comments ────────────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-profile-comments {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: .5px solid var(--nu-border);
}
.nuastro-bc-wrap .nu-profile-comment {
  padding: 20px 24px;
  border-bottom: .5px solid var(--nu-border);
}
.nuastro-bc-wrap .nu-profile-comment:last-child {
  border-bottom: none;
}
.nuastro-bc-wrap .nu-profile-comment-meta {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.nuastro-bc-wrap .nu-profile-comment-post {
  font-family: 'Cormorant Garamond', serif;
  font-size: 16px;
  font-weight: 400;
  color: var(--nu-ink);
  text-decoration: none;
}
.nuastro-bc-wrap .nu-profile-comment-post:hover { opacity: .6; }
.nuastro-bc-wrap .nu-profile-comment-date {
  font-size: 9px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
  white-space: nowrap;
}
.nuastro-bc-wrap .nu-profile-comment-body {
  font-size: 14px;
  line-height: 1.65;
  color: var(--nu-ink-mid);
  margin-bottom: 10px;
}
.nuastro-bc-wrap .nu-profile-comment-body p { margin: 0; }
.nuastro-bc-wrap .nu-profile-comment-link {
  font-size: 9px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
  text-decoration: none;
}
.nuastro-bc-wrap .nu-profile-comment-link:hover { color: var(--nu-ink); }

/* ── Profile login box (logged-out state) ────────────────────────────────────── */
.nuastro-bc-wrap .nu-profile-login-box {
  max-width: 420px;
  margin: 0 auto;
  text-align: center;
  padding: 48px 0;
}
.nuastro-bc-wrap .nu-profile-login-msg {
  font-family: 'Cormorant Garamond', serif;
  font-size: 18px;
  font-weight: 400;
  color: var(--nu-ink-soft);
  margin-bottom: 28px;
  line-height: 1.6;
}

/* ── Auth modal overlay ──────────────────────────────────────────────────────── */
.nu-auth-overlay {
  position: fixed;
  inset: 0;
  background: rgba(17,17,16,.55);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 99999;
  padding: 20px;
}
.nu-auth-modal {
  background: #fff;
  width: 100%;
  max-width: 420px;
  padding: 40px 36px 36px;
  position: relative;
  font-family: 'Jost', sans-serif;
  font-weight: 300;
  color: #111110;
}
.nu-auth-close {
  position: absolute;
  top: 14px;
  right: 16px;
  background: none;
  border: none;
  font-size: 22px;
  line-height: 1;
  color: #888886;
  cursor: pointer;
  padding: 4px 6px;
  font-family: 'Jost', sans-serif;
}
.nu-auth-close:hover { color: #111110; }

/* Tabs */
.nu-auth-tabs {
  display: flex;
  border-bottom: .5px solid #E0E0DC;
  margin-bottom: 28px;
}
.nu-auth-tab {
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  padding: 10px 0;
  margin-right: 28px;
  font-family: 'Jost', sans-serif;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: #888886;
  cursor: pointer;
  margin-bottom: -1px;
  transition: color .15s, border-color .15s;
}
.nu-auth-tab:hover { color: #111110; }
.nu-auth-tab.nu-auth-tab-active {
  color: #111110;
  font-weight: 500;
  border-bottom-color: #111110;
}

/* Fields */
.nu-auth-fg {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 16px;
}
.nu-auth-label {
  font-size: 9px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: #888886;
}
.nu-auth-input {
  background: #F8F8F6;
  border: .5px solid #E0E0DC;
  padding: 11px 14px;
  font-family: 'Jost', sans-serif;
  font-size: 15px;
  font-weight: 400;
  color: #111110;
  outline: none;
  width: 100%;
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
  transition: border-color .15s;
}
.nu-auth-input:focus { border-color: #111110; }

/* Buttons */
.nu-auth-btn {
  width: 100%;
  background: #111110;
  color: #fff;
  border: none;
  padding: 14px;
  font-family: 'Jost', sans-serif;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .3em;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity .15s;
  margin-top: 6px;
  display: block;
  box-sizing: border-box;
}
.nu-auth-btn:hover    { opacity: .7; }
.nu-auth-btn:disabled { opacity: .35; cursor: not-allowed; }
.nu-auth-btn-reg {
  background: none;
  color: #111110;
  border: .5px solid #111110;
}

/* Error message */
.nu-auth-err {
  background: #FFF0F0;
  border: .5px solid #E0A0A0;
  color: #A03030;
  font-size: 12px;
  padding: 10px 14px;
  margin-bottom: 16px;
  line-height: 1.5;
}

/* Register panel text */
.nu-auth-reg-note {
  font-family: 'Cormorant Garamond', serif;
  font-size: 17px;
  font-weight: 400;
  color: #444442;
  line-height: 1.6;
  margin-bottom: 24px;
}
.nu-auth-reg-sub {
  font-size: 10px;
  letter-spacing: .08em;
  color: #888886;
  margin-top: 14px;
  line-height: 1.6;
}
.nu-auth-forgot {
  display: block;
  text-align: right;
  margin-top: 10px;
  font-size: 9px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #888886;
  text-decoration: none;
}
.nu-auth-forgot:hover { color: #111110; }

@media (max-width: 480px) {
  .nu-auth-modal { padding: 32px 20px 28px; }
}

/* ── Registration ([nuastro_register]) ─────────────────────────────────────── */
.nuastro-bc-wrap .nu-reg-err {
  background: #FFF0F0;
  border: .5px solid #E0A0A0;
  color: #A03030;
  font-size: 13px;
  padding: 11px 15px;
  margin-bottom: 18px;
  line-height: 1.5;
}
.nuastro-bc-wrap .nu-reg-foot {
  font-size: 11px;
  color: var(--nu-ink-soft);
  margin-top: 16px;
  line-height: 1.6;
  text-align: center;
}
.nuastro-bc-wrap .nu-reg-done {
  text-align: center;
  padding: 8px 0 4px;
}
.nuastro-bc-wrap .nu-reg-done-msg {
  font-family: 'Cormorant Garamond', serif;
  font-size: 19px;
  color: var(--nu-ink);
  line-height: 1.6;
  margin-bottom: 18px;
}
.nuastro-bc-wrap .nu-reg-done-sub {
  font-size: 11px;
  color: var(--nu-ink-soft);
  margin-top: 14px;
  line-height: 1.6;
}

/* ── Profile log-out link ──────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-profile-topbar {
  display: flex;
  justify-content: center;
  margin: -8px 0 26px;
}
.nuastro-bc-wrap .nu-profile-logout {
  font-size: 10px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
  text-decoration: none;
  border: .5px solid var(--nu-border);
  padding: 8px 18px;
  transition: color .15s, border-color .15s;
}
.nuastro-bc-wrap .nu-profile-logout:hover {
  color: var(--nu-ink);
  border-color: var(--nu-ink);
}

/* ── Profile header: avatar + username/bday/settings ─────────────────────────── */
.nuastro-bc-wrap .nu-profile-header {
  display: flex;
  align-items: stretch;
  gap: 24px;
  margin-bottom: 36px;
}
.nuastro-bc-wrap .nu-profile-avatar-wrap {
  flex-shrink: 0;
}
.nuastro-bc-wrap .nu-profile-avatar {
  width: 110px;
  height: 110px;
  border-radius: 50%;
  object-fit: cover;
  border: .5px solid var(--nu-border);
  display: block;
}
.nuastro-bc-wrap .nu-profile-avatar-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Cormorant Garamond', serif;
  font-size: 44px;
  font-weight: 400;
  color: var(--nu-ink-soft);
  background: var(--nu-bg-soft);
}
.nuastro-bc-wrap .nu-profile-header-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  min-width: 0;
}
.nuastro-bc-wrap .nu-profile-username {
  font-family: 'Cormorant Garamond', serif;
  font-size: 26px;
  font-weight: 400;
  color: var(--nu-ink);
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.nuastro-bc-wrap .nu-profile-bday {
  font-size: 10px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--nu-ink-soft);
}
.nuastro-bc-wrap .nu-profile-settings-btn {
  align-self: flex-start;
  background: none;
  border: none;
  padding: 0;
  margin-top: 2px;
  font-family: 'Jost', sans-serif;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--nu-ink);
  text-decoration: none;
  border-bottom: .5px solid var(--nu-ink);
  padding-bottom: 1px;
  cursor: pointer;
  transition: opacity .15s;
}
.nuastro-bc-wrap .nu-profile-settings-btn:hover { opacity: .5; }

@media (max-width: 480px) {
  .nuastro-bc-wrap .nu-profile-header { gap: 16px; }
  .nuastro-bc-wrap .nu-profile-avatar,
  .nuastro-bc-wrap .nu-profile-avatar-fallback { width: 76px; height: 76px; }
  .nuastro-bc-wrap .nu-profile-avatar-fallback { font-size: 30px; }
  .nuastro-bc-wrap .nu-profile-username { font-size: 20px; }
}

/* ── Chart/Horoscope CTA row ──────────────────────────────────────────────────── */
.nuastro-bc-wrap .nu-profile-cta-row {
  margin-bottom: 44px;
}
.nuastro-bc-wrap .nu-profile-cta-row .nu-btn {
  text-align: center;
  text-decoration: none;
}

/* ── Comments box (rounded, distinct from the sharp-cornered CTA buttons) ──────── */
.nuastro-bc-wrap .nu-profile-comments-section .nu-profile-comments {
  border-radius: 14px;
  overflow: hidden;
}
.nuastro-bc-wrap .nu-profile-comments-empty {
  padding: 40px 24px;
  text-align: center;
}
.nuastro-bc-wrap .nu-profile-comments-empty p {
  font-family: 'Cormorant Garamond', serif;
  font-size: 17px;
  font-style: italic;
  color: var(--nu-ink-soft);
}

/* ── Settings modal (reuses .nu-auth-* field/button styles) ────────────────────── */
.nu-set-overlay {
  position: fixed;
  inset: 0;
  background: rgba(17,17,16,.55);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 99999;
  padding: 20px;
}
.nu-set-modal {
  background: #fff;
  width: 100%;
  max-width: 440px;
  max-height: 88vh;
  overflow-y: auto;
  padding: 40px 36px 36px;
  position: relative;
  font-family: 'Jost', sans-serif;
  font-weight: 300;
  color: #111110;
}
.nu-set-close {
  position: absolute;
  top: 14px;
  right: 16px;
  background: none;
  border: none;
  font-size: 22px;
  line-height: 1;
  color: #888886;
  cursor: pointer;
  padding: 4px 6px;
  font-family: 'Jost', sans-serif;
}
.nu-set-close:hover { color: #111110; }
.nu-set-success {
  background: #F3F7F3;
  border: .5px solid #A8C8A8;
  color: #3A6A3A;
  font-size: 12px;
  padding: 10px 14px;
  margin-bottom: 16px;
  line-height: 1.5;
}
.nu-set-avatar-row {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 22px;
}
.nu-set-avatar-preview {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  border: .5px solid #E0E0DC;
  display: block;
  flex-shrink: 0;
}
.nu-set-avatar-preview-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Cormorant Garamond', serif;
  font-size: 28px;
  color: #888886;
  background: #F8F8F6;
}
.nu-set-avatar-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.nu-set-file-btn,
.nu-set-remove-btn {
  background: none;
  border: .5px solid #111110;
  color: #111110;
  padding: 8px 16px;
  font-family: 'Jost', sans-serif;
  font-size: 9px;
  font-weight: 400;
  letter-spacing: .18em;
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity .15s;
}
.nu-set-remove-btn {
  border-color: #E0E0DC;
  color: #888886;
}
.nu-set-file-btn:hover,
.nu-set-remove-btn:hover { opacity: .6; }
.nu-set-hint {
  font-size: 10px;
  color: #888886;
  margin-top: -8px;
  margin-bottom: 18px;
}
/* Read-only account rows (username / email — not user-changeable) */
.nu-set-static {
  font-size: 15px;
  font-weight: 400;
  color: #888886;
  padding: 11px 0 4px;
  border-bottom: .5px solid #E0E0DC;
  overflow-wrap: anywhere;
}
.nu-auth-input:disabled {
  color: #888886;
  background: #F2F2F0;
  cursor: not-allowed;
}

@media (max-width: 480px) {
  .nu-set-modal { padding: 32px 20px 28px; }
}

/* Honeypot — visually and to screen readers hidden, but present in the DOM */
.nuastro-bc-wrap .nu-reg-hp {
  position: absolute !important;
  left: -9999px !important;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
