/* ================================================================
   GEO COMPLETION
   Citations · Freshness · Publish Readiness
   ================================================================ */


/* ----------------------------------------------------------------
   CITATIONS CARD
   ---------------------------------------------------------------- */

.geo-citations-card {
  margin-top: 28px;
  padding: 32px !important;

  background: #ffffff;
  border: 1px solid #dbe6eb;
  border-radius: 18px;

  box-shadow:
    0 12px 36px
    rgba(3, 46, 77, 0.045);
}


/* Header --------------------------------------------------------- */

.geo-citations-card .admin-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;

  gap: 24px;

  margin-bottom: 26px;
}

.geo-citations-card .admin-section-kicker {
  margin-bottom: 12px;

  color: #006b9d;

  font-size: 0.72rem;
  font-weight: 700;

  letter-spacing: 0.13em;
  text-transform: uppercase;
}

.geo-citations-card .admin-card-title {
  margin: 0;

  color: #032e4d;

  font-family: "Barlow", sans-serif;
  font-size: 1.45rem;
  font-weight: 650;
  line-height: 1.2;
}

.geo-citations-card .admin-card-subtitle {
  max-width: 820px;

  margin-top: 8px;

  color: #647c88;

  font-family: "Work Sans", sans-serif;
  font-size: 0.9rem;
  font-weight: 450;
  line-height: 1.6;
}


/* Verified counter ---------------------------------------------- */

.geo-citation-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 auto;
  align-self: flex-start;

  width: auto;
  min-width: 0;
  height: auto;
  min-height: 0;

  padding: 9px 13px;

  color: #086445;
  background: #edf9f3;

  border: 1px solid #cbe8da;
  border-radius: 999px;

  font-family: "Work Sans", sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1;

  white-space: nowrap;
}


/* ----------------------------------------------------------------
   EXISTING CITATIONS
   ---------------------------------------------------------------- */

.geo-citation-list {
  display: grid;
  gap: 14px;

  margin-top: 20px;
}

.geo-citation-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;

  gap: 24px;

  padding: 20px;

  background: #f9fbfc;

  border: 1px solid #dce6ea;
  border-radius: 13px;
}

.geo-citation-item.is-verified {
  background: #f4fbf7;
  border-color: #b9ddc9;
}

.geo-citation-main {
  flex: 1;

  min-width: 0;
}


/* Citation title ------------------------------------------------- */

.geo-citation-heading {
  display: flex;
  align-items: center;
  flex-wrap: wrap;

  gap: 9px;
}

.geo-citation-heading strong {
  color: #183d50;

  font-family: "Work Sans", sans-serif;
  font-size: 0.86rem;
  font-weight: 700;
  line-height: 1.4;

  overflow-wrap: anywhere;
}

.geo-citation-status {
  display: inline-flex;
  align-items: center;

  padding: 5px 8px;

  color: #886315;
  background: #fff4d8;

  border-radius: 999px;

  font-family: "Work Sans", sans-serif;
  font-size: 0.62rem;
  font-weight: 700;
  line-height: 1;

  white-space: nowrap;
}

.geo-citation-item.is-verified .geo-citation-status {
  color: #28734d;
  background: #e4f5eb;
}


/* Citation URL --------------------------------------------------- */

.geo-citation-main > a {
  display: block;

  max-width: 100%;

  margin-top: 9px;

  color: #0074a6;

  font-family: "Work Sans", sans-serif;
  font-size: 0.72rem;
  font-weight: 550;
  line-height: 1.5;

  text-decoration: none;

  overflow-wrap: anywhere;
  word-break: break-word;
}

.geo-citation-main > a:hover {
  color: #032e4d;
  text-decoration: underline;
}


/* Citation metadata ---------------------------------------------- */

.geo-citation-meta {
  display: flex;
  flex-wrap: wrap;

  gap: 6px 16px;

  margin-top: 10px;
}

.geo-citation-meta span {
  position: relative;

  color: #718791;

  font-family: "Work Sans", sans-serif;
  font-size: 0.66rem;
  font-weight: 500;
  line-height: 1.4;
}

.geo-citation-meta span:not(:last-child)::after {
  content: "•";

  position: absolute;
  right: -10px;

  color: #bac6cb;
}

.geo-citation-main > p {
  margin: 12px 0 0;

  color: #58717c;

  font-family: "Work Sans", sans-serif;
  font-size: 0.72rem;
  font-weight: 450;
  line-height: 1.6;
}


/* Citation actions ----------------------------------------------- */

.geo-citation-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;

  flex: 0 0 auto;

  gap: 8px;
}

.geo-citation-actions form {
  margin: 0;
}

.geo-citation-actions .button {
  min-height: 40px;

  padding-right: 14px;
  padding-left: 14px;

  font-size: 0.72rem;
  font-weight: 650;

  border-radius: 8px;

  white-space: nowrap;
}

.geo-citation-actions .admin-btn-light {
  color: #17475e;
  background: #ffffff;

  border: 1px solid #bfd0d8;
}

.geo-citation-actions .admin-btn-light:hover {
  color: #ffffff;
  background: #054d7f;

  border-color: #054d7f;
}


/* Empty state ---------------------------------------------------- */

.geo-citation-empty {
  margin-top: 18px;
  padding: 20px;

  color: #70858f;
  background: #f8fafb;

  border: 1px dashed #ccdce2;
  border-radius: 12px;

  font-family: "Work Sans", sans-serif;
  font-size: 0.82rem;
  line-height: 1.55;
}


/* ----------------------------------------------------------------
   ADD CITATION
   ---------------------------------------------------------------- */

.geo-citation-new {
  margin-top: 30px;
  padding-top: 30px;

  border-top: 1px solid #dce6ea;
}

.geo-citation-new > .admin-section-kicker {
  margin-bottom: 24px;
}


/* Labels --------------------------------------------------------- */

.geo-citations-card .label {
  margin-bottom: 8px;

  color: #3d5966 !important;

  font-family: "Work Sans", sans-serif;
  font-size: 0.78rem !important;
  font-weight: 650 !important;
  line-height: 1.35;
}


/* Fields --------------------------------------------------------- */

.geo-citation-new .field {
  margin-bottom: 1.25rem;
}

.geo-citation-new .input,
.geo-citation-new .textarea,
.geo-citation-new .select select {
  width: 100%;

  color: #213f4e !important;
  background: #ffffff !important;

  border: 1px solid #ccdce4 !important;
  border-radius: 9px !important;

  box-shadow: none !important;

  font-family: "Work Sans", sans-serif;
  font-size: 0.86rem !important;
  font-weight: 500;

  transition:
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.geo-citation-new .input,
.geo-citation-new .select select {
  min-height: 48px;
}

.geo-citation-new .textarea {
  min-height: 130px;

  padding: 14px;

  line-height: 1.55;

  resize: vertical;
}

.geo-citation-new .input::placeholder,
.geo-citation-new .textarea::placeholder {
  color: #a1afb6 !important;
  opacity: 1;
}

.geo-citation-new .input:focus,
.geo-citation-new .textarea:focus,
.geo-citation-new .select select:focus {
  border-color: #1388bc !important;

  box-shadow:
    0 0 0 3px
    rgba(19, 136, 188, 0.12) !important;

  outline: none;
}


/* Select arrow --------------------------------------------------- */

.geo-citation-new .select {
  width: 100%;
}

.geo-citation-new .select select {
  padding-right: 2.7rem;
}


/* Verified toggle card ------------------------------------------- */

.geo-citation-new .admin-toggle {
  display: flex;
  align-items: center;

  width: 100%;
  min-width: 0;
  min-height: 82px;

  gap: 15px;

  margin: 0;
  padding: 16px 18px;

  background: #f9fbfc;

  border: 1px solid #d4e1e7;
  border-radius: 13px;
}

.geo-citation-new .admin-toggle > span {
  flex: 0 0 auto;
}

.geo-citation-new .admin-toggle > div {
  flex: 1;

  min-width: 0;
}

.geo-citation-new .admin-toggle strong {
  display: block;

  color: #173f52;

  font-family: "Work Sans", sans-serif;
  font-size: 0.85rem;
  font-weight: 700;
}

.geo-citation-new .admin-toggle p {
  margin: 5px 0 0;

  color: #647b86;

  font-family: "Work Sans", sans-serif;
  font-size: 0.72rem;
  font-weight: 450;
  line-height: 1.5;
}


/* Add button ----------------------------------------------------- */

.geo-citation-new > form > .button.is-primary {
  min-width: 165px;
  min-height: 46px;

  padding: 0 20px;

  font-size: 0.82rem;
  font-weight: 700;

  border-radius: 9px;
}


/* ----------------------------------------------------------------
   FRESHNESS
   ---------------------------------------------------------------- */

.geo-freshness-panel {
  margin-top: 28px;
}

.geo-freshness-list {
  display: grid;

  gap: 10px;

  margin-top: 18px;
}

.geo-freshness-row {
  display: flex;
  align-items: center;
  justify-content: space-between;

  gap: 20px;

  padding: 16px;

  background: #fafcfd;

  border: 1px solid #dfe8eb;
  border-left: 4px solid #8da5af;
  border-radius: 10px;
}

.geo-freshness-row.is-high {
  border-left-color: #d76248;
}

.geo-freshness-row.is-medium {
  border-left-color: #d7a13b;
}

.geo-freshness-row > div {
  min-width: 0;
}

.geo-freshness-row span,
.geo-freshness-row strong,
.geo-freshness-row small {
  display: block;
}

.geo-freshness-row span {
  color: #7c9098;

  font-size: 0.64rem;
  font-weight: 650;

  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.geo-freshness-row strong {
  margin-top: 4px;

  color: #294653;

  font-size: 0.82rem;
  font-weight: 700;
}

.geo-freshness-row small {
  margin-top: 5px;

  color: #738991;

  font-size: 0.7rem;
  line-height: 1.45;
}


/* ----------------------------------------------------------------
   PUBLISH READINESS
   ---------------------------------------------------------------- */

.geo-publish-readiness {
  border-color: rgba(5, 77, 127, 0.18);
}

.geo-publish-readiness .admin-form-panel-heading {
  display: grid;

  grid-template-columns:
    auto
    minmax(0, 1fr)
    auto;

  gap: 16px;
}

.geo-publish-score {
  display: flex;
  align-items: baseline;

  gap: 3px;

  padding: 12px 15px;

  color: #ffffff;

  background:
    linear-gradient(
      135deg,
      #032e4d,
      #054d7f
    );

  border-radius: 11px;
}

.geo-publish-score strong {
  font-family: "Barlow", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
}

.geo-publish-score span {
  color: rgba(255, 255, 255, 0.68);

  font-size: 0.68rem;
  font-weight: 600;
}

.geo-publish-readiness-grid {
  display: grid;

  grid-template-columns:
    repeat(
      3,
      minmax(0, 1fr)
    );

  gap: 12px;

  padding: 20px 22px 0;
}

.geo-publish-readiness-grid > div {
  padding: 16px;

  background: #f8fafb;

  border: 1px solid #dfe8eb;
  border-radius: 10px;
}

.geo-publish-readiness-grid span,
.geo-publish-readiness-grid strong {
  display: block;
}

.geo-publish-readiness-grid span {
  color: #718791;

  font-size: 0.66rem;
  font-weight: 550;
}

.geo-publish-readiness-grid strong {
  margin-top: 5px;

  color: #294653;

  font-size: 0.86rem;
  font-weight: 700;
}

.geo-publish-opportunities {
  display: flex;
  flex-wrap: wrap;

  gap: 8px;

  padding: 15px 22px 0;
}

.geo-publish-opportunities > span {
  display: inline-flex;
  align-items: center;

  gap: 6px;

  padding: 8px 11px;

  color: #536a75;
  background: #fff7e8;

  border: 1px solid #efdbb4;
  border-radius: 999px;

  font-size: 0.66rem;
  font-weight: 600;
}

.geo-publish-opportunities strong {
  color: #986109;
}


/* ----------------------------------------------------------------
   MOBILE
   ---------------------------------------------------------------- */

@media screen and (max-width: 768px) {
  .geo-citations-card {
    margin-top: 20px;

    padding: 20px !important;

    border-radius: 14px;
  }

  .geo-citations-card .admin-card-header {
    flex-direction: column;

    gap: 14px;

    margin-bottom: 20px;
  }

  .geo-citation-count {
    align-self: flex-start;

    padding: 8px 11px;

    font-size: 0.66rem;
  }

  .geo-citation-item {
    flex-direction: column;

    gap: 18px;

    padding: 17px;
  }

  .geo-citation-main,
  .geo-citation-actions {
    width: 100%;
  }

  .geo-citation-actions {
    display: grid;

    grid-template-columns:
      repeat(
        2,
        minmax(0, 1fr)
      );

    gap: 8px;
  }

  .geo-citation-actions form {
    display: block;

    width: 100%;
    min-width: 0;
  }

  .geo-citation-actions .button {
    width: 100%;
    max-width: 100%;

    min-height: 44px;

    white-space: normal;
  }

  .geo-citation-new {
    margin-top: 24px;
    padding-top: 24px;
  }

  .geo-citation-new .columns {
    margin-right: 0;
    margin-left: 0;
  }

  .geo-citation-new .column {
    width: 100%;

    padding-right: 0;
    padding-left: 0;
  }

  .geo-citation-new .admin-toggle {
    min-height: auto;

    padding: 15px;
  }

  .geo-citation-new > form > .button.is-primary {
    width: 100%;
  }

  .geo-freshness-row {
    align-items: flex-start;
    flex-direction: column;

    gap: 12px;
  }

  .geo-freshness-row .button {
    width: 100%;
  }

  .geo-publish-readiness .admin-form-panel-heading {
    grid-template-columns:
      auto
      minmax(0, 1fr);
  }

  .geo-publish-score {
    grid-column: 1 / -1;

    justify-self: start;
  }

  .geo-publish-readiness-grid {
    grid-template-columns: 1fr;

    padding-right: 16px;
    padding-left: 16px;
  }

  .geo-publish-opportunities {
    padding-right: 16px;
    padding-left: 16px;
  }
}


@media screen and (max-width: 480px) {
  .geo-citations-card {
    padding: 16px !important;
  }

  .geo-citations-card .admin-card-title {
    font-size: 1.25rem;
  }

  .geo-citations-card .admin-card-subtitle {
    font-size: 0.82rem;
  }

  .geo-citation-heading strong {
    font-size: 0.82rem;
  }

  .geo-citation-actions {
    grid-template-columns: 1fr;
  }

  .geo-citation-meta {
    flex-direction: column;

    gap: 4px;
  }

  .geo-citation-meta span::after {
    display: none;
  }
}