/* Revamped GY — public/frontend styles. Focused on My Domains (NS/DNSSEC) usability
   and responsive layout. Safe to load alongside any theme — selectors are scoped
   with the rgyd- prefix. */

/* ---------- Domain search ---------- */
.rgyd-domain-search-form { margin: 0 0 16px 0; }
.rgyd-label { display: block; margin: 0 0 8px 0; font-weight: 600; }
.rgyd-label-small { display: block; margin: 0 0 6px 0; }
.rgyd-controls { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.rgyd-control { flex: 1; min-width: 220px; }
.rgyd-control--years { flex: 0 0 auto; min-width: 160px; }
.rgyd-control--submit { flex: 0 0 auto; }
.rgyd-domain-search-form input[type="text"],
.rgyd-domain-search-form select { width: 100%; max-width: 100%; box-sizing: border-box; }

/* ---------- Shared form inputs ---------- */
.rgyd-input,
.rgyd-ns-panel select,
.rgyd-ns-panel input[type="text"],
.rgyd-ns-panel input[type="number"],
.rgyd-textarea {
  width: 100%; max-width: 100%; box-sizing: border-box;
  padding: 11px 13px; border: 1px solid rgba(0,0,0,.18); border-radius: 12px;
  font: inherit; color: inherit; background: #fff; line-height: 1.45;
}
.rgyd-textarea {
  min-height: 140px; resize: vertical;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 0.95em;
}
.rgyd-input:focus, .rgyd-textarea:focus,
.rgyd-ns-panel select:focus,
.rgyd-ns-panel input[type="text"]:focus,
.rgyd-ns-panel input[type="number"]:focus {
  outline: none; border-color: #588E31; box-shadow: 0 0 0 3px rgba(88,142,49,.18);
}
.rgyd-help { margin: 10px 0 0 0; }
.rgyd-search-note { margin: 0 0 14px 0; padding: 10px 12px; border: 1px solid rgba(0,0,0,.08); border-radius: 12px; background: rgba(0,0,0,.025); }

/* ---------- Checkout upsells (privacy) ---------- */
.rgyd-checkout-upsells { margin: 14px 0 10px 0; padding: 14px; border: 1px solid rgba(0,0,0,.10); border-radius: 14px; background: rgba(0,0,0,.02); }
.rgyd-blocks-privacy-field { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.rgyd-blocks-privacy-field label, .rgyd-blocks-privacy-field .wc-block-components-checkbox__label { font-weight: 700; color: #101010; flex: 1; }
.rgyd-blocks-privacy-field input[type="checkbox"] { transform: scale(1.05); }
.rgyd-checkout-upsells__title { margin: 0 0 10px 0; }
.rgyd-checkout-upsells__row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.rgyd-checkout-upsells__label { display: flex; align-items: flex-start; gap: 10px; margin: 0; flex: 1; }
.rgyd-checkout-upsells__label input[type="checkbox"] { margin-top: 2px; transform: scale(1.05); }
.rgyd-checkout-upsells__text { display: inline-block; }
.rgyd-checkout-upsells__meta { display: inline-block; margin-left: 6px; opacity: 0.85; font-size: 0.92em; font-weight: 500; }
.rgyd-tooltip { position: relative; flex: 0 0 auto; border: 1px solid rgba(88,142,49,.35); background: #FFFFFF; color: #588E31; width: 24px; height: 24px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 12px; line-height: 1; cursor: pointer; }
.rgyd-tooltip__content { position: absolute; right: 0; top: 30px; width: min(320px, 78vw); background: #FFFFFF; color: #202224; border: 1px solid rgba(0,0,0,.14); border-radius: 12px; padding: 10px 12px; box-shadow: 0 10px 28px rgba(0,0,0,.12); display: none; text-align: left; z-index: 99999; }
.rgyd-tooltip:hover .rgyd-tooltip__content, .rgyd-tooltip:focus .rgyd-tooltip__content, .rgyd-tooltip[data-open="1"] .rgyd-tooltip__content { display: block; }
@media (max-width: 520px) { .rgyd-checkout-upsells__row { align-items: flex-start; } }
.rgyd-muted { opacity: 0.85; font-size: 0.92em; }

/* ---------- Tables (shared) ---------- */
.rgyd-table-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid rgba(0,0,0,.08); border-radius: 12px; background: #fff; }
.rgyd-table { width: 100%; border-collapse: separate; border-spacing: 0; }
.rgyd-table th { background: rgba(0,0,0,.03); text-align: left; padding: 12px; font-weight: 700; border-bottom: 1px solid rgba(0,0,0,.08); }
.rgyd-table td { padding: 12px; border-bottom: 1px solid rgba(0,0,0,.08); vertical-align: top; }
.rgyd-table tr.odd td { background: #fff; }
.rgyd-table tr.even td { background: rgba(0,0,0,.015); }
.rgyd-results-table { width: 100%; min-width: 720px; border-collapse: collapse; }
.rgyd-results-table th, .rgyd-results-table td { text-align: left; padding: 12px; border-bottom: 1px solid rgba(0,0,0,.08); vertical-align: top; }
.rgyd-results-table thead th { font-weight: 600; background: rgba(0,0,0,.02); }
.rgyd-results-table tbody tr:nth-child(even) { background: rgba(0,0,0,.015); }
.rgyd-domain { white-space: nowrap; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
.rgyd-badge { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 0.85em; font-weight: 600; line-height: 1.2; }
.rgyd-badge--ok { background: rgba(34, 197, 94, 0.12); }
/* "No / off" is informational, not destructive — neutral gray instead of
   red so a customer with Privacy=off doesn't think something is broken. */
.rgyd-badge--no { background: rgba(107, 114, 128, 0.14); color: #4B5563; }
.rgyd-badge--progress { background: rgba(88, 142, 49, 0.12); }
.rgyd-badge--grace { background: rgba(234, 179, 8, 0.18); color: #7a5800; }
.rgyd-badge--redemption { background: rgba(217, 119, 6, 0.18); color: #8a4b00; }
.rgyd-actions { white-space: normal; min-width: 180px; max-width: 260px; }
.rgyd-actions .rgyd-form { margin: 0 0 6px 0; }
.rgyd-action-btn { margin-top: 10px; }
.rgyd-price { white-space: nowrap; }
@media (max-width: 520px) { .rgyd-control, .rgyd-control--years { min-width: 100%; } }

/* ---------- My Domains layout ---------- */
.rgyd-my-domains { margin: 10px 0; }
.rgyd-my-domains-table-wrap { display: none !important; }
.rgyd-ns-list { margin: 0; padding-left: 18px; }
.rgyd-form { margin: 0 0 10px 0; }

/* Full-width variant used by the [rgyd_my_domains] shortcode. Gives the panel
   real breathing room on a normal-width page (vs. the cramped WooCommerce account
   column). The wrapper widens to a comfortable max-width and centres itself. */
.rgyd-my-domains--full { max-width: 1200px; margin: 0 auto; padding: 8px 0 32px 0; }
.rgyd-my-domains--full .rgyd-my-domains__title { font-size: 1.8em; font-weight: 700; margin: 0 0 6px 0; }
.rgyd-my-domains--full .rgyd-domain-panel__info { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) {
  .rgyd-my-domains--full .rgyd-domain-panel__info { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 900px) {
  .rgyd-my-domains--full .rgyd-domain-panel__info { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .rgyd-my-domains--full .rgyd-domain-panel__info { grid-template-columns: 1fr; }
}

/* Search + status filter bar
   These controls use !important on size/layout properties because page-builder
   and Woo storefront themes love to set `height`, `min-height`, `padding`, or
   `display: block` on form elements globally, which caused the mobile search
   field to balloon to ~300px. The !important wins them back. */
.rgyd-my-domains__filters {
  margin: 14px 0 22px 0; padding: 12px 14px; background: #fff;
  border: 1px solid rgba(0,0,0,.08); border-radius: 14px;
  box-sizing: border-box;
}
.rgyd-my-domains__filters-row {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
}
.rgyd-my-domains__filters input.rgyd-my-domains__search,
.rgyd-my-domains__filters select.rgyd-my-domains__select,
.rgyd-my-domains__filters .rgyd-btn {
  box-sizing: border-box !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  line-height: 1.3 !important;
  margin: 0 !important;
  vertical-align: middle;
}
.rgyd-my-domains__filters input.rgyd-my-domains__search {
  flex: 1 1 240px; min-width: 0; width: auto;
  padding: 8px 14px !important;
  border: 1px solid rgba(0,0,0,.15);
  border-radius: 10px;
  background: #fff;
  font-family: inherit; font-size: 0.95em; color: #202020;
  appearance: none; -webkit-appearance: none;
}
.rgyd-my-domains__filters input.rgyd-my-domains__search:focus-visible {
  outline: 2px solid #588E31; outline-offset: 1px; border-color: #588E31;
}
.rgyd-my-domains__filters select.rgyd-my-domains__select {
  flex: 0 0 auto; width: auto;
  padding: 8px 36px 8px 14px !important;
  border: 1px solid rgba(0,0,0,.15);
  border-radius: 10px;
  background: #fff url("data:image/svg+xml;charset=US-ASCII,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23555' d='M6 8L0 0h12z'/%3E%3C/svg%3E") right 12px center no-repeat;
  font-family: inherit; font-size: 0.95em; color: #202020; cursor: pointer;
  appearance: none; -webkit-appearance: none; -moz-appearance: none;
}
.rgyd-my-domains__filters select.rgyd-my-domains__select:focus-visible {
  outline: 2px solid #588E31; outline-offset: 1px;
}
.rgyd-my-domains__filters .rgyd-btn {
  padding: 0 18px !important;
}
.rgyd-my-domains__filter-btn {
  display: inline-flex !important; align-items: center !important;
  gap: 8px !important;
}
.rgyd-my-domains__filter-btn svg { display: inline-block; }
.rgyd-my-domains__no-results { margin: 18px 0; }

@media (max-width: 560px) {
  .rgyd-my-domains__filters { padding: 10px 12px; }
  .rgyd-my-domains__filters-row { flex-direction: column; align-items: stretch; gap: 8px; }
  .rgyd-my-domains__filters input.rgyd-my-domains__search,
  .rgyd-my-domains__filters select.rgyd-my-domains__select,
  .rgyd-my-domains__filters .rgyd-btn {
    width: 100% !important;
    flex: 0 0 auto;
    text-align: center;
  }
  .rgyd-my-domains__filters input.rgyd-my-domains__search { text-align: left; }
}

/* ---------- Buttons ---------- */
.rgyd-btn {
  display: inline-block !important; padding: 12px 18px !important;
  border: 1px solid currentColor !important; border-radius: 999px !important;
  text-decoration: none !important; background: transparent !important;
  cursor: pointer !important; font-weight: 700 !important; line-height: 1.2 !important;
  transition: transform 120ms ease, box-shadow 120ms ease, background 120ms ease, color 120ms ease;
  font-family: inherit; font-size: inherit; max-width: 100%;
}
.rgyd-btn:hover { transform: translateY(-1px); }
.rgyd-btn:focus-visible { outline: 2px solid #588E31; outline-offset: 2px; }
.rgyd-btn-primary { background: #588E31 !important; border-color: #588E31 !important; color: #FFFFFF !important; }
.rgyd-btn-primary:hover { background: #467024 !important; border-color: #467024 !important; }
.rgyd-btn-secondary { background: #FFFFFF !important; color: #101010 !important; border-color: rgba(0,0,0,.2) !important; }
.rgyd-btn-secondary:hover { background: #F0F7E8 !important; border-color: rgba(88,142,49,.4) !important; color: #467024 !important; }
.rgyd-btn[disabled], .rgyd-btn.is-disabled { opacity: .55; cursor: not-allowed; }

/* Hide the legacy mobile-cards layout at every viewport size.
   The renderer still echoes the old `.rgyd-domain-cards` block alongside the new
   `.rgyd-domain-panel` cards for backward compat, but the new panel layout is
   fully responsive (see media queries on .rgyd-domain-panel__info / __actions
   below) so we never want both to show. A previous @media rule re-enabled the
   legacy layout at <=780px, which caused every domain to appear twice on phones —
   that's the rule that has been removed. */
.rgyd-domain-cards { display: none !important; }
.rgyd-domain-card { display: none !important; }

/* ---------- Domain panel (card-per-domain layout) ---------- */
/* Comfortable gap so multiple domains don't run together. */
.rgyd-domains-list { display: flex; flex-direction: column; gap: 32px; }
/* Even more breathing room on the full-width shortcode page. */
.rgyd-my-domains--full .rgyd-domains-list { gap: 36px; }
/* Keep the gap meaningful on mobile — phones with stacked panels especially
   benefit from clear separation between cards. */
@media (max-width: 560px) {
  .rgyd-domains-list,
  .rgyd-my-domains--full .rgyd-domains-list { gap: 28px; }
}

.rgyd-domain-panel {
  border: 1px solid rgba(0,0,0,.1); border-radius: 16px; padding: 20px; background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.rgyd-domain-panel__header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.rgyd-domain-panel__name { font-size: 1.15em; font-weight: 700; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; word-break: break-all; }
.rgyd-domain-panel__badges { display: flex; flex-wrap: wrap; gap: 6px; }
.rgyd-domain-panel__info { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px 20px; padding: 14px 0; border-top: 1px solid rgba(0,0,0,.06); border-bottom: 1px solid rgba(0,0,0,.06); }
.rgyd-domain-panel__label { font-size: 0.8em; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; color: #888; margin-bottom: 4px; }
.rgyd-domain-panel__col code { font-size: 0.88em; }
.rgyd-domain-panel__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.rgyd-panel-action { margin: 0; }

.rgyd-panel-btn {
  display: inline-flex; align-items: center; gap: 4px; padding: 8px 14px;
  border: 1px solid rgba(0,0,0,.15); border-radius: 10px; background: #fff; color: #303030;
  font-size: 0.88em; font-weight: 600; font-family: inherit; cursor: pointer;
  white-space: nowrap; text-decoration: none; transition: background 100ms ease, border-color 100ms ease;
  line-height: 1.3; list-style: none;
}
.rgyd-panel-btn:hover { background: #F0F7E8; border-color: rgba(88,142,49,.4); color: #467024; }
.rgyd-panel-btn:focus-visible { outline: 2px solid #588E31; outline-offset: 2px; }
.rgyd-panel-btn--warn { border-color: rgba(234,179,8,.5); color: #7a5800; }
.rgyd-panel-btn--warn:hover { background: rgba(234,179,8,.1); border-color: rgba(234,179,8,.7); }

@media (max-width: 900px) { .rgyd-domain-panel__info { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) {
  .rgyd-domain-panel { padding: 14px; }
  .rgyd-domain-panel__info { grid-template-columns: 1fr; }
  .rgyd-domain-panel__actions { flex-direction: column; align-items: stretch; }
  .rgyd-panel-btn { justify-content: center; width: 100%; }
}


/* ==========================================================================
   NS / DNSSEC MODAL — polished overlay sheets
   ========================================================================== */

.rgyd-ns-details { display: inline-block; margin: 0; max-width: 100%; vertical-align: top; }
.rgyd-ns-details > summary { list-style: none; cursor: pointer; }
.rgyd-ns-details > summary::-webkit-details-marker { display: none; }
.rgyd-ns-overlay { display: none; }

/* Backdrop */
.rgyd-ns-details[open] > .rgyd-ns-overlay {
  display: flex; position: fixed; inset: 0;
  background: rgba(10,15,30,.45);
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  align-items: center; justify-content: center;
  z-index: 99999; padding: 20px;
  animation: rgyd-fade 160ms ease-out;
}
@keyframes rgyd-fade { from { opacity: 0; } to { opacity: 1; } }

/* Panel */
.rgyd-ns-panel {
  background: #fff; border-radius: 20px;
  max-width: 560px; width: 100%;
  max-height: calc(100vh - 40px); overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: 0; border: none;
  box-shadow: 0 20px 60px rgba(8,15,40,.22), 0 0 0 1px rgba(0,0,0,.05);
  color: #202224; position: relative; box-sizing: border-box;
  animation: rgyd-pop 180ms cubic-bezier(.16,.85,.3,1.02);
}
@keyframes rgyd-pop {
  from { transform: translateY(12px) scale(.97); opacity: 0; }
  to   { transform: translateY(0) scale(1); opacity: 1; }
}

/* Header bar — subtle gradient */
.rgyd-ns-panel-head {
  padding: 22px 24px 14px 24px;
  background: linear-gradient(135deg, #F8FBF4 0%, #EAF3E0 100%);
  border-bottom: 1px solid rgba(88,142,49,.08);
  border-radius: 20px 20px 0 0;
}

.rgyd-ns-title {
  margin: 0 0 2px 0; font-size: 17px; font-weight: 800; color: #101020;
  padding-right: 40px; word-break: break-word; letter-spacing: -0.01em;
}
.rgyd-ns-subtitle {
  margin: 0;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 13px; color: #588E31; word-break: break-all; font-weight: 600;
}

/* Body */
.rgyd-ns-panel-body { padding: 18px 24px 22px 24px; }

/* Fallback spacing when PHP doesn't use head/body wrappers */
.rgyd-ns-panel > .rgyd-ns-title { padding: 22px 24px 0 24px; }
.rgyd-ns-panel > .rgyd-muted,
.rgyd-ns-panel > .rgyd-ns-subtitle { padding: 0 24px; }
.rgyd-ns-panel > .rgyd-form,
.rgyd-ns-panel > .rgyd-form-inline,
.rgyd-ns-panel > hr,
.rgyd-ns-panel > .rgyd-table-wrap,
.rgyd-ns-panel > .rgyd-ds-empty,
.rgyd-ns-panel > .rgyd-notice,
.rgyd-ns-panel > .rgyd-ns-help { margin-left: 24px; margin-right: 24px; }

.rgyd-ns-help {
  margin: 10px 0 16px 0; line-height: 1.6; color: #5A5E6B; font-size: 0.9em; word-break: break-word;
}
.rgyd-ns-help code {
  background: rgba(88,142,49,.07); padding: 2px 7px; border-radius: 6px; font-size: 0.9em; color: #588E31;
}
.rgyd-ns-divider { border: none; border-top: 1px solid #EDEFF1; margin: 20px 0; }
.rgyd-ns-panel .rgyd-muted { overflow-wrap: anywhere; word-break: break-word; }
.rgyd-ns-panel .rgyd-form + .rgyd-form,
.rgyd-ns-panel .rgyd-form-inline { margin-top: 12px; }
.rgyd-ns-notice { margin-top: 14px; }

/* Close button — light glass pill, top-right */
.rgyd-ns-details[open] > summary {
  position: fixed; top: 16px; right: 16px; z-index: 100001;
  width: 40px; height: 40px; padding: 0 !important;
  border-radius: 12px; overflow: hidden;
  color: transparent !important;
  background: rgba(255,255,255,.9) !important;
  border: 1px solid rgba(0,0,0,.1) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.rgyd-ns-details[open] > summary::before {
  content: "\00d7"; display: block; color: #303030;
  font-size: 24px; line-height: 40px; text-align: center; font-weight: 400;
}
.rgyd-ns-details[open] > summary:hover {
  background: #fff !important; box-shadow: 0 2px 12px rgba(0,0,0,.18);
}

/* Textarea inside modals — upgraded look */
.rgyd-ns-panel .rgyd-textarea {
  width: 100%; box-sizing: border-box;
  border: 1.5px solid rgba(0,0,0,.12); border-radius: 14px;
  padding: 14px 16px; font-size: 0.93em;
  min-height: 120px;
  transition: border-color 120ms ease, box-shadow 120ms ease;
  background: #FAFAFE;
}
.rgyd-ns-panel .rgyd-textarea:focus {
  border-color: #588E31; box-shadow: 0 0 0 3px rgba(88,142,49,.12);
  outline: none; background: #fff;
}
.rgyd-ns-panel .rgyd-textarea::placeholder { color: #aaa; }

/* Select inside modals */
.rgyd-ns-panel .rgyd-input {
  border: 1.5px solid rgba(0,0,0,.12); border-radius: 14px;
  padding: 12px 16px; background: #FAFAFE; font-size: 0.93em;
  transition: border-color 120ms ease;
}
.rgyd-ns-panel .rgyd-input:focus {
  border-color: #588E31; box-shadow: 0 0 0 3px rgba(88,142,49,.12);
  outline: none; background: #fff;
}

/* Form label */
.rgyd-form-label {
  display: block; font-weight: 700; font-size: 0.88em;
  margin: 18px 0 8px 0; color: #303030;
  text-transform: uppercase; letter-spacing: 0.04em;
}

/* Action buttons row */
.rgyd-form-actions {
  display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; align-items: stretch;
}
.rgyd-form-actions .rgyd-btn { flex: 1 1 auto; text-align: center; min-width: 0; }

/* DS record table */
.rgyd-ds-table-wrap {
  margin-top: 14px; border-radius: 14px;
  border: 1px solid rgba(0,0,0,.06); max-height: 260px;
  overflow: auto; -webkit-overflow-scrolling: touch; background: #FAFAFE;
}
.rgyd-ds-table { min-width: 100%; font-size: 0.88em; }
.rgyd-ds-table th {
  background: rgba(88,142,49,.04); font-size: 0.78em;
  text-transform: uppercase; letter-spacing: 0.05em; color: #666; font-weight: 700;
}
.rgyd-ds-table th, .rgyd-ds-table td { padding: 10px 14px; }
.rgyd-ds-digest { word-break: break-all; font-size: 0.85em; max-width: 100%; display: inline-block; }
.rgyd-ds-empty {
  margin-top: 14px; padding: 16px 18px; border-radius: 14px;
  background: rgba(0,0,0,.025); color: #888; font-size: 0.9em; text-align: center;
  border: 1px dashed rgba(0,0,0,.1);
}

/* ---------- Modal responsive ---------- */
@media (max-width: 680px) {
  .rgyd-ns-details[open] > .rgyd-ns-overlay { padding: 0; align-items: flex-end; }
  .rgyd-ns-panel {
    border-radius: 20px 20px 0 0; max-height: calc(100vh - 48px); margin-top: auto;
    animation: rgyd-slide 200ms ease-out;
  }
  .rgyd-ns-panel-head { border-radius: 20px 20px 0 0; padding: 18px 20px 12px 20px; }
  .rgyd-ns-panel-body { padding: 16px 20px 20px 20px; }
  .rgyd-ns-panel > .rgyd-ns-title { padding-left: 20px; padding-right: 52px; }
  .rgyd-ns-panel > .rgyd-muted,
  .rgyd-ns-panel > .rgyd-ns-subtitle { padding-left: 20px; padding-right: 20px; }
  .rgyd-ns-panel > .rgyd-form,
  .rgyd-ns-panel > .rgyd-form-inline,
  .rgyd-ns-panel > hr,
  .rgyd-ns-panel > .rgyd-table-wrap,
  .rgyd-ns-panel > .rgyd-ds-empty,
  .rgyd-ns-panel > .rgyd-notice,
  .rgyd-ns-panel > .rgyd-ns-help { margin-left: 20px; margin-right: 20px; }
  @keyframes rgyd-slide {
    from { transform: translateY(24px); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
  }
  .rgyd-form-actions { flex-direction: column; }
  .rgyd-ns-details[open] > summary { top: 10px; right: 10px; width: 36px; height: 36px; }
  .rgyd-ns-details[open] > summary::before { line-height: 36px; font-size: 22px; }

  /* DS table → stacked cards on mobile */
  .rgyd-ds-table thead { display: none; }
  .rgyd-ds-table, .rgyd-ds-table tbody, .rgyd-ds-table tr, .rgyd-ds-table td { display: block; width: 100%; }
  .rgyd-ds-table tr { border-bottom: 1px solid rgba(0,0,0,.06); padding: 10px 14px; }
  .rgyd-ds-table tr:last-child { border-bottom: none; }
  .rgyd-ds-table td { border: none; padding: 3px 0; }
  .rgyd-ds-table td[data-label]::before {
    content: attr(data-label) ": "; font-weight: 700; color: #888;
    font-size: 0.78em; text-transform: uppercase; letter-spacing: 0.03em;
  }
  .rgyd-ds-table .rgyd-ds-digest {
    display: block; padding: 8px 10px; background: rgba(0,0,0,.025);
    border-radius: 8px; margin-top: 4px; font-size: 0.83em;
  }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  .rgyd-btn, .rgyd-ns-details[open] > .rgyd-ns-overlay, .rgyd-ns-panel {
    animation: none !important; transition: none !important;
  }
}

/* ---------- Notices for My Domains ---------- */
.rgyd-notice{padding:12px 14px;border-radius:12px;margin:10px 0;border:1px solid rgba(0,0,0,0.08);line-height:1.6;overflow-wrap:anywhere;word-break:normal}
.rgyd-notice-success{background:#F5F5FF;color:#202224;border-color:rgba(88,142,49,0.35)}
.rgyd-notice-error{background:#fff2f2;color:#202224;border-color:rgba(228,27,56,0.35)}
.rgyd-notice-neutral{background:#ffffff;color:#202224;border-color:rgba(0,0,0,0.12)}
.rgyd-notice a.rgyd-whois-inline-link{display:inline;white-space:nowrap}
.woocommerce-notices-wrapper a.rgyd-whois-inline-link,
.woocommerce-message a.rgyd-whois-inline-link{display:inline!important;white-space:nowrap!important}

/* Structured WooCommerce notice layout — keeps domain update messages clean and readable
   regardless of how the theme renders .woocommerce-message / .woocommerce-error / .woocommerce-info */
.rgyd-wc-notice {
  display: block;
  margin: 0 0 2px 0;
  line-height: 1.4;
  word-break: break-word;
}
.rgyd-wc-notice strong {
  font-weight: 700;
}
.rgyd-wc-notice-detail {
  display: block;
  margin: 4px 0 0 0;
  font-size: 0.9em;
  color: #555;
  line-height: 1.5;
  word-break: break-word;
}
.rgyd-wc-notice-detail a {
  color: #588E31;
  text-decoration: underline;
  font-weight: 600;
}
.rgyd-wc-notice-detail a:hover {
  color: #467024;
}
/* Ensure the WooCommerce notice container itself doesn't force weird inline layouts */
.woocommerce-message .rgyd-wc-notice,
.woocommerce-error .rgyd-wc-notice,
.woocommerce-info .rgyd-wc-notice,
.woocommerce-message .rgyd-wc-notice-detail,
.woocommerce-error .rgyd-wc-notice-detail,
.woocommerce-info .rgyd-wc-notice-detail {
  display: block !important;
  float: none !important;
  clear: both !important;
}

/* ==========================================================================
   Transfer-in form ([rgyd_transfer_search])
   ========================================================================== */
.rgyd-transfer-search {
  background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 14px;
  padding: 22px 26px;
  /* Full width inside the page's content column (no narrow cap). */
  max-width: none; width: 100%; box-sizing: border-box;
  margin: 0;
}
.rgyd-transfer-form .rgyd-label {
  display: block; font-weight: 700; font-size: 1.05em; margin-bottom: 4px;
}
.rgyd-transfer-form .rgyd-help {
  margin: 0 0 16px 0; font-size: 0.92em;
}
.rgyd-transfer-form__row {
  display: grid; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: end;
}
.rgyd-transfer-form__field { display: flex; flex-direction: column; min-width: 0; }
.rgyd-transfer-form__field .rgyd-label-small {
  font-size: 0.8em; color: #555; margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.04em;
}
.rgyd-transfer-form__field input {
  box-sizing: border-box; height: 44px; padding: 8px 14px;
  border: 1px solid rgba(0,0,0,.15); border-radius: 10px; background: #fff;
  font-family: inherit; font-size: 0.95em; color: #202020; width: 100%;
}
.rgyd-transfer-form__field input:focus-visible {
  outline: 2px solid #588E31; outline-offset: 1px; border-color: #588E31;
}
.rgyd-transfer-form__submit .rgyd-btn {
  height: 44px; padding: 0 22px !important; box-sizing: border-box;
}
@media (max-width: 640px) {
  .rgyd-transfer-form__row { grid-template-columns: 1fr; }
  .rgyd-transfer-form__submit .rgyd-btn { width: 100%; }
}

/* ==========================================================================
   V2 DASHBOARD LAYOUT
   ==========================================================================
   This block powers the redesigned My Domains dashboard (header + cards with
   tabs + upsells). Everything is scoped under .rgyd-my-domains so it doesn't
   bleed into other plugin surfaces.
   ========================================================================== */

/* Page header — title + subtitle on the left, Add Domain CTA on the right */
.rgyd-my-domains .rgyd-page-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 16px; flex-wrap: wrap; margin: 0 0 18px 0;
}
.rgyd-my-domains .rgyd-page-header__text { flex: 1 1 320px; min-width: 0; }
.rgyd-my-domains .rgyd-page-header__title {
  margin: 0 0 6px 0;
  font-size: clamp(1.8em, 3.5vw, 2.5em); font-weight: 800; line-height: 1.15;
  color: #0F1729;
}
.rgyd-my-domains .rgyd-page-header__subtitle {
  margin: 0; color: #5A5E6B; font-size: 1em; line-height: 1.45; max-width: 56ch;
}
.rgyd-my-domains .rgyd-page-header__actions { flex: 0 0 auto; }
.rgyd-my-domains .rgyd-page-header__cta {
  padding: 12px 18px !important;
  font-weight: 600 !important;
  border-radius: 12px !important;
}
@media (max-width: 560px) {
  .rgyd-my-domains .rgyd-page-header { gap: 12px; }
  .rgyd-my-domains .rgyd-page-header__cta { width: 100%; text-align: center; }
}

/* List of cards. Generous gap so cards visually separate, no joining lines. */
.rgyd-cards-list { display: flex; flex-direction: column; gap: 28px; }

/* ---------- The card itself ---------- */
.rgyd-card-v2 {
  background: #fff; border: 1px solid rgba(15, 23, 41, .08); border-radius: 18px;
  padding: 22px 24px; box-shadow: 0 1px 2px rgba(15, 23, 41, .03);
}
@media (max-width: 560px) {
  .rgyd-card-v2 { padding: 16px; border-radius: 14px; }
}

/* Card header: globe icon + domain name + status pill */
.rgyd-card-v2__header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding-bottom: 18px; margin-bottom: 18px;
  border-bottom: 1px solid rgba(15, 23, 41, .07);
}
.rgyd-card-v2__header-left {
  display: flex; align-items: center; gap: 12px; min-width: 0;
}
.rgyd-card-v2__icon {
  flex: 0 0 auto; width: 44px; height: 44px; border-radius: 12px;
  background: linear-gradient(135deg, #EAF3E0, #F0F7E8);
  display: flex; align-items: center; justify-content: center;
  color: #588E31;
}
.rgyd-card-v2__icon svg { width: 22px; height: 22px; }
.rgyd-card-v2__name {
  margin: 0; font-size: 1.3em; font-weight: 800; color: #0F1729;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  word-break: break-all;
}
.rgyd-card-v2__header-right { flex: 0 0 auto; }

/* Status pill (Active / Expired / In progress) */
.rgyd-pill {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 6px 14px; border-radius: 999px;
  font-size: 0.85em; font-weight: 700; letter-spacing: 0.01em;
}
.rgyd-pill__dot {
  width: 7px; height: 7px; border-radius: 50%; background: currentColor;
}
.rgyd-pill--ok   { background: #DCFCE7; color: #15803D; }
.rgyd-pill--warn { background: #FEF3C7; color: #92400E; }
/* No red on the dashboard — error states use an amber palette instead so
   they read as "needs attention" rather than "disaster". */
.rgyd-pill--err  { background: #FFEDD5; color: #9A3412; }

/* Info row — 4 columns of icon + label + value */
.rgyd-card-v2__info {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 18px; padding: 4px 0 20px 0;
  border-bottom: 1px solid rgba(15, 23, 41, .07);
}
.rgyd-info-item { display: flex; align-items: center; gap: 12px; min-width: 0; }
.rgyd-info-item__icon {
  flex: 0 0 auto; width: 38px; height: 38px; border-radius: 10px;
  background: #F4F5FA; color: #5b6178;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.05em;
}
.rgyd-info-item__body { min-width: 0; }
.rgyd-info-item__label { font-size: 0.78em; color: #6F7488; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 3px; font-weight: 600; }
.rgyd-info-item__value { font-weight: 600; color: #0F1729; font-size: 0.98em; word-break: break-word; }
@media (max-width: 1100px) {
  .rgyd-card-v2__info { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .rgyd-card-v2__info { grid-template-columns: 1fr; gap: 12px; }
}

/* Nameservers row — label on the left, chips wrapping, Edit link on the right */
.rgyd-card-v2__ns-row {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 16px 0 18px 0; border-bottom: 1px solid rgba(15, 23, 41, .07);
}
.rgyd-card-v2__ns-label {
  flex: 0 0 auto; font-weight: 700; color: #0F1729;
}
.rgyd-card-v2__ns-chips {
  flex: 1 1 auto; display: flex; flex-wrap: wrap; gap: 8px; min-width: 0;
}
.rgyd-ns-chip {
  display: inline-flex; align-items: center; padding: 6px 14px;
  background: #F4F5FA; border: 1px solid rgba(15, 23, 41, .08);
  border-radius: 999px; font-size: 0.88em; color: #2a2f3d;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.rgyd-card-v2__ns-edit {
  flex: 0 0 auto; background: none; border: 0; padding: 6px 4px;
  color: #588E31; font-weight: 700; cursor: pointer; font-size: 0.95em;
  display: inline-flex; align-items: center; gap: 5px;
}
.rgyd-card-v2__ns-edit:hover { color: #467024; text-decoration: underline; }

/* Upsells (Website Hosting + Email Hosting) */
.rgyd-card-v2__upsells { margin: 20px 0; }
.rgyd-card-v2__upsells-title {
  margin: 0 0 12px 0; font-size: 1.05em; font-weight: 800; color: #0F1729;
}
.rgyd-upsell-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px;
}
@media (max-width: 720px) { .rgyd-upsell-grid { grid-template-columns: 1fr; } }
.rgyd-upsell-card {
  display: flex; gap: 14px; padding: 16px;
  background: #fff; border: 1px solid rgba(15, 23, 41, .1);
  border-radius: 14px;
  transition: border-color 120ms ease, transform 120ms ease;
}
.rgyd-upsell-card:hover { border-color: #588E31; transform: translateY(-1px); }
.rgyd-upsell-card__icon {
  flex: 0 0 auto; width: 44px; height: 44px; border-radius: 12px;
  background: linear-gradient(135deg, #EAF3E0, #F0F7E8);
  display: flex; align-items: center; justify-content: center; font-size: 1.3em;
  color: #588E31;
}
.rgyd-upsell-card--email .rgyd-upsell-card__icon {
  background: linear-gradient(135deg, #FFF3DB, #FFE4BC); color: #A35A00;
}
.rgyd-upsell-card__body { flex: 1 1 auto; min-width: 0; }
.rgyd-upsell-card__title { font-weight: 800; color: #0F1729; margin-bottom: 4px; }
.rgyd-upsell-card__desc  { color: #5A5E6B; font-size: 0.9em; line-height: 1.45; }
.rgyd-upsell-card__price { font-weight: 700; color: #588E31; margin-top: 8px; font-size: 0.92em; }
.rgyd-upsell-card__cta {
  margin-top: 10px; padding: 8px 14px !important; font-size: 0.9em !important;
  border-radius: 10px !important; display: inline-block;
}

/* Primary actions row (Manage / Use managed DNS / Renew) */
.rgyd-card-v2__primary-actions {
  display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 14px 0;
}
.rgyd-card-v2__primary-actions .rgyd-btn {
  padding: 12px 20px !important; border-radius: 12px !important;
  display: inline-flex; align-items: center; gap: 8px;
}
@media (max-width: 560px) {
  .rgyd-card-v2__primary-actions { flex-direction: column; }
  .rgyd-card-v2__primary-actions .rgyd-btn { width: 100%; justify-content: center; }
}
.rgyd-btn--warn-text { color: #B45A07 !important; }

/* Quick chip row (Sync / History / NS / DNSSEC / Privacy / Security) */
.rgyd-card-v2__chips {
  display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 18px;
  margin-bottom: 18px; border-bottom: 1px solid rgba(15, 23, 41, .07);
}
.rgyd-chip-form { display: inline-block; margin: 0; }
.rgyd-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px; background: #fff;
  border: 1px solid rgba(15, 23, 41, .1); border-radius: 999px;
  color: #2a2f3d; font-weight: 600; font-size: 0.88em; cursor: pointer;
  font-family: inherit; line-height: 1.2;
}
.rgyd-chip:hover { border-color: #588E31; color: #588E31; }
.rgyd-chip:focus-visible { outline: 2px solid #588E31; outline-offset: 2px; }

/* Tab bar */
.rgyd-card-v2__tabs {
  display: flex; gap: 4px; overflow-x: auto; flex-wrap: nowrap;
  border-bottom: 1px solid rgba(15, 23, 41, .07);
  margin-bottom: 18px;
  /* Hide scrollbar on mobile, still allow scroll */
  scrollbar-width: thin;
}
.rgyd-tab-btn {
  background: none; border: 0; padding: 12px 16px;
  color: #5A5E6B; font-weight: 600; font-size: 0.95em; cursor: pointer;
  font-family: inherit; white-space: nowrap;
  border-bottom: 2px solid transparent; margin-bottom: -1px;
  transition: color 120ms ease, border-color 120ms ease;
  display: inline-flex; align-items: center; gap: 6px;
}
.rgyd-tab-btn:hover { color: #0F1729; }
.rgyd-tab-btn.is-active { color: #588E31; border-bottom-color: #588E31; }
.rgyd-tab-btn:focus-visible { outline: 2px solid #588E31; outline-offset: -2px; border-radius: 2px; }
.rgyd-tab-btn__emoji { font-size: 1.05em; line-height: 1; }
@media (max-width: 560px) {
  .rgyd-tab-btn { padding: 10px 12px; font-size: 0.9em; }
}

/* Tab panels — only the active one renders */
.rgyd-card-v2__panels { position: relative; }
.rgyd-tab-panel { display: none; }
.rgyd-tab-panel.is-active { display: block; }
.rgyd-tab-section { padding: 4px 0; }
.rgyd-tab-section h4 { margin: 0 0 6px 0; font-size: 1.02em; font-weight: 700; color: #0F1729; }
.rgyd-tab-section p { margin: 0 0 12px 0; }
.rgyd-empty-tab { padding: 14px 16px; background: #F4F5FA; border-radius: 12px; }
.rgyd-empty-tab h4 { margin: 0 0 6px 0; font-weight: 700; color: #0F1729; }
.rgyd-empty-tab p { margin: 0; color: #5A5E6B; }
.rgyd-toggle-row {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  flex-wrap: wrap; padding: 14px 16px;
  background: #F4F5FA; border-radius: 12px;
}

/* Overview tab: 4 status pills + "Everything in one place" callout */
.rgyd-overview {
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px;
}
@media (max-width: 720px) { .rgyd-overview { grid-template-columns: 1fr; } }
.rgyd-overview__heading-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; flex-wrap: wrap; margin: 0 0 10px 0;
}
.rgyd-overview__heading { margin: 0; font-weight: 700; font-size: 1.02em; color: #0F1729; }
.rgyd-overview__sync-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: #fff; border: 1px solid rgba(15, 23, 41, .12); border-radius: 999px;
  padding: 7px 14px; font-weight: 600; font-size: 0.88em;
  color: #2a2f3d; cursor: pointer; font-family: inherit;
  transition: border-color 120ms ease, color 120ms ease;
}
.rgyd-overview__sync-btn:hover { border-color: #588E31; color: #588E31; }
.rgyd-overview__sync-btn:focus-visible { outline: 2px solid #588E31; outline-offset: 2px; }
.rgyd-overview__pills {
  padding: 16px 18px; background: #F8F9FE; border-radius: 14px;
}
.rgyd-overview__pill-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px;
}
@media (max-width: 520px) { .rgyd-overview__pill-grid { grid-template-columns: 1fr; } }
.rgyd-overview-pill {
  display: flex; align-items: center; gap: 12px;
  padding: 12px; background: #fff; border-radius: 12px;
  border: 1px solid rgba(15, 23, 41, .06);
}
.rgyd-overview-pill__icon {
  flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%;
  background: #EAF3E0; color: #467024;
  display: flex; align-items: center; justify-content: center; font-size: 0.95em;
}
.rgyd-overview-pill--ok   .rgyd-overview-pill__icon { background: #DCFCE7; color: #15803D; }
.rgyd-overview-pill--warn .rgyd-overview-pill__icon { background: #FEF3C7; color: #92400E; }
.rgyd-overview-pill--err  .rgyd-overview-pill__icon { background: #FFEDD5; color: #9A3412; }
.rgyd-overview-pill__label { font-size: 0.78em; color: #6F7488; text-transform: uppercase; letter-spacing: 0.04em; font-weight: 600; }
.rgyd-overview-pill__value { font-weight: 700; color: #0F1729; }

.rgyd-overview__callout {
  display: flex; gap: 10px; padding: 16px 18px;
  background: linear-gradient(135deg, #EAF3E0 0%, #F0F7E8 100%);
  border: 1px solid rgba(88, 142, 49, .15); border-radius: 14px;
}
.rgyd-overview__callout-icon {
  flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%;
  background: #fff; color: #588E31;
  display: flex; align-items: center; justify-content: center; font-weight: 700;
}
.rgyd-overview__callout-title { font-weight: 700; color: #1E3A8A; margin-bottom: 4px; }
.rgyd-overview__callout-body  { color: #2a2f3d; font-size: 0.92em; line-height: 1.5; }

/* Services tab — owned services list (top) + upsells (bottom) */
.rgyd-services__heading {
  margin: 0 0 12px 0; font-weight: 700; font-size: 1.05em; color: #0F1729;
}
.rgyd-services__owned { margin-bottom: 24px; }
.rgyd-service-group { margin-bottom: 18px; }
.rgyd-service-group:last-child { margin-bottom: 0; }
.rgyd-service-group__title {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 10px; font-weight: 700; color: #0F1729; font-size: 0.98em;
}
.rgyd-service-group__count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 22px; height: 22px; padding: 0 7px;
  background: #EAF3E0; color: #588E31;
  border-radius: 999px; font-size: 0.75em; font-weight: 700;
}
.rgyd-service-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.rgyd-service-list__item {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 12px 16px; background: #fff;
  border: 1px solid rgba(15, 23, 41, .08); border-radius: 12px;
}
.rgyd-service-list__name { flex: 1 1 200px; font-weight: 700; color: #0F1729; min-width: 0; word-break: break-word; }
.rgyd-service-list__meta { color: #6F7488; font-size: 0.85em; }
.rgyd-service-list__cta {
  padding: 7px 14px !important; font-size: 0.88em !important;
  border-radius: 10px !important;
  display: inline-flex; align-items: center; gap: 5px;
}
@media (max-width: 480px) {
  .rgyd-service-list__cta { width: 100%; justify-content: center; }
}

/* ==========================================================================
   Modal popup
   ==========================================================================
   Used by the Edit nameservers button on each card. Hidden by default,
   centred via flex on the body when activated.
   ========================================================================== */
.rgyd-modal {
  display: none;
  position: fixed; inset: 0; z-index: 999999;
  align-items: center; justify-content: center;
  padding: 20px;
}
.rgyd-modal.is-open { display: flex; }
.rgyd-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(15, 23, 41, .55);
  backdrop-filter: blur(2px);
  cursor: pointer;
}
.rgyd-modal__dialog {
  position: relative; background: #fff; border-radius: 18px;
  width: 100%; max-width: 560px;
  max-height: 90vh; overflow: hidden;
  display: flex; flex-direction: column;
  box-shadow: 0 20px 60px rgba(15, 23, 41, .25);
  animation: rgyd-modal-pop 140ms ease;
}
@keyframes rgyd-modal-pop {
  from { opacity: 0; transform: scale(.96); }
  to   { opacity: 1; transform: scale(1); }
}
.rgyd-modal__close {
  position: absolute; top: 14px; right: 14px;
  width: 32px; height: 32px; border-radius: 50%;
  border: 0; background: rgba(15, 23, 41, .06);
  font-size: 1.6em; line-height: 1;
  cursor: pointer; color: #2a2f3d;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0;
}
.rgyd-modal__close:hover { background: rgba(15, 23, 41, .12); }
.rgyd-modal__close:focus-visible { outline: 2px solid #588E31; outline-offset: 2px; }
.rgyd-modal__header {
  padding: 22px 60px 14px 22px;
  border-bottom: 1px solid rgba(15, 23, 41, .07);
}
.rgyd-modal__title { margin: 0; font-size: 1.25em; font-weight: 800; color: #0F1729; }
.rgyd-modal__subtitle { margin: 4px 0 0 0; color: #6F7488; font-size: 0.9em;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.rgyd-modal__body {
  padding: 18px 22px 22px 22px;
  overflow-y: auto; flex: 1 1 auto;
}
.rgyd-modal__body .rgyd-textarea {
  width: 100%; box-sizing: border-box; padding: 10px 12px;
  border: 1px solid rgba(15, 23, 41, .15); border-radius: 10px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.95em;
}
.rgyd-modal__body .rgyd-textarea:focus-visible {
  outline: 2px solid #588E31; outline-offset: 1px; border-color: #588E31;
}

/* When a modal is open we lock body scroll so background doesn't move under it */
body.rgyd-modal-open { overflow: hidden; }

@media (max-width: 560px) {
  .rgyd-modal { padding: 0; align-items: flex-end; }
  .rgyd-modal__dialog {
    max-width: none; width: 100%; max-height: 92vh;
    border-radius: 18px 18px 0 0;
  }
  @keyframes rgyd-modal-pop {
    from { transform: translateY(20px); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
  }
}

/* ==========================================================================
   Cloudflare DNS section in each domain panel
   ========================================================================== */
.rgyd-cf-section {
  margin: 14px 0 0 0; padding: 14px 16px;
  background: #F8FBF4; border: 1px solid rgba(88, 142, 49, .15); border-radius: 12px;
}
.rgyd-cf-section__head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  flex-wrap: wrap; margin-bottom: 10px;
}
.rgyd-cf-section__head .rgyd-domain-panel__label { margin: 0; }
.rgyd-cf-badge {
  display: inline-block; padding: 4px 10px; border-radius: 999px;
  font-size: 0.78em; font-weight: 700; letter-spacing: 0.02em;
}
.rgyd-cf-badge--on  { background: #FDEDD3; color: #B45A07; }
.rgyd-cf-badge--off { background: #ECEEF4; color: #555; }
.rgyd-cf-section__pitch { margin: 6px 0 8px 0; font-size: 0.95em; }
.rgyd-cf-section__benefits {
  margin: 0 0 14px 18px; padding: 0;
  font-size: 0.88em; color: #303030; line-height: 1.55;
}
.rgyd-cf-section__benefits li { margin: 4px 0; }
.rgyd-cf-section__cta { margin: 0; }
.rgyd-cf-section__on {
  display: flex; flex-wrap: wrap; gap: 10px; align-items: center;
}
.rgyd-cf-section__off { margin-left: auto; }
.rgyd-cf-section__fwd-summary {
  flex-basis: 100%; margin-top: 4px; font-size: 0.85em;
}
.rgyd-cf-section__fwd-summary code { word-break: break-all; }
.rgyd-btn-link {
  background: none !important; border: 0 !important; padding: 4px 0 !important;
  color: #B45A07; cursor: pointer; text-decoration: underline; font-weight: 600 !important;
  font-family: inherit; font-size: 0.88em;
}
.rgyd-btn-link:hover { color: #7A3E04; }

/* Wider modal for the DNS records table — the default ns-panel width is tight. */
.rgyd-ns-panel.rgyd-ns-panel--wide { max-width: 920px; }

/* DNS records table */
.rgyd-cf-dns-table th, .rgyd-cf-dns-table td { vertical-align: middle; padding: 8px 10px; }
.rgyd-cf-dns-table .rgyd-input { padding: 6px 8px !important; font-size: 0.9em; min-width: 0; width: 100%; box-sizing: border-box; }
.rgyd-cf-dns-priority { margin-top: 4px; }
.rgyd-cf-dns-actions { white-space: nowrap; }
.rgyd-cf-dns-row { display: contents; }

/* Add-record form below the table */
.rgyd-cf-dns-add { margin-top: 8px; }
.rgyd-cf-dns-add__grid {
  display: grid;
  grid-template-columns: 100px 1fr 1.5fr 130px 90px auto;
  gap: 10px; align-items: end;
}
.rgyd-cf-dns-add__grid .rgyd-label-small {
  display: block; font-size: 0.78em; color: #555; margin-bottom: 4px;
  text-transform: uppercase; letter-spacing: 0.04em;
}
.rgyd-cf-dns-add__grid .rgyd-input,
.rgyd-cf-dns-add__grid select.rgyd-input {
  width: 100%; box-sizing: border-box; padding: 8px 10px !important; font-size: 0.92em;
}
.rgyd-cf-dns-add__grid .rgyd-btn { width: 100%; height: 38px; padding: 0 12px !important; }

/* Proxied toggle (just a basic styled checkbox; orange when on) */
.rgyd-toggle { display: inline-flex; align-items: center; cursor: pointer; }
.rgyd-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.rgyd-toggle span {
  display: inline-block; width: 36px; height: 20px; border-radius: 999px;
  background: #d0d3da; position: relative; transition: background 120ms ease;
}
.rgyd-toggle span::after {
  content: ''; position: absolute; top: 2px; left: 2px;
  width: 16px; height: 16px; border-radius: 50%; background: #fff;
  transition: transform 120ms ease;
}
.rgyd-toggle input:checked + span { background: #F38020; } /* Cloudflare orange */
.rgyd-toggle input:checked + span::after { transform: translateX(16px); }
.rgyd-toggle input:focus-visible + span { outline: 2px solid #588E31; outline-offset: 2px; }

@media (max-width: 720px) {
  .rgyd-cf-dns-add__grid { grid-template-columns: 1fr 1fr; }
  .rgyd-cf-dns-table thead { display: none; }
  .rgyd-cf-dns-table tr {
    display: block; padding: 10px 0;
    border-bottom: 1px solid rgba(0,0,0,.08);
  }
  .rgyd-cf-dns-table td {
    display: flex; justify-content: space-between; gap: 10px;
    padding: 4px 0; border: 0;
  }
  .rgyd-cf-dns-table td::before {
    content: attr(data-label); font-weight: 600; color: #555; font-size: 0.85em;
    flex: 0 0 80px; align-self: center;
  }
}

/* ==========================================================================
   Public service status page ([rgyd_status])
   ========================================================================== */
.rgyd-status { max-width: 760px; margin: 0 auto; }
.rgyd-status__overall {
  display: flex; align-items: center; gap: 18px;
  padding: 22px 26px; border-radius: 16px; margin-bottom: 18px;
  background: #fff; border: 1px solid rgba(0,0,0,.08);
}
.rgyd-status__overall-icon { font-size: 2em; line-height: 1; flex: 0 0 auto; }
.rgyd-status__overall-title { font-size: 1.4em; font-weight: 700; margin-bottom: 2px; }
.rgyd-status__overall-sub { color: #4f4f4f; font-size: 0.95em; }
.rgyd-status--ok   .rgyd-status__overall-icon { color: #588E31; }
.rgyd-status--warn .rgyd-status__overall-icon { color: #d97706; }
.rgyd-status--err  .rgyd-status__overall-icon { color: #c2410c; }
.rgyd-status__overall.rgyd-status--ok   { border-left: 4px solid #588E31; }
.rgyd-status__overall.rgyd-status--warn { border-left: 4px solid #d97706; }
.rgyd-status__overall.rgyd-status--err  { border-left: 4px solid #c2410c; }

.rgyd-status__components { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rgyd-status__component {
  padding: 14px 18px; background: #fff; border-radius: 12px; border: 1px solid rgba(0,0,0,.08);
}
.rgyd-status__component.rgyd-status--ok   { border-left: 3px solid #588E31; }
.rgyd-status__component.rgyd-status--warn { border-left: 3px solid #d97706; }
.rgyd-status__component.rgyd-status--err  { border-left: 3px solid #c2410c; }
.rgyd-status__component-row {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap;
}
.rgyd-status__component-label { font-weight: 700; font-size: 1.02em; }
.rgyd-status__component-badge {
  font-size: 0.85em; font-weight: 700; padding: 4px 10px; border-radius: 999px;
}
.rgyd-status--ok   .rgyd-status__component-badge { background: rgba(88, 142, 49, 0.12); color: #15803D; }
.rgyd-status--warn .rgyd-status__component-badge { background: #fef3c7; color: #92400e; }
.rgyd-status--err  .rgyd-status__component-badge { background: #FFEDD5; color: #9A3412; }
.rgyd-status__component-note { margin-top: 6px; color: #555; font-size: 0.9em; }
.rgyd-status__healing {
  margin-top: 14px; padding: 12px 14px;
  background: #EFF6FF; border: 1px solid #BFDBFE; border-radius: 10px;
  color: #1E3A8A; font-size: 0.92em; line-height: 1.5;
}
.rgyd-status__footer { margin-top: 14px; color: #777; font-size: 0.82em; text-align: center; }

/* ==========================================================================
   Domain History modal — per-domain activity log
   ========================================================================== */
.rgyd-history-list {
  list-style: none; margin: 0; padding: 0;
}
.rgyd-history-item {
  display: flex; flex-wrap: wrap; gap: 4px 16px;
  padding: 12px 0; border-bottom: 1px solid rgba(0,0,0,.06);
}
.rgyd-history-item:last-child { border-bottom: 0; }
.rgyd-history-item__when {
  flex: 0 0 180px; font-size: 0.82em; color: #6a6a6a;
  text-transform: uppercase; letter-spacing: 0.04em;
}
.rgyd-history-item__what {
  flex: 1 1 280px; min-width: 0; font-size: 0.95em; color: #202020; word-break: break-word;
}
@media (max-width: 560px) {
  .rgyd-history-item { flex-direction: column; gap: 2px; padding: 10px 0; }
  .rgyd-history-item__when { flex: 0 0 auto; }
}

/* ==========================================================================
   Auth code one-time reveal panel
   ========================================================================== */
.rgyd-authcode-panel {
  margin: 0 0 16px 0; padding: 14px 16px;
  background: linear-gradient(180deg, #FFFCEB 0%, #FFF8DC 100%);
  border: 1px solid #F2D26B; border-radius: 12px;
}
.rgyd-authcode-panel__head { font-size: 1em; margin-bottom: 4px; color: #5a4500; }
.rgyd-authcode-panel__hint { margin: 0 0 12px 0; font-size: 0.9em; color: #5a4500; }
.rgyd-authcode-panel__value-row {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
}
.rgyd-authcode-panel__code {
  flex: 1 1 280px; min-width: 0; padding: 10px 14px;
  background: #fff; border: 1px solid rgba(0,0,0,.2); border-radius: 8px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 1em; color: #202020;
  user-select: all; word-break: break-all;
}
.rgyd-authcode-panel .rgyd-btn { padding: 8px 16px !important; }
.rgyd-authcode-panel .rgyd-authcode-copy.is-copied { background: #2e7d32 !important; color: #fff !important; border-color: #2e7d32 !important; }
@media (max-width: 480px) {
  .rgyd-authcode-panel__value-row { flex-direction: column; align-items: stretch; }
  .rgyd-authcode-panel__code { font-size: 0.92em; }
  .rgyd-authcode-panel .rgyd-btn { width: 100%; }
}

/* =====================================================================
   New plugin: setup page, 2FA, registration form, payment redirect.
   ===================================================================== */

.rgyd-setup-body { background: #F5F7FB; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
.rgyd-setup { max-width: 480px; margin: 60px auto; padding: 32px; background: #fff; border-radius: 12px; box-shadow: 0 2px 20px rgba(0,0,0,.06); }
.rgyd-setup h1 { margin-top: 0; }
.rgyd-setup label { display: block; margin: 12px 0; font-weight: 600; }
.rgyd-setup input[type=password], .rgyd-setup input[type=text] { width: 100%; padding: 10px; border: 1px solid #DDD; border-radius: 6px; font-size: 15px; }

.rgyd-twofactor { max-width: 640px; }
.rgyd-2fa-picker { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; margin: 16px 0; }
.rgyd-2fa-picker .rgyd-2fa-method { background: #fff; border: 1px solid #E3E3F1; border-radius: 10px; padding: 16px; }
.rgyd-2fa-picker h3 { margin-top: 0; }
.rgyd-2fa-qr { margin: 16px 0; text-align: center; }
.rgyd-2fa-qr svg { background: #fff; padding: 8px; border-radius: 8px; }
.rgyd-2fa-secret code { background: #F0F7E8; padding: 4px 8px; border-radius: 4px; font-size: 13px; }
.rgyd-2fa-verify { margin: 16px 0; }
.rgyd-2fa-verify input[type=text] { font-size: 18px; padding: 10px; width: 140px; letter-spacing: 0.2em; text-align: center; border: 1px solid #DDD; border-radius: 6px; }
.rgyd-backup-codes { background: #F0F7E8; padding: 16px; border-radius: 8px; font-family: ui-monospace, monospace; font-size: 16px; line-height: 1.8; }

@media (max-width: 680px) {
  .rgyd-2fa-picker { grid-template-columns: 1fr; }
}

/* Registration form. */
.rgyd-register-form section { background: #F5F7FB; padding: 16px; border-radius: 10px; margin: 16px 0; }
.rgyd-register-form .rgyd-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rgyd-register-form label { display: block; margin-bottom: 12px; font-weight: 600; }
.rgyd-register-form input[type=text], .rgyd-register-form input[type=email], .rgyd-register-form input[type=tel], .rgyd-register-form select { width: 100%; padding: 8px 10px; border: 1px solid #DDD; border-radius: 6px; font-size: 14px; }
.rgyd-register-form fieldset.rgyd-radio-set { border: none; padding: 0; margin: 12px 0; }
.rgyd-register-form fieldset.rgyd-radio-set legend { font-weight: 600; margin-bottom: 8px; }
.rgyd-register-form fieldset.rgyd-radio-set label { display: inline-block; margin-right: 16px; font-weight: 400; }
.rgyd-admin-fields { display: none; margin-top: 12px; padding-top: 12px; border-top: 1px solid #E3E3F1; }

@media (max-width: 680px) {
  .rgyd-register-form .rgyd-two-col { grid-template-columns: 1fr; }
}

/* Payment redirect. */
.rgyd-payment-redirect { max-width: 640px; }
.rgyd-payment-summary { background: #F5F7FB; padding: 12px 16px; border-radius: 8px; margin: 16px 0; }
.rgyd-payment-message { padding: 16px 0; }

/* Dashboard. */
.rgyd-mydomains-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
.rgyd-mydomains-header h1 { margin: 0; }
.rgyd-empty { text-align: center; padding: 48px 16px; background: #F5F7FB; border-radius: 12px; color: #5A5E6B; }
.rgyd-domain-panel { background: #fff; border: 1px solid #E3E3F1; border-radius: 12px; padding: 16px; margin: 16px 0; box-shadow: 0 1px 3px rgba(0,0,0,.03); }
.rgyd-domain-header { display: flex; justify-content: space-between; align-items: center; }
.rgyd-domain-header h2 { margin: 0; }
.rgyd-domain-status { font-size: 12px; padding: 4px 8px; border-radius: 999px; }
.rgyd-status-ok { background: rgba(88, 142, 49, 0.12); color: #15803D; }
.rgyd-status-warn { background: #FFF4D6; color: #8A6A00; }
/* No red — amber on the public-facing status badges. */
.rgyd-status-err { background: #FFEDD5; color: #9A3412; }
.rgyd-status-pending { background: #EAF3E0; color: #467024; }
.rgyd-info-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin: 12px 0; }
.rgyd-info-row > div { padding: 8px 12px; background: #F5F7FB; border-radius: 6px; }
.rgyd-info-row .rgyd-label { display: block; font-size: 11px; text-transform: uppercase; color: #5A5E6B; }
.rgyd-tabs { display: flex; gap: 8px; overflow-x: auto; padding: 8px 0; }
.rgyd-tab-btn { background: transparent; border: 1px solid #E3E3F1; border-radius: 999px; padding: 6px 12px; font-size: 14px; cursor: pointer; }
.rgyd-tab-btn.is-active { background: #588E31; color: #fff; border-color: #588E31; }
.rgyd-tab-panel { display: none; padding: 16px 0; border-top: 1px solid #E3E3F1; }
.rgyd-tab-panel.is-active { display: block; }
.rgyd-ns-list { list-style: none; padding: 0; }
.rgyd-ns-list li { padding: 6px 0; }
.rgyd-history-list { list-style: none; padding: 0; }
.rgyd-history-list li { padding: 6px 0; border-bottom: 1px solid #F0F0F8; }
.rgyd-services-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.rgyd-services-list li { display: flex; align-items: center; gap: 12px; padding: 12px; background: #F5F7FB; border-radius: 8px; }
.rgyd-service-icon { font-size: 24px; }
.rgyd-service-label { flex: 1; font-weight: 600; }
.rgyd-upsell-grid { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; margin: 16px 0; }
.rgyd-upsell-card { background: #F5F7FB; padding: 16px; border-radius: 10px; }
.rgyd-upsell-card h4 { margin-top: 0; }

@media (max-width: 780px) {
  .rgyd-info-row { grid-template-columns: 1fr 1fr; }
  .rgyd-upsell-grid { grid-template-columns: 1fr; }
}

/* Filter bar (admin). */
.rgyd-filter-bar a { padding: 6px 10px; border-radius: 999px; text-decoration: none; }
.rgyd-filter-bar a.rgyd-filter-active { background: #588E31; color: #fff; }

/* Overview tiles. */
.rgyd-overview-grid { display: grid; gap: 16px; grid-template-columns: repeat(4, 1fr); margin: 16px 0; }
.rgyd-overview-tile { background: #fff; border: 1px solid #E3E3F1; border-radius: 10px; padding: 16px; text-align: center; }
.rgyd-overview-tile strong { display: block; font-size: 28px; line-height: 1; }
.rgyd-overview-tile span { display: block; margin-top: 4px; color: #5A5E6B; font-size: 13px; }
@media (max-width: 980px) {
  .rgyd-overview-grid { grid-template-columns: repeat(2, 1fr); }
}

/* =====================================================================
   v1.0.4 — registration-form polish + Elementor / theme inheritance.

   The plugin's public pages now pick up colour and typography from the
   active theme (Elementor sets `--e-global-color-primary`, etc.) and
   fall back to our defaults when those variables aren't defined.
   ===================================================================== */

:root {
	/* Registry brand green is the canonical primary — do not inherit Elementor's
	   primary here, the operator explicitly wants #588E31 across every plugin
	   surface (buttons, focus rings, badges, links). Fonts still cascade from
	   the active theme. */
	--rgyd-primary: #588E31;
	--rgyd-primary-hover: #467024;
	--rgyd-primary-soft: rgba(88, 142, 49, 0.10);
	--rgyd-primary-ring: rgba(88, 142, 49, 0.28);
	--rgyd-text: var(--e-global-color-text, var(--wp--preset--color--foreground, #202224));
	--rgyd-text-muted: #5A5E6B;
	--rgyd-surface: #FFFFFF;
	--rgyd-surface-soft: #F5F8F3;
	--rgyd-border: #DDE1E6;
	--rgyd-border-soft: #EDEFF1;
	--rgyd-radius: 12px;
	--rgyd-radius-lg: 16px;
	--rgyd-font: var(--e-global-typography-text-font-family, var(--wp--preset--font-family--body, inherit));
	--rgyd-font-heading: var(--e-global-typography-primary-font-family, var(--wp--preset--font-family--heading, inherit));
}

/* Frontend wrapper — inherits the theme's font / colour by default. */
.rgyd-my-domains,
.rgyd-register-form,
.rgyd-payment-redirect,
.rgyd-twofactor,
.rgyd-setup {
	font-family: var(--rgyd-font);
	color: var(--rgyd-text);
}

/* Buttons everywhere on the frontend use the theme primary. */
.rgyd-my-domains .rgyd-btn-primary,
.rgyd-register-form .rgyd-btn-primary,
.rgyd-payment-redirect .rgyd-btn-primary,
.rgyd-twofactor .rgyd-btn-primary,
.rgyd-setup .rgyd-btn-primary {
	background: #588E31;
	color: #FFFFFF;
	border-color: #588E31;
}
.rgyd-my-domains .rgyd-btn-primary:hover,
.rgyd-register-form .rgyd-btn-primary:hover,
.rgyd-payment-redirect .rgyd-btn-primary:hover,
.rgyd-twofactor .rgyd-btn-primary:hover,
.rgyd-setup .rgyd-btn-primary:hover {
	background: #467024;
	color: #FFFFFF;
	filter: brightness(0.95);
}
.rgyd-my-domains .rgyd-btn-secondary,
.rgyd-register-form .rgyd-btn-secondary,
.rgyd-twofactor .rgyd-btn-secondary,
.rgyd-setup .rgyd-btn-secondary {
	background: var(--rgyd-surface);
	color: #588E31;
	border: 1px solid #588E31;
}

/* ── My Domains: drop the heading, make the action subtle ─────── */
.rgyd-mydomains-actions { display: flex; justify-content: flex-end; margin: 0 0 16px 0; }
.rgyd-register-link {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 13px; font-weight: 500;
	color: #588E31;
	text-decoration: none;
	padding: 6px 10px;
	border-radius: 8px;
	transition: background .15s ease;
}
.rgyd-register-link:hover { background: rgba(0, 0, 0, 0.04); }

/* ── Registration form ────────────────────────────────────────── */
.rgyd-register-form {
	max-width: 780px;
	margin: 0;            /* left-aligned, not centred */
	text-align: left;
}
.rgyd-register-form * { text-align: left; }
.rgyd-register-form h2,
.rgyd-register-form .rgyd-section__title {
	font-family: var(--rgyd-font-heading);
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 16px 0;
	color: var(--rgyd-text);
	letter-spacing: -0.01em;
}
.rgyd-section {
	background: var(--rgyd-surface);
	border: 1px solid var(--rgyd-border-soft);
	border-radius: var(--rgyd-radius-lg);
	padding: 22px 24px;
	margin: 0 0 16px 0;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .03);
}
.rgyd-section--submit {
	background: linear-gradient(135deg, rgba(88, 142, 49, .04) 0%, rgba(88, 142, 49, .08) 100%);
	border-color: rgba(79, 70, 229, .2);
}

.rgyd-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.rgyd-field label { font-size: 13px; font-weight: 600; color: var(--rgyd-text); }
.rgyd-field input[type=text],
.rgyd-field input[type=email],
.rgyd-field input[type=tel],
.rgyd-field input[type=url],
.rgyd-field input[type=password],
.rgyd-field select,
.rgyd-field textarea {
	width: 100%;
	padding: 10px 12px;
	font-family: inherit;
	font-size: 15px;
	color: var(--rgyd-text);
	background: var(--rgyd-surface);
	border: 1px solid var(--rgyd-border);
	border-radius: 10px;
	transition: border-color .15s ease, box-shadow .15s ease;
	box-sizing: border-box;
}
.rgyd-field input:focus,
.rgyd-field select:focus,
.rgyd-field textarea:focus {
	border-color: #588E31;
	box-shadow: 0 0 0 3px rgba(79, 70, 229, .15);
	outline: none;
}

.rgyd-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.rgyd-field-grid--2to1 { grid-template-columns: 2fr 1fr; }
@media (max-width: 640px) {
	.rgyd-field-grid,
	.rgyd-field-grid--2to1 { grid-template-columns: 1fr; }
}

.rgyd-form-hint { font-size: 12px; color: var(--rgyd-text-muted); margin: -6px 0 14px 0; }

/* Payment selector — coloured pill cards, not a stacked radio list. */
.rgyd-payment-options { display: flex; flex-wrap: wrap; gap: 10px; }
.rgyd-payment-option {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 12px 18px;
	background: var(--rgyd-surface);
	border: 2px solid var(--rgyd-border);
	border-radius: 10px;
	font-weight: 600;
	font-size: 14px;
	cursor: pointer;
	transition: all .15s ease;
	min-width: 140px;
}
.rgyd-payment-option:hover { border-color: #588E31; }
.rgyd-payment-option input[type=radio] { accent-color: #588E31; }
.rgyd-payment-option:has(input:checked),
.rgyd-payment-option.is-checked {
	border-color: #588E31;
	background: rgba(79, 70, 229, .04);
	box-shadow: 0 2px 8px rgba(79, 70, 229, .12);
}

/* Radio "pill" buttons for Yes/No questions and same-as-registrant. */
.rgyd-radio-set { border: none; padding: 0; margin: 16px 0; }
.rgyd-radio-set legend { font-weight: 600; font-size: 14px; margin-bottom: 10px; color: var(--rgyd-text); padding: 0; }
.rgyd-radio-pill {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 8px 16px;
	background: var(--rgyd-surface);
	border: 2px solid var(--rgyd-border);
	border-radius: 99px;
	font-weight: 500;
	font-size: 14px;
	cursor: pointer;
	transition: all .15s ease;
	margin-right: 8px;
}
.rgyd-radio-pill:hover { border-color: #588E31; }
.rgyd-radio-pill input[type=radio] { accent-color: #588E31; }
.rgyd-radio-pill:has(input:checked) {
	border-color: #588E31;
	background: rgba(79, 70, 229, .06);
	color: #588E31;
}

/* Submit section. */
.rgyd-checkbox-line { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 14px; font-size: 14px; }
.rgyd-checkbox-line input[type=checkbox] { margin-top: 3px; accent-color: #588E31; }
.rgyd-checkbox-line a { color: #588E31; font-weight: 600; }

.rgyd-btn--full { width: 100%; padding: 14px 22px; font-size: 16px; }

/* ── Dashboard styling that uses theme variables ─────────────── */
.rgyd-my-domains .rgyd-tab-btn.is-active {
	background: #588E31;
	color: #FFFFFF;
	border-color: #588E31;
}
.rgyd-my-domains .rgyd-tab-btn:hover:not(.is-active) {
	border-color: #588E31;
}
.rgyd-my-domains a { color: #588E31; }

/* =====================================================================
   v1.0.8 — Brand green + filled-pill buttons + mobile centring.
   This block is appended LAST so it wins the cascade for every plugin
   surface (dashboard, 2FA, register, payment redirect, WHOIS).
   ===================================================================== */

/* All plugin wrappers — consistent breathing room + mobile centring. */
.rgyd-my-domains,
.rgyd-twofactor,
.rgyd-setup,
.rgyd-register-form,
.rgyd-payment-redirect,
.rgyd-confirm-page {
	box-sizing: border-box;
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	padding: 24px 20px 48px 20px;
	color: var(--rgyd-text);
	font-family: var(--rgyd-font);
}
@media (max-width: 700px) {
	.rgyd-my-domains,
	.rgyd-twofactor,
	.rgyd-setup,
	.rgyd-register-form,
	.rgyd-payment-redirect,
	.rgyd-confirm-page {
		padding: 16px 14px 36px 14px;
	}
}

/* Filled pill buttons everywhere. Override the older flat-square rules.
   Primary is always brand green; secondary is white with green text/border;
   ghost is a subtle hover-only variant. */
.rgyd-my-domains .rgyd-btn,
.rgyd-twofactor .rgyd-btn,
.rgyd-setup .rgyd-btn,
.rgyd-register-form .rgyd-btn,
.rgyd-payment-redirect .rgyd-btn,
.rgyd-confirm-page .rgyd-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 11px 22px !important;
	border-radius: 999px !important;
	font-weight: 600 !important;
	font-size: 14px;
	line-height: 1.2;
	text-decoration: none !important;
	border: 1.5px solid transparent !important;
	cursor: pointer;
	transition: transform .14s ease, box-shadow .14s ease, background-color .14s ease, border-color .14s ease, color .14s ease;
	box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.rgyd-my-domains .rgyd-btn-primary,
.rgyd-twofactor .rgyd-btn-primary,
.rgyd-setup .rgyd-btn-primary,
.rgyd-register-form .rgyd-btn-primary,
.rgyd-payment-redirect .rgyd-btn-primary,
.rgyd-confirm-page .rgyd-btn-primary {
	background: #588E31 !important;
	color: #FFFFFF !important;
	border-color: #588E31 !important;
}
.rgyd-my-domains .rgyd-btn-primary:hover,
.rgyd-twofactor .rgyd-btn-primary:hover,
.rgyd-setup .rgyd-btn-primary:hover,
.rgyd-register-form .rgyd-btn-primary:hover,
.rgyd-payment-redirect .rgyd-btn-primary:hover,
.rgyd-confirm-page .rgyd-btn-primary:hover {
	background: #467024 !important;
	border-color: #467024 !important;
	transform: translateY(-1px);
	box-shadow: 0 6px 14px rgba(88, 142, 49, 0.28);
}
.rgyd-my-domains .rgyd-btn-secondary,
.rgyd-twofactor .rgyd-btn-secondary,
.rgyd-setup .rgyd-btn-secondary,
.rgyd-register-form .rgyd-btn-secondary,
.rgyd-payment-redirect .rgyd-btn-secondary,
.rgyd-confirm-page .rgyd-btn-secondary {
	background: #FFFFFF !important;
	color: #588E31 !important;
	border-color: #588E31 !important;
}
.rgyd-my-domains .rgyd-btn-secondary:hover,
.rgyd-twofactor .rgyd-btn-secondary:hover,
.rgyd-setup .rgyd-btn-secondary:hover,
.rgyd-register-form .rgyd-btn-secondary:hover,
.rgyd-payment-redirect .rgyd-btn-secondary:hover,
.rgyd-confirm-page .rgyd-btn-secondary:hover {
	background: rgba(88, 142, 49, 0.10) !important;
	border-color: #467024 !important;
	color: #467024 !important;
	transform: translateY(-1px);
}
.rgyd-my-domains .rgyd-btn:focus-visible,
.rgyd-twofactor .rgyd-btn:focus-visible,
.rgyd-setup .rgyd-btn:focus-visible,
.rgyd-register-form .rgyd-btn:focus-visible,
.rgyd-payment-redirect .rgyd-btn:focus-visible,
.rgyd-confirm-page .rgyd-btn:focus-visible {
	outline: 3px solid rgba(88, 142, 49, 0.28) !important;
	outline-offset: 2px;
}

/* Make the dashboard's compact panel buttons read as pills too — they were
   the most visible "indigo" surface in the screenshot the user flagged. */
.rgyd-panel-btn {
	border-radius: 999px !important;
	padding: 8px 16px !important;
	border: 1.5px solid #588E31 !important;
	color: #588E31 !important;
	background: #FFFFFF !important;
	font-weight: 600;
	transition: transform .14s ease, background-color .14s ease, color .14s ease, box-shadow .14s ease;
}
.rgyd-panel-btn:hover {
	background: #588E31 !important;
	color: #FFFFFF !important;
	transform: translateY(-1px);
	box-shadow: 0 6px 14px rgba(88, 142, 49, 0.28);
}
.rgyd-panel-btn--warn {
	border-color: #B45309 !important;
	color: #B45309 !important;
}
.rgyd-panel-btn--warn:hover {
	background: #B45309 !important;
	color: #FFFFFF !important;
}

/* Inputs — consistent border + green focus ring. */
.rgyd-my-domains input[type="text"],
.rgyd-my-domains input[type="email"],
.rgyd-my-domains input[type="tel"],
.rgyd-my-domains textarea,
.rgyd-my-domains select,
.rgyd-twofactor input[type="text"],
.rgyd-twofactor input[type="email"],
.rgyd-twofactor input[type="tel"],
.rgyd-twofactor input[type="password"],
.rgyd-setup input[type="text"],
.rgyd-setup input[type="email"],
.rgyd-setup input[type="tel"],
.rgyd-setup input[type="password"],
.rgyd-register-form input[type="text"],
.rgyd-register-form input[type="email"],
.rgyd-register-form input[type="tel"],
.rgyd-register-form textarea,
.rgyd-register-form select {
	width: 100%;
	box-sizing: border-box;
	padding: 12px 14px;
	border: 1.5px solid #D1D5DB;
	border-radius: 10px;
	background: #FFFFFF;
	color: var(--rgyd-text);
	font: inherit;
	transition: border-color .12s ease, box-shadow .12s ease;
}
.rgyd-my-domains input:focus,
.rgyd-my-domains textarea:focus,
.rgyd-my-domains select:focus,
.rgyd-twofactor input:focus,
.rgyd-setup input:focus,
.rgyd-register-form input:focus,
.rgyd-register-form textarea:focus,
.rgyd-register-form select:focus {
	outline: none;
	border-color: #588E31;
	box-shadow: 0 0 0 3px rgba(88, 142, 49, 0.28);
}

/* Cards — the "container" surfaces used by 2FA, register, payment redirect. */
.rgyd-my-domains .rgyd-card,
.rgyd-twofactor .rgyd-card,
.rgyd-setup .rgyd-card,
.rgyd-register-form .rgyd-card,
.rgyd-payment-redirect .rgyd-card,
.rgyd-confirm-page .rgyd-card {
	background: #FFFFFF;
	border: 1px solid #E5E7EB;
	border-radius: var(--rgyd-radius-lg);
	padding: 24px;
	box-shadow: 0 2px 6px rgba(0,0,0,.04);
	margin-bottom: 18px;
}
@media (max-width: 560px) {
	.rgyd-my-domains .rgyd-card,
	.rgyd-twofactor .rgyd-card,
	.rgyd-setup .rgyd-card,
	.rgyd-register-form .rgyd-card,
	.rgyd-payment-redirect .rgyd-card,
	.rgyd-confirm-page .rgyd-card {
		padding: 18px 16px;
	}
}

/* 2FA setup specifically — bigger inputs, cleaner spacing, centred OTP boxes. */
.rgyd-twofactor h1, .rgyd-setup h1 { margin: 0 0 6px 0; font-size: 1.6rem; }
.rgyd-twofactor p, .rgyd-setup p { color: var(--rgyd-text-muted); margin: 0 0 14px 0; }
.rgyd-twofactor .rgyd-otp-input,
.rgyd-setup .rgyd-otp-input {
	width: 100%;
	max-width: 280px;
	padding: 14px 16px !important;
	font-size: 22px !important;
	letter-spacing: 8px;
	text-align: center;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	border-radius: 12px !important;
}
.rgyd-twofactor .rgyd-method-card,
.rgyd-setup .rgyd-method-card {
	border: 1.5px solid #E5E7EB;
	border-radius: 14px;
	padding: 18px;
	background: #FFFFFF;
	transition: border-color .12s ease, box-shadow .12s ease, transform .12s ease;
}
.rgyd-twofactor .rgyd-method-card:hover,
.rgyd-setup .rgyd-method-card:hover {
	border-color: #588E31;
	box-shadow: 0 4px 12px rgba(88, 142, 49, 0.28);
	transform: translateY(-1px);
}
.rgyd-twofactor .rgyd-method-card.is-selected,
.rgyd-setup .rgyd-method-card.is-selected {
	border-color: #588E31;
	background: rgba(88, 142, 49, 0.10);
}

/* Dashboard panel: make sure it never gets pushed off-centre on mobile.
   Some themes float the entry-content; this resets it inside the wrapper. */
.rgyd-my-domains,
.rgyd-my-domains * { box-sizing: border-box; }
.rgyd-my-domains .rgyd-domain-panel {
	margin-left: auto;
	margin-right: auto;
	max-width: 100%;
}
@media (max-width: 700px) {
	.rgyd-my-domains .rgyd-domain-panel { padding: 18px 14px; }
	.rgyd-my-domains .rgyd-panel-action-bar { flex-wrap: wrap; gap: 8px; justify-content: stretch; }
	.rgyd-my-domains .rgyd-panel-btn { flex: 1 1 calc(50% - 4px); min-width: 0; }
}

/* Links inside any plugin wrapper inherit brand green. */
.rgyd-my-domains a,
.rgyd-twofactor a,
.rgyd-setup a,
.rgyd-register-form a,
.rgyd-payment-redirect a,
.rgyd-confirm-page a { color: #588E31; }

.rgyd-my-domains a:hover,
.rgyd-twofactor a:hover,
.rgyd-setup a:hover,
.rgyd-register-form a:hover,
.rgyd-payment-redirect a:hover,
.rgyd-confirm-page a:hover { color: #467024; }

/* 2FA setup / challenge — targets the existing markup. The PHP renderer
   uses `.rgyd-2fa-picker`, `.rgyd-2fa-method`, `.rgyd-2fa-verify`,
   `.rgyd-2fa-qr` — style those directly rather than editing the PHP. */
.rgyd-twofactor h1, .rgyd-twofactor h2, .rgyd-twofactor h3 {
	font-family: var(--rgyd-font-heading);
	color: var(--rgyd-text);
}
.rgyd-twofactor h2 { font-size: 1.4rem; margin: 0 0 8px 0; }
.rgyd-twofactor h3 { font-size: 1.1rem; margin: 0 0 6px 0; }
.rgyd-twofactor p { color: var(--rgyd-text-muted); margin: 0 0 14px 0; line-height: 1.55; }

.rgyd-2fa-picker {
	display: grid;
	gap: 14px;
	grid-template-columns: 1fr 1fr;
	margin-top: 16px;
}
@media (max-width: 640px) { .rgyd-2fa-picker { grid-template-columns: 1fr; } }
.rgyd-2fa-method {
	background: #FFFFFF;
	border: 1.5px solid #E5E7EB;
	border-radius: 14px;
	padding: 22px 20px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	transition: border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}
.rgyd-2fa-method:hover {
	border-color: #588E31;
	box-shadow: 0 6px 16px rgba(88, 142, 49, 0.28);
	transform: translateY(-1px);
}
.rgyd-2fa-method h3 { margin: 0 0 4px 0; }
.rgyd-2fa-method p { margin: 0 0 10px 0; flex: 1; }
.rgyd-2fa-method .rgyd-btn { align-self: flex-start; margin-top: 4px; }

/* 2FA challenge page — present it as a centred dialog, NOT left-aligned in
   a 1100px wrapper. The wrapper rule earlier in this file gives the
   .rgyd-twofactor block a 1100px max-width; we override it here so the
   challenge form is a friendly centred card. */
.rgyd-twofactor {
	max-width: 460px !important;
	margin: 0 auto !important;
	text-align: center;
}
.rgyd-twofactor h1,
.rgyd-twofactor h2,
.rgyd-twofactor p { text-align: center; }
.rgyd-twofactor .rgyd-2fa-picker { text-align: left; }

.rgyd-2fa-verify {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 360px;
	margin: 18px auto;   /* centred horizontally */
	align-items: center;
}
.rgyd-2fa-verify label {
	font-weight: 600;
	color: var(--rgyd-text);
	display: block;
	text-align: center;
	width: 100%;
}
.rgyd-2fa-verify input[name="rgyd_otp"] {
	width: 100%;
	max-width: 320px;
	padding: 14px 16px !important;
	font-size: 22px !important;
	letter-spacing: 6px;
	text-align: center;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	border: 1.5px solid #D1D5DB;
	border-radius: 12px !important;
	background: #FFFFFF;
}
.rgyd-2fa-verify input[name="rgyd_otp"]:focus {
	outline: none;
	border-color: #588E31;
	box-shadow: 0 0 0 3px rgba(88, 142, 49, 0.28);
}
/* Continue button — centred at all viewport sizes. */
.rgyd-2fa-verify .rgyd-btn {
	align-self: center !important;
	margin-top: 6px;
}
@media (max-width: 560px) {
	.rgyd-2fa-verify .rgyd-btn {
		width: 100%;
		max-width: 320px;
	}
}

.rgyd-2fa-qr {
	background: #F8FAF4;
	border: 1px solid #E5E7EB;
	border-radius: 14px;
	padding: 18px;
	margin: 16px 0;
	text-align: center;
}
.rgyd-2fa-qr svg { max-width: 240px; height: auto; display: inline-block; }
.rgyd-2fa-secret code {
	display: inline-block;
	padding: 4px 10px;
	background: #FFFFFF;
	border: 1px solid #E5E7EB;
	border-radius: 6px;
	letter-spacing: 2px;
	user-select: all;
}

/* Setup screen (set-password page) wrapped by `.rgyd-setup`. Centre it on
   the page, make the form inputs full-width and large. */
body.rgyd-setup-body {
	background: var(--rgyd-surface-soft);
	margin: 0;
	min-height: 100vh;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 40px 16px;
	font-family: var(--rgyd-font);
}
.rgyd-setup {
	max-width: 460px;
	width: 100%;
	background: #FFFFFF;
	border: 1px solid #E5E7EB;
	border-radius: 16px;
	padding: 28px 26px;
	box-shadow: 0 10px 30px rgba(0,0,0,.06);
}
.rgyd-setup h1 {
	font-size: 1.5rem;
	margin: 0 0 12px 0;
	color: var(--rgyd-text);
}
.rgyd-setup label {
	display: block;
	margin-bottom: 12px;
	font-weight: 600;
	color: var(--rgyd-text);
}
.rgyd-setup label input {
	margin-top: 6px;
	font-weight: 400;
}
@media (max-width: 480px) {
	.rgyd-setup { padding: 22px 18px; border-radius: 14px; }
}

/* Notices — for the setup + 2FA pages. */
.rgyd-notice {
	padding: 12px 14px;
	border-radius: 10px;
	margin: 0 0 14px 0;
	font-size: 14px;
	line-height: 1.5;
}
.rgyd-notice--error { background: #FFEDD5; color: #9A3412; border: 1px solid #FDBA74; }
.rgyd-notice--success { background: #F0FDF4; color: #166534; border: 1px solid #86EFAC; }
.rgyd-notice--info { background: rgba(88, 142, 49, 0.10); color: #467024; border: 1px solid #588E31; }

/* Register form (v1.0.8) — left-aligned, single column, brand green, payment
   cards that auto-submit on click. */
.rgyd-register-form {
	text-align: left !important;
	max-width: 780px !important;
	margin: 0 !important;          /* left-aligned, NOT centred */
	padding: 24px 0 48px 0;
}
@media (max-width: 820px) {
	.rgyd-register-form { padding: 16px 12px 36px 12px; max-width: 100% !important; }
}
.rgyd-register-form__section { margin-bottom: 18px; }
.rgyd-register-form h2 {
	font-family: var(--rgyd-font-heading);
	font-size: 1.2rem;
	margin: 0 0 4px 0;
	color: var(--rgyd-text);
}
.rgyd-register-form .rgyd-field { margin-bottom: 14px; }
.rgyd-register-form .rgyd-field label {
	display: block;
	font-weight: 600;
	margin-bottom: 6px;
	color: var(--rgyd-text);
	font-size: 14px;
}
.rgyd-register-form .rgyd-field-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}
.rgyd-register-form .rgyd-field-grid--2to1 {
	grid-template-columns: 2fr 1fr;
}
@media (max-width: 640px) {
	.rgyd-register-form .rgyd-field-grid,
	.rgyd-register-form .rgyd-field-grid--2to1 { grid-template-columns: 1fr; }
}
.rgyd-register-form .rgyd-checkbox-line {
	display: flex; align-items: flex-start; gap: 10px;
	background: rgba(88, 142, 49, 0.10);
	border-radius: 10px; padding: 12px 14px;
	font-size: 14px; line-height: 1.5;
}
.rgyd-register-form .rgyd-checkbox-line input[type="checkbox"] {
	margin-top: 3px;
	accent-color: #588E31;
}
.rgyd-register-form .rgyd-checkbox-line a {
	color: #588E31;
	font-weight: 600;
}

/* Payment cards — the clickable element that opens the confirm modal and
   submits the form. !important is used liberally because page builders
   (Elementor, theme overrides, etc.) routinely force `button { display: ...
   }` and `button { background: ... }` declarations with higher specificity
   than ours, which previously caused the inner spans to collapse onto a
   single line and the brand colour to be ignored. */
.rgyd-register-form .rgyd-payment-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
	gap: 14px !important;
	margin-top: 12px !important;
}
/* The hex is hard-coded (not `#588E31`) because Elementor and a
   number of themes redefine the cascading custom-property at the body level
   based on their own "primary colour" picker — which on the user's site
   resolves to a pink/magenta. Pinning the literal #588E31 here means the
   plugin's payment cards always render in the registry's brand green
   regardless of what the theme does. The same goes for `:hover`, `:active`,
   `:focus` — every interactive state explicitly re-states the green so a
   stray `button:hover { background: ... }` rule somewhere upstream can't
   leak through. */
.rgyd-register-form .rgyd-payment-card,
.rgyd-register-form .rgyd-payment-card:link,
.rgyd-register-form .rgyd-payment-card:visited {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 14px !important;
	width: 100% !important;
	padding: 18px 22px !important;
	background: #588E31 !important;
	background-image: none !important;
	color: #FFFFFF !important;
	border: 1.5px solid #588E31 !important;
	border-radius: 999px !important;
	cursor: pointer !important;
	font: inherit !important;
	font-weight: 600 !important;
	font-size: 15px !important;
	line-height: 1.25 !important;
	text-align: left !important;
	text-decoration: none !important;
	box-shadow: 0 2px 6px rgba(88, 142, 49, 0.28) !important;
	transition: transform .14s ease, box-shadow .14s ease, background-color .14s ease, border-color .14s ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}
.rgyd-register-form .rgyd-payment-card:hover,
.rgyd-register-form .rgyd-payment-card:focus,
.rgyd-register-form .rgyd-payment-card:active {
	background: #467024 !important;
	background-image: none !important;
	border-color: #467024 !important;
	color: #FFFFFF !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(88, 142, 49, 0.32) !important;
}
.rgyd-register-form .rgyd-payment-card:focus-visible {
	outline: 3px solid rgba(88, 142, 49, 0.4) !important;
	outline-offset: 2px;
}
.rgyd-register-form .rgyd-payment-card[disabled] {
	opacity: .65 !important;
	cursor: not-allowed !important;
	transform: none !important;
}
.rgyd-register-form .rgyd-payment-card__label {
	flex: 1 1 auto;
	font-weight: 600 !important;
	font-size: 15px !important;
	color: inherit !important;
	white-space: normal;
}
.rgyd-register-form .rgyd-payment-card__arrow {
	flex: 0 0 auto;
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
	transition: transform .14s ease;
}
.rgyd-register-form .rgyd-payment-card:hover .rgyd-payment-card__arrow {
	transform: translateX(2px);
}

/* "Manual approval" variant — visually distinct so the customer knows
   it's a different flow (no redirect; the registrar will contact them).
   Same hex hard-coding rationale as the filled variant above. */
.rgyd-register-form .rgyd-payment-card--manual,
.rgyd-register-form .rgyd-payment-card--manual:link,
.rgyd-register-form .rgyd-payment-card--manual:visited {
	background: #FFFFFF !important;
	background-image: none !important;
	color: #588E31 !important;
	border: 1.5px solid #588E31 !important;
	box-shadow: 0 2px 6px rgba(0,0,0,.04) !important;
}
.rgyd-register-form .rgyd-payment-card--manual:hover,
.rgyd-register-form .rgyd-payment-card--manual:focus,
.rgyd-register-form .rgyd-payment-card--manual:active {
	background: rgba(88, 142, 49, 0.08) !important;
	background-image: none !important;
	color: #467024 !important;
	border-color: #467024 !important;
}

/* Field hint — used for the live ".gy will be added" preview. */
.rgyd-register-form .rgyd-field-hint {
	display: block;
	margin-top: 6px;
	font-size: 13px;
	color: #588E31;
	font-weight: 600;
	min-height: 18px; /* prevent layout shift when text appears */
}

/* Multi-domain row layout — each domain has its own input, term, and
   availability pill. Rows after the first include a remove button. */
.rgyd-register-form .rgyd-domain-rows {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.rgyd-register-form .rgyd-domain-row {
	background: #F9FAFB;
	border: 1px solid #E5E7EB;
	border-radius: 12px;
	padding: 16px 18px;
	position: relative;
}
.rgyd-register-form .rgyd-domain-row[data-index="0"] {
	background: transparent;
	border: 0;
	padding: 0;
}
.rgyd-register-form .rgyd-domain-row-actions {
	margin-top: 8px;
	display: flex;
	justify-content: flex-end;
}
.rgyd-register-form .rgyd-domain-remove {
	background: transparent !important;
	border: 0 !important;
	color: #6B7280 !important;
	font-size: 13px;
	font-weight: 600;
	padding: 4px 10px !important;
	cursor: pointer;
	border-radius: 6px;
	transition: background-color .12s ease, color .12s ease;
}
.rgyd-register-form .rgyd-domain-remove:hover {
	background: rgba(88, 142, 49, 0.08) !important;
	color: #467024 !important;
}
.rgyd-register-form .rgyd-domain-add-wrap {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 14px;
	flex-wrap: wrap;
}
.rgyd-register-form .rgyd-domain-add-btn {
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	background: #FFFFFF !important;
	background-image: none !important;
	color: #588E31 !important;
	border: 1.5px dashed #588E31 !important;
	border-radius: 999px !important;
	padding: 8px 16px !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	cursor: pointer;
	-webkit-appearance: none !important;
	appearance: none !important;
	transition: background-color .12s ease, border-style .12s ease;
}
.rgyd-register-form .rgyd-domain-add-btn:hover {
	background: rgba(88, 142, 49, 0.08) !important;
	border-style: solid !important;
}

/* Live availability indicator under the domain input. Always visible
   so the customer knows the check feature exists — starts with a muted
   "Start typing..." idle state, then transitions through checking →
   available / taken / unknown as they type. */
.rgyd-register-form .rgyd-domain-check {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 10px;
	min-height: 30px;
	padding: 6px 14px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	background: #F3F4F6;
	color: #6B7280;
	transition: background-color .18s ease, color .18s ease;
	width: fit-content;
	max-width: 100%;
}
.rgyd-register-form .rgyd-domain-check:empty::before {
	content: 'Start typing to check availability…';
	color: #6B7280;
	font-weight: 500;
}
.rgyd-register-form .rgyd-domain-check--checking {
	background: #F3F4F6;
	color: #4B5563;
}
.rgyd-register-form .rgyd-domain-check--available {
	background: rgba(88, 142, 49, 0.12);
	color: #15803D;
}
.rgyd-register-form .rgyd-domain-check--taken {
	background: #FFEDD5;
	color: #9A3412;
}
.rgyd-register-form .rgyd-domain-check--unknown,
.rgyd-register-form .rgyd-domain-check--invalid {
	background: #FEF3C7;
	color: #92400E;
}
.rgyd-register-form .rgyd-domain-check__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: currentColor;
	color: #FFFFFF;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
}
.rgyd-register-form .rgyd-domain-check--available .rgyd-domain-check__icon { background: #15803D; }
.rgyd-register-form .rgyd-domain-check--taken .rgyd-domain-check__icon { background: #C2410C; }
.rgyd-register-form .rgyd-domain-check--unknown .rgyd-domain-check__icon,
.rgyd-register-form .rgyd-domain-check--invalid .rgyd-domain-check__icon { background: #B45309; }
.rgyd-register-form .rgyd-domain-check__spinner {
	display: inline-block;
	width: 14px;
	height: 14px;
	border: 2px solid rgba(75, 85, 99, 0.25);
	border-top-color: #4B5563;
	border-radius: 50%;
	animation: rgyd-check-spin .7s linear infinite;
}
@keyframes rgyd-check-spin {
	to { transform: rotate(360deg); }
}
.rgyd-register-form .rgyd-recaptcha-notice {
	margin-top: 12px;
	font-size: 12px;
	color: var(--rgyd-text-muted);
}
.rgyd-register-form .rgyd-recaptcha-notice a { color: #588E31; }

/* Scroll-lock — DISABLED entirely (v1.7.x). We used to set
   `overflow: hidden` on <html>/<body> while the modal was open. That
   caused page scroll to lock-up if anything went wrong (back-button,
   bfcache, page-builder interference, browser inconsistencies). The
   modal's `position: fixed` backdrop already prevents interaction with
   the page underneath; locking scroll on top of that was overkill. The
   class is kept as a no-op so any older bookmarklets or extensions
   referencing it don't break, but it has no effect. */
html.rgyd-scroll-locked,
body.rgyd-scroll-locked {
	/* intentionally no overflow rule */
	overscroll-behavior: contain;
}

/* Make the modal itself scrollable if its content is taller than the
   viewport — so customers on small screens can still reach all the
   buttons inside without page-level scroll. */
.rgyd-modal,
#rgyd-confirm-modal {
	overflow-y: auto !important;
}

/* Accessibility — keyboard focus rings on every interactive form element.
   WCAG 2.1 AA requires a visible focus indicator with at least 3:1 contrast
   against adjacent colours. We use the brand green with a soft offset ring. */
.rgyd-register-form button:focus-visible,
.rgyd-register-form input:focus-visible,
.rgyd-register-form select:focus-visible,
.rgyd-register-form textarea:focus-visible,
.rgyd-register-form a:focus-visible,
#rgyd-confirm-modal button:focus-visible,
#rgyd-confirm-modal a:focus-visible {
	outline: 3px solid rgba(88, 142, 49, 0.45) !important;
	outline-offset: 2px;
	border-radius: 8px;
}
.rgyd-register-form .rgyd-payment-card:focus-visible {
	outline-offset: 3px;
	border-radius: 999px;
}

/* Reduced motion — respect the user's OS preference. */
@media (prefers-reduced-motion: reduce) {
	#rgyd-confirm-modal,
	#rgyd-confirm-modal .rgyd-modal__panel,
	.rgyd-register-form .rgyd-payment-card,
	.rgyd-register-form .rgyd-btn-primary,
	.rgyd-register-form .rgyd-btn-secondary {
		animation: none !important;
		transition: none !important;
	}
}

/* =====================================================================
   Dashboard revamp v2 — clean, modern, green-only
   All selectors live under `.rgyd-my-domains` so they only apply on the
   dashboard, with literal #588E31 hex to defeat theme overrides.
   ===================================================================== */

/* Header — domain name on its own line, full card width on every screen.
   The sync action element follows the info-row in HTML but on desktop is
   pulled into the top-right corner of the card via absolute positioning
   so it never affects normal flow or fights for space with the name. */
.rgyd-my-domains .rgyd-domain-header {
	display: block !important;
	margin-bottom: 20px;
	min-width: 0;
}
.rgyd-my-domains .rgyd-domain-header__lead {
	display: block;
	min-width: 0;
	max-width: 100%;
}
.rgyd-my-domains .rgyd-domain-header h2 {
	font-size: clamp(0.95rem, 4.2vw, 1.45rem) !important;
	font-weight: 700 !important;
	margin: 0 !important;
	color: #111827 !important;
	letter-spacing: -0.01em;
	word-break: break-all;
	overflow-wrap: anywhere;
	hyphens: auto;
	min-width: 0;
	max-width: 100%;
	line-height: 1.25;
}

/* Sync button — base look (colours/borders/etc are inline-styled so they
   beat theme overrides). Positioning is owned by these CSS rules so the
   @media breakpoint can swap from "floats in the corner on PC" to
   "full-width inline row on mobile" without inline styles in the way. */
.rgyd-my-domains .rgyd-domain-header__sync {
	margin: 0;
}
.rgyd-my-domains .rgyd-sync-btn {
	transition: background-color .14s ease, color .14s ease, box-shadow .14s ease;
}
.rgyd-my-domains .rgyd-sync-btn:hover {
	background: rgba(88, 142, 49, 0.10) !important;
	color: #467024 !important;
	border-color: #467024 !important;
}
.rgyd-my-domains .rgyd-sync-btn__label { font-weight: 600; }

/* Sync button placement: full-width inline strip below the info-row on
   every screen size. The card was historically also rendered with a
   floating corner sync button, but the operator prefers a single
   consistent layout across desktop + mobile. See the inline <style>
   block in class-rgy-domains-dashboard.php render() for the canonical
   rules — these lines just remove the legacy float so the cascades agree. */
.rgyd-my-domains .rgyd-domain-header__sync {
	position: static !important;
	display: block !important;
	width: 100% !important;
	margin: 16px 0 4px 0 !important;
}
.rgyd-my-domains .rgyd-domain-header__sync .rgyd-sync-btn {
	width: 100% !important;
	box-sizing: border-box !important;
	justify-content: center !important;
	padding: 13px 20px !important;
	font-size: 14px !important;
}

/* Tiny phones — squeeze the h2 a notch more so 18-character domains fit
   comfortably without wrapping into 3+ lines. */
@media (max-width: 380px) {
	.rgyd-my-domains .rgyd-domain-header h2 {
		font-size: 1rem !important;
	}
}

/* Panel titles. */
.rgyd-my-domains .rgyd-panel-title {
	font-size: 1.05rem !important;
	font-weight: 700 !important;
	color: #111827 !important;
	margin: 0 0 14px 0 !important;
}
.rgyd-my-domains .rgyd-empty-state {
	background: #F9FAFB;
	border: 1px dashed #D1D5DB;
	border-radius: 12px;
	padding: 22px;
	text-align: center;
	color: #6B7280;
	margin: 0 0 14px 0;
}

/* Nameserver display list — clean code blocks. */
.rgyd-my-domains .rgyd-ns-list {
	margin: 0 0 18px 0 !important;
	padding: 0 !important;
	list-style: none !important;
	display: grid;
	gap: 6px;
}
.rgyd-my-domains .rgyd-ns-list li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 16px;
	background: #F9FAFB;
	border: 1px solid #F0F1F4;
	border-radius: 10px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 14px;
	color: #1F2937;
}
.rgyd-my-domains .rgyd-ns-list code {
	background: transparent;
	padding: 0;
}

/* Security cards — separated and divided. */
.rgyd-my-domains .rgyd-sec-card {
	background: #F9FAFB;
	border: 1px solid #E5E7EB;
	border-radius: 14px;
	padding: 20px 22px;
	margin-bottom: 14px;
}
.rgyd-my-domains .rgyd-sec-card__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 8px;
}
.rgyd-my-domains .rgyd-sec-card__head h3 {
	font-size: 1.05rem !important;
	font-weight: 700 !important;
	margin: 0 !important;
	color: #111827 !important;
}
.rgyd-my-domains .rgyd-sec-card__desc {
	margin: 0 0 14px 0 !important;
	color: #4B5563;
	line-height: 1.55;
	font-size: 14px;
}
.rgyd-my-domains .rgyd-sec-state {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 5px 12px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	background: #F3F4F6;
	color: #4B5563;
	white-space: nowrap;
}
.rgyd-my-domains .rgyd-sec-state strong { font-weight: 700; color: #111827; }
.rgyd-my-domains .rgyd-sec-state__dot {
	width: 8px; height: 8px;
	border-radius: 50%;
	background: #9CA3AF;
}
.rgyd-my-domains .rgyd-sec-state--on {
	background: rgba(88, 142, 49, 0.10);
	color: #467024;
}
.rgyd-my-domains .rgyd-sec-state--on strong { color: #15803D; }
.rgyd-my-domains .rgyd-sec-state--on .rgyd-sec-state__dot { background: #15803D; }
.rgyd-my-domains .rgyd-sec-state--off {
	background: #F3F4F6;
	color: #6B7280;
}
.rgyd-my-domains .rgyd-sec-state--off .rgyd-sec-state__dot { background: #9CA3AF; }

/* Auth-code result display. */
.rgyd-my-domains .rgyd-authcode-display {
	background: #FFFFFF;
	border: 1.5px solid #588E31;
	border-radius: 12px;
	padding: 16px;
	margin: 0 0 14px 0;
}
.rgyd-my-domains .rgyd-authcode-display__label {
	display: block;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: #588E31;
	font-weight: 700;
	margin-bottom: 8px;
}
.rgyd-my-domains .rgyd-authcode-display__row {
	display: flex;
	gap: 8px;
	align-items: stretch;
}
.rgyd-my-domains .rgyd-authcode-display__value {
	flex: 1;
	padding: 12px 14px;
	border: 1.5px solid #E5E7EB;
	border-radius: 10px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 15px;
	font-weight: 600;
	color: #111827;
	background: #F9FAFB;
}
.rgyd-my-domains .rgyd-authcode-display__copy {
	background: #588E31 !important;
	background-image: none !important;
	color: #FFFFFF !important;
	border: 1.5px solid #588E31 !important;
	border-radius: 10px !important;
	padding: 0 18px !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	cursor: pointer;
	-webkit-appearance: none !important;
	appearance: none !important;
}
.rgyd-my-domains .rgyd-authcode-display__copy:hover {
	background: #467024 !important;
	border-color: #467024 !important;
}
.rgyd-my-domains .rgyd-authcode-display__hint {
	margin: 10px 0 0 0 !important;
	font-size: 12px;
	color: #6B7280;
}
@media (max-width: 520px) {
	.rgyd-my-domains .rgyd-authcode-display__row { flex-direction: column; }
	.rgyd-my-domains .rgyd-authcode-display__copy { padding: 12px 18px !important; }
}

/* Services & upsell cards — proper rectangular cards, no squished ovals. */
.rgyd-my-domains .rgyd-services-list {
	margin: 0 0 18px 0 !important;
	padding: 0 !important;
	list-style: none !important;
	display: grid;
	gap: 10px;
}
.rgyd-my-domains .rgyd-service-item {
	display: flex !important;
	align-items: center;
	gap: 14px;
	padding: 14px 18px;
	background: #FFFFFF;
	border: 1px solid #E5E7EB;
	border-radius: 12px;
}
.rgyd-my-domains .rgyd-service-item__icon {
	font-size: 22px;
	line-height: 1;
}
.rgyd-my-domains .rgyd-service-item__label {
	flex: 1;
	font-weight: 600;
	color: #111827;
}

.rgyd-my-domains .rgyd-upsell-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 14px;
	margin-top: 6px;
}
.rgyd-my-domains .rgyd-upsell-card {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start;
	gap: 16px;
	padding: 22px 22px !important;
	background: #FFFFFF !important;
	border: 1.5px solid #E5E7EB !important;
	border-radius: 14px !important;
	text-decoration: none !important;
	color: #111827 !important;
	transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease;
	min-height: 0 !important;
}
.rgyd-my-domains .rgyd-upsell-card:hover {
	border-color: #588E31 !important;
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(88, 142, 49, 0.18) !important;
}
.rgyd-my-domains .rgyd-upsell-card__icon {
	flex: 0 0 auto;
	width: 44px; height: 44px;
	display: flex; align-items: center; justify-content: center;
	font-size: 22px;
	background: rgba(88, 142, 49, 0.10);
	color: #467024;
	border-radius: 12px;
}
.rgyd-my-domains .rgyd-upsell-card__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.rgyd-my-domains .rgyd-upsell-card__title {
	font-weight: 700;
	font-size: 15px;
	color: #111827;
	line-height: 1.3;
}
.rgyd-my-domains .rgyd-upsell-card__desc {
	font-size: 13px;
	color: #4B5563;
	line-height: 1.5;
}
.rgyd-my-domains .rgyd-upsell-card__cta {
	font-size: 13px;
	color: #588E31;
	font-weight: 700;
	margin-top: 6px;
}
.rgyd-my-domains .rgyd-upsell-card:hover .rgyd-upsell-card__cta {
	color: #467024;
}

/* DS records list. */
.rgyd-my-domains .rgyd-ds-list {
	margin: 0 0 14px 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 6px;
}
.rgyd-my-domains .rgyd-ds-list li {
	background: #FFFFFF;
	border: 1px solid #E5E7EB;
	border-radius: 10px;
	padding: 10px 14px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 13px;
}

/* History list. */
.rgyd-my-domains .rgyd-history-list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 6px;
}
.rgyd-my-domains .rgyd-history-list li {
	padding: 10px 14px;
	background: #F9FAFB;
	border: 1px solid #F0F1F4;
	border-radius: 8px;
	display: flex;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

/* Mobile pass — tab nav scrolls, cards tighten. Header is no longer
   flex-based (sync moved to absolute corner) so it doesn't need stacking. */
@media (max-width: 640px) {
	.rgyd-my-domains .rgyd-sec-card { padding: 16px 16px; }
	.rgyd-my-domains .rgyd-sec-card__head { gap: 8px; }
	.rgyd-my-domains .rgyd-upsell-grid { grid-template-columns: 1fr; }
	.rgyd-my-domains .rgyd-upsell-card { padding: 18px !important; }
}

/* =====================================================================
   Dashboard NS-edit modal — individual NS rows (replaces textarea)
   Selectors target the modal by class since it lives in body now.
   The dialog itself has zero internal padding (it's a generic .rgyd-modal__dialog
   container), so we add it here so the contents breathe.
   ===================================================================== */
.rgyd-modal .rgyd-ns-modal {
	max-width: 560px;
	width: 100%;
	padding: 30px 32px 26px 32px !important;
	box-sizing: border-box;
	/* Allow the dialog body to scroll on short viewports without losing
	   the surrounding padding. Caps height so the close button stays
	   tappable on every screen. */
	overflow-y: auto;
	max-height: 90vh;
}
/* The close (×) button sits inside the dialog at top:14px right:14px from
   the generic .rgyd-modal__close rule. With the new dialog padding the
   title block needs a bit of right-side reservation so the words don't
   collide with the close button. */
.rgyd-modal .rgyd-ns-modal .rgyd-modal__title,
.rgyd-modal .rgyd-ns-modal .rgyd-modal__subtitle {
	padding-right: 36px;
}
.rgyd-modal .rgyd-modal__title {
	margin: 0 0 4px 0;
	font-size: 1.3rem;
	font-weight: 700;
	color: #111827;
}
.rgyd-modal .rgyd-modal__subtitle {
	margin: 0 0 22px 0;
	color: #6B7280;
}
.rgyd-modal .rgyd-modal__subtitle code {
	background: rgba(88, 142, 49, 0.10);
	color: #467024;
	padding: 3px 10px;
	border-radius: 6px;
	font-weight: 600;
	font-size: 14px;
}
.rgyd-ns-rows {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0 0 12px 0;
}
.rgyd-ns-row {
	display: flex !important;
	align-items: center;
	gap: 10px;
}
.rgyd-ns-row__num {
	flex: 0 0 28px;
	font-weight: 700;
	color: #6B7280;
	font-size: 14px;
	text-align: right;
}
.rgyd-ns-row__input {
	flex: 1 1 auto;
	padding: 12px 14px !important;
	border: 1.5px solid #D1D5DB !important;
	border-radius: 10px !important;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 14px;
	background: #FFFFFF;
	color: #111827;
	min-width: 0;
}
.rgyd-ns-row__input:focus {
	outline: none !important;
	border-color: #588E31 !important;
	box-shadow: 0 0 0 3px rgba(88, 142, 49, 0.18) !important;
}
.rgyd-ns-row__remove {
	flex: 0 0 auto;
	background: transparent !important;
	border: 0 !important;
	color: #9CA3AF !important;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	padding: 6px 10px !important;
	border-radius: 8px;
	-webkit-appearance: none !important;
	appearance: none !important;
}
.rgyd-ns-row__remove:hover {
	background: rgba(88, 142, 49, 0.08) !important;
	color: #467024 !important;
}
.rgyd-ns-add {
	background: #FFFFFF !important;
	background-image: none !important;
	border: 1.5px dashed #588E31 !important;
	color: #588E31 !important;
	border-radius: 999px !important;
	padding: 9px 18px !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	cursor: pointer;
	-webkit-appearance: none !important;
	appearance: none !important;
	margin: 8px 0 14px 0;
	display: inline-block;
}
.rgyd-ns-add:hover {
	background: rgba(88, 142, 49, 0.08) !important;
	border-style: solid !important;
}
.rgyd-modal .rgyd-ns-form__hint {
	padding: 12px 14px;
	background: rgba(88, 142, 49, 0.08);
	border-radius: 10px;
	color: #374151;
	font-size: 13px;
	line-height: 1.55;
	margin: 0 0 14px 0;
}
.rgyd-modal .rgyd-ns-form__actions {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
	flex-wrap: wrap;
}
.rgyd-modal .rgyd-ns-form__actions .rgyd-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	padding: 11px 22px !important;
	border-radius: 999px !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	cursor: pointer;
	-webkit-appearance: none !important;
	appearance: none !important;
}
.rgyd-modal .rgyd-ns-form__actions .rgyd-btn-primary {
	background: #588E31 !important;
	background-image: none !important;
	color: #FFFFFF !important;
	border: 1.5px solid #588E31 !important;
	box-shadow: 0 2px 6px rgba(88, 142, 49, 0.22) !important;
}
.rgyd-modal .rgyd-ns-form__actions .rgyd-btn-primary:hover {
	background: #467024 !important;
	border-color: #467024 !important;
}
.rgyd-modal .rgyd-ns-form__actions .rgyd-btn-secondary {
	background: #FFFFFF !important;
	color: #588E31 !important;
	border: 1.5px solid #588E31 !important;
}
.rgyd-modal .rgyd-ns-form__actions .rgyd-btn-secondary:hover {
	background: rgba(88, 142, 49, 0.10) !important;
	color: #467024 !important;
	border-color: #467024 !important;
}
@media (max-width: 540px) {
	.rgyd-modal .rgyd-ns-modal {
		max-width: 100%;
		padding: 24px 20px 22px 20px !important;
	}
	.rgyd-modal .rgyd-ns-form__actions { flex-direction: column-reverse; }
	.rgyd-modal .rgyd-ns-form__actions .rgyd-btn { width: 100%; }
}

/* Confirmation modal — opens on payment-card click, summarises the request
   before we submit + redirect. The modal element is moved to <body> via
   JS so position:fixed isn't broken by transformed page-builder wrappers. */
.rgyd-modal,
.rgyd-register-form .rgyd-modal {
	position: fixed !important;
	inset: 0 !important;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	animation: rgyd-modal-fade-in .18s ease;
}
.rgyd-modal[hidden],
.rgyd-register-form .rgyd-modal[hidden] { display: none !important; }
@keyframes rgyd-modal-fade-in {
	from { opacity: 0; }
	to   { opacity: 1; }
}
/* Modal sub-elements — scoped to `#rgyd-confirm-modal` (the id) so the
   styles still apply after JS hoists the modal out of the form wrapper
   and onto <body>. */
#rgyd-confirm-modal .rgyd-modal__backdrop {
	position: absolute; inset: 0;
	background: rgba(15, 23, 42, .55);
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
}
#rgyd-confirm-modal .rgyd-modal__panel {
	position: relative;
	background: #FFFFFF;
	border-radius: 18px;
	padding: 32px 30px 26px 30px;
	max-width: 480px;
	width: 100%;
	box-shadow: 0 25px 60px rgba(0, 0, 0, .28), 0 2px 8px rgba(0,0,0,.10);
	animation: rgyd-modal-in .22s cubic-bezier(.16, 1, .3, 1);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
@keyframes rgyd-modal-in {
	from { transform: translateY(12px) scale(.97); opacity: 0; }
	to   { transform: translateY(0) scale(1); opacity: 1; }
}
#rgyd-confirm-modal .rgyd-modal__close {
	position: absolute; top: 14px; right: 16px;
	background: transparent !important; border: 0 !important;
	font-size: 26px; line-height: 1;
	color: #6B7280 !important; cursor: pointer;
	padding: 4px 10px !important; border-radius: 8px !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}
#rgyd-confirm-modal .rgyd-modal__close:hover {
	background: #F3F4F6 !important; color: #111827 !important;
}
#rgyd-confirm-modal h2 {
	margin: 0 0 12px 0; font-size: 1.3rem; color: #111827;
	letter-spacing: -0.01em; font-weight: 700;
}
#rgyd-confirm-modal p {
	margin: 0 0 12px 0; line-height: 1.55; color: #374151;
}
#rgyd-confirm-modal p.rgyd-muted { color: #6B7280; font-size: 13.5px; }
#rgyd-confirm-modal strong { color: #111827; font-weight: 700; }
#rgyd-confirm-modal .rgyd-modal__actions {
	display: flex; gap: 10px; justify-content: flex-end;
	margin-top: 18px; flex-wrap: wrap;
}
#rgyd-confirm-modal .rgyd-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 11px 22px !important;
	border-radius: 999px !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	line-height: 1.2;
	text-decoration: none !important;
	cursor: pointer;
	transition: transform .14s ease, box-shadow .14s ease, background-color .14s ease, border-color .14s ease;
	-webkit-appearance: none !important;
	appearance: none !important;
}
#rgyd-confirm-modal .rgyd-btn-primary {
	background: #588E31 !important;
	background-image: none !important;
	color: #FFFFFF !important;
	border: 1.5px solid #588E31 !important;
	box-shadow: 0 2px 6px rgba(88, 142, 49, 0.22) !important;
}
#rgyd-confirm-modal .rgyd-btn-primary:hover {
	background: #467024 !important;
	border-color: #467024 !important;
	transform: translateY(-1px);
	box-shadow: 0 6px 14px rgba(88, 142, 49, 0.30) !important;
}
#rgyd-confirm-modal .rgyd-btn-secondary {
	background: #FFFFFF !important;
	color: #588E31 !important;
	border: 1.5px solid #588E31 !important;
}
#rgyd-confirm-modal .rgyd-btn-secondary:hover {
	background: rgba(88, 142, 49, 0.08) !important;
	color: #467024 !important;
	border-color: #467024 !important;
}
@media (max-width: 520px) {
	#rgyd-confirm-modal .rgyd-modal__panel { padding: 24px 20px; }
	#rgyd-confirm-modal .rgyd-modal__actions { flex-direction: column-reverse; }
	#rgyd-confirm-modal .rgyd-modal__actions .rgyd-btn { width: 100%; }
}

/* Nameservers modal — clean form, big textarea, clear help text. */
.rgyd-my-domains .rgyd-ns-modal {
	max-width: 520px;
}
.rgyd-my-domains .rgyd-modal__title {
	margin: 0 0 4px 0;
	font-size: 1.25rem;
	color: var(--rgyd-text);
}
.rgyd-my-domains .rgyd-modal__subtitle {
	margin: 0 0 18px 0;
	color: var(--rgyd-text-muted);
}
.rgyd-my-domains .rgyd-modal__subtitle code {
	background: rgba(88, 142, 49, 0.10);
	color: #467024;
	padding: 3px 8px;
	border-radius: 6px;
	font-weight: 600;
}
.rgyd-my-domains .rgyd-ns-form { display: flex; flex-direction: column; gap: 10px; }
.rgyd-my-domains .rgyd-ns-form__label {
	font-weight: 600;
	color: var(--rgyd-text);
}
.rgyd-my-domains .rgyd-ns-form__textarea {
	width: 100%;
	min-height: 200px;
	padding: 14px 16px !important;
	border: 1.5px solid #D1D5DB !important;
	border-radius: 12px !important;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 14px;
	line-height: 1.7;
	background: #FBFCFA;
	color: var(--rgyd-text);
	resize: vertical;
	box-sizing: border-box;
	transition: border-color .12s ease, box-shadow .12s ease;
}
.rgyd-my-domains .rgyd-ns-form__textarea:focus {
	outline: none;
	border-color: #588E31 !important;
	box-shadow: 0 0 0 3px rgba(88, 142, 49, 0.28);
	background: #FFFFFF;
}
.rgyd-my-domains .rgyd-ns-form__hint {
	margin: 0;
	padding: 12px 14px;
	background: rgba(88, 142, 49, 0.10);
	border-radius: 10px;
	color: var(--rgyd-text);
	font-size: 13px;
	line-height: 1.55;
}
.rgyd-my-domains .rgyd-ns-form__actions {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
	margin-top: 8px;
	flex-wrap: wrap;
}
@media (max-width: 560px) {
	.rgyd-my-domains .rgyd-ns-modal { max-width: 100%; }
	.rgyd-my-domains .rgyd-ns-form__actions { flex-direction: column-reverse; }
	.rgyd-my-domains .rgyd-ns-form__actions .rgyd-btn { width: 100%; }
}

/* =====================================================================
   v1.3.x — My Domains modern revamp
   This block lands LAST so it wins the cascade. Everything is keyed to the
   `.rgyd-my-domains` wrapper and uses literal hex (no CSS variables) so a
   theme that overrides `--rgyd-primary` at the body level can't poison the
   plugin's surfaces. The look: airy white cards, subtle shadows, brand
   green only — zero blue, zero pink.
   ===================================================================== */

/* Top of the dashboard — header link, page title, register-domain link. */
.rgyd-my-domains {
	font-family: var(--rgyd-font, inherit);
	color: #1F2937;
}
.rgyd-my-domains__top {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	margin-bottom: 14px;
}
.rgyd-my-domains__register-link {
	color: #588E31 !important;
	font-weight: 600;
	text-decoration: none !important;
	font-size: 14px;
}
.rgyd-my-domains__register-link:hover { color: #467024 !important; }

/* Domain card — the white container holding everything per-domain. */
.rgyd-my-domains .rgyd-domain-panel,
.rgyd-my-domains .rgyd-card-v2 {
	background: #FFFFFF !important;
	border: 1px solid #E5E7EB !important;
	border-radius: 16px !important;
	padding: 26px 28px !important;
	box-shadow: 0 1px 2px rgba(0,0,0,.03), 0 4px 12px rgba(0,0,0,.04) !important;
	margin-bottom: 22px;
}

/* Domain title + status pill in the header. */
.rgyd-my-domains .rgyd-domain-header,
.rgyd-my-domains .rgyd-card-v2__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 20px;
	border-bottom: none !important;
	padding-bottom: 0 !important;
}
.rgyd-my-domains .rgyd-domain-header h2,
.rgyd-my-domains .rgyd-card-v2__title {
	font-size: 1.5rem;
	font-weight: 700;
	margin: 0;
	color: #111827;
	letter-spacing: -0.01em;
}
.rgyd-my-domains .rgyd-domain-status,
.rgyd-my-domains .rgyd-pill {
	display: inline-flex !important;
	align-items: center;
	padding: 5px 14px !important;
	border-radius: 999px !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: 0.01em;
	background: rgba(88, 142, 49, 0.10) !important;
	color: #467024 !important;
}
.rgyd-my-domains .rgyd-status-registered,
.rgyd-my-domains .rgyd-status-ok,
.rgyd-my-domains .rgyd-pill--ok {
	background: rgba(88, 142, 49, 0.12) !important;
	color: #15803D !important;
}
.rgyd-my-domains .rgyd-pill--warn { background: #FEF3C7 !important; color: #92400E !important; }
.rgyd-my-domains .rgyd-pill--err  { background: #FFEDD5 !important; color: #9A3412 !important; }

/* Info tiles row (EXPIRY / NAMESERVERS / DNSSEC / LAST SYNC). */
.rgyd-my-domains .rgyd-info-row {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 12px !important;
	margin-bottom: 22px;
}
.rgyd-my-domains .rgyd-info-row > div {
	background: #F9FAFB !important;
	border: 1px solid #F0F1F4 !important;
	border-radius: 12px !important;
	padding: 14px 16px !important;
}
.rgyd-my-domains .rgyd-info-row .rgyd-label {
	display: block !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	color: #6B7280 !important;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 6px;
}
.rgyd-my-domains .rgyd-info-row strong {
	display: block;
	font-size: 1.05rem;
	font-weight: 700;
	color: #111827;
}

/* Tab nav — clean text tabs with green active underline. NOT pill buttons. */
.rgyd-my-domains .rgyd-tabs {
	display: flex !important;
	flex-wrap: nowrap;
	overflow-x: auto;
	gap: 4px;
	margin: 0 0 22px 0;
	padding: 0;
	border-bottom: 1px solid #E5E7EB;
	background: transparent !important;
	scrollbar-width: thin;
}
.rgyd-my-domains .rgyd-tab-btn {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 12px 18px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	font-family: inherit;
	color: #6B7280 !important;
	cursor: pointer;
	white-space: nowrap;
	border-bottom: 2px solid transparent !important;
	margin-bottom: -1px;
	transition: color .14s ease, border-color .14s ease;
}
.rgyd-my-domains .rgyd-tab-btn:hover {
	color: #111827 !important;
	background: transparent !important;
}
.rgyd-my-domains .rgyd-tab-btn.is-active {
	color: #588E31 !important;
	border-bottom-color: #588E31 !important;
	background: transparent !important;
}
.rgyd-my-domains .rgyd-tab-btn:focus-visible {
	outline: 2px solid rgba(88, 142, 49, 0.4) !important;
	outline-offset: -2px;
	border-radius: 4px;
}

/* Tab panel content. */
.rgyd-my-domains .rgyd-tab-panel {
	display: none;
	padding: 4px 0 8px 0;
}
.rgyd-my-domains .rgyd-tab-panel.is-active { display: block; }
.rgyd-my-domains .rgyd-tab-panel p {
	margin: 0 0 14px 0;
	line-height: 1.6;
	color: #374151;
}
.rgyd-my-domains .rgyd-tab-panel h3 {
	margin: 0 0 8px 0;
	font-size: 1rem;
	font-weight: 700;
	color: #111827;
}

/* Action buttons inside panels — refresh / sync / etc.
   Forced filled-green pill, no pink possible. */
.rgyd-my-domains .rgyd-btn-primary,
.rgyd-my-domains button.rgyd-btn-primary,
.rgyd-my-domains a.rgyd-btn-primary,
.rgyd-my-domains .rgyd-overview__sync-btn {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 11px 22px !important;
	background: #588E31 !important;
	background-image: none !important;
	color: #FFFFFF !important;
	border: 1.5px solid #588E31 !important;
	border-radius: 999px !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	line-height: 1.2;
	text-decoration: none !important;
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(88, 142, 49, 0.22) !important;
	transition: transform .14s ease, box-shadow .14s ease, background-color .14s ease;
	-webkit-appearance: none !important;
	appearance: none !important;
}
.rgyd-my-domains .rgyd-btn-primary:hover,
.rgyd-my-domains button.rgyd-btn-primary:hover,
.rgyd-my-domains a.rgyd-btn-primary:hover,
.rgyd-my-domains .rgyd-overview__sync-btn:hover {
	background: #467024 !important;
	border-color: #467024 !important;
	color: #FFFFFF !important;
	transform: translateY(-1px);
	box-shadow: 0 6px 14px rgba(88, 142, 49, 0.30) !important;
}
.rgyd-my-domains .rgyd-btn-secondary,
.rgyd-my-domains button.rgyd-btn-secondary,
.rgyd-my-domains a.rgyd-btn-secondary {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 10px 20px !important;
	background: #FFFFFF !important;
	color: #588E31 !important;
	border: 1.5px solid #588E31 !important;
	border-radius: 999px !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color .14s ease, color .14s ease, border-color .14s ease;
}
.rgyd-my-domains .rgyd-btn-secondary:hover {
	background: rgba(88, 142, 49, 0.10) !important;
	color: #467024 !important;
	border-color: #467024 !important;
}

/* Status footer (e.g. "Status: Ok. Expires: 2028-12-31."). */
.rgyd-my-domains .rgyd-overview__meta,
.rgyd-my-domains .rgyd-overview__status {
	margin-top: 14px;
	color: #6B7280;
	font-size: 13px;
}
.rgyd-my-domains .rgyd-overview__meta strong,
.rgyd-my-domains .rgyd-overview__status strong { color: #111827; }

/* Lists inside panels. */
.rgyd-my-domains .rgyd-ns-list {
	margin: 0 0 16px 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 6px;
}
.rgyd-my-domains .rgyd-ns-list li {
	display: flex;
	align-items: center;
	padding: 10px 14px;
	background: #F9FAFB;
	border: 1px solid #F0F1F4;
	border-radius: 10px;
}
.rgyd-my-domains .rgyd-ns-list code {
	background: transparent;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 13px;
	color: #1F2937;
}

/* Empty state — used when there are no domains yet. */
.rgyd-my-domains .rgyd-empty,
.rgyd-my-domains__empty {
	background: #FFFFFF;
	border: 1px dashed #D1D5DB;
	border-radius: 16px;
	padding: 36px 28px;
	text-align: center;
	color: #6B7280;
}

@media (max-width: 700px) {
	.rgyd-my-domains .rgyd-domain-panel,
	.rgyd-my-domains .rgyd-card-v2 { padding: 20px 18px !important; }
	.rgyd-my-domains .rgyd-info-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.rgyd-my-domains .rgyd-info-row { grid-template-columns: 1fr 1fr; }
}

/* =====================================================================
   WHOIS Lookup — green brand
   ===================================================================== */
.rgyd-whois-wrap, .rgyd-whois {
	font-family: var(--rgyd-font, inherit);
}
.rgyd-whois-wrap input[type="text"],
.rgyd-whois input[type="text"],
.rgyd-whois-form input[type="text"] {
	padding: 14px 16px !important;
	border: 1.5px solid #D1D5DB !important;
	border-radius: 12px !important;
	font-size: 15px;
	background: #FFFFFF;
	transition: border-color .12s ease, box-shadow .12s ease;
}
.rgyd-whois-wrap input[type="text"]:focus,
.rgyd-whois input[type="text"]:focus,
.rgyd-whois-form input[type="text"]:focus {
	outline: none !important;
	border-color: #588E31 !important;
	box-shadow: 0 0 0 3px rgba(88, 142, 49, 0.18) !important;
}
.rgyd-whois-wrap button,
.rgyd-whois-wrap .button,
.rgyd-whois-wrap button[type="submit"],
.rgyd-whois button,
.rgyd-whois button[type="submit"],
.rgyd-whois-form button,
.rgyd-whois-form button[type="submit"] {
	background: #588E31 !important;
	background-image: none !important;
	color: #FFFFFF !important;
	border: 1.5px solid #588E31 !important;
	border-radius: 999px !important;
	padding: 12px 26px !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	cursor: pointer;
	box-shadow: 0 2px 6px rgba(88, 142, 49, 0.22) !important;
	transition: transform .14s ease, box-shadow .14s ease, background-color .14s ease;
}
.rgyd-whois-wrap button:hover,
.rgyd-whois button:hover,
.rgyd-whois-form button:hover {
	background: #467024 !important;
	border-color: #467024 !important;
	color: #FFFFFF !important;
	transform: translateY(-1px);
	box-shadow: 0 6px 14px rgba(88, 142, 49, 0.30) !important;
}
/* TLD pill chips below the search box. */
.rgyd-whois-tlds a, .rgyd-whois-tlds .rgyd-tld,
.rgyd-whois .rgyd-chip,
.rgyd-tld-pill {
	display: inline-block;
	padding: 6px 14px !important;
	margin: 4px 6px 4px 0;
	background: rgba(88, 142, 49, 0.08) !important;
	color: #467024 !important;
	border: 1px solid rgba(88, 142, 49, 0.18) !important;
	border-radius: 999px !important;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none !important;
	transition: background-color .12s ease, color .12s ease;
}
.rgyd-whois-tlds a:hover, .rgyd-whois-tlds .rgyd-tld:hover,
.rgyd-whois .rgyd-chip:hover,
.rgyd-tld-pill:hover {
	background: #588E31 !important;
	color: #FFFFFF !important;
	border-color: #588E31 !important;
}
/* WHOIS results title + monospace block. */
.rgyd-whois h1, .rgyd-whois-wrap h1 {
	color: #111827;
	font-weight: 700;
	letter-spacing: -0.01em;
}
.rgyd-whois pre, .rgyd-whois-result pre {
	background: #F9FAFB;
	border: 1px solid #E5E7EB;
	border-radius: 12px;
	padding: 16px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 13px;
	line-height: 1.6;
	color: #1F2937;
}