/* Central do Radialista — camada PHP/SQLite */
:root {
  color-scheme: dark;
}

[hidden] {
  display: none !important;
}

button,
select,
textarea,
input {
  font: inherit;
}

svg {
  flex: none;
}

.skip-link {
  position: fixed;
  z-index: 9999;
  top: 8px;
  left: 8px;
  padding: 10px 14px;
  color: #071006;
  background: #d7ff73;
  border-radius: 8px;
  transform: translateY(-150%);
}

.skip-link:focus {
  transform: none;
}

.action-primary,
.action-secondary,
.danger-button,
.text-button,
.vote-button,
.feedback-button,
.filter-button,
.inline-form button {
  appearance: none;
  border: 1px solid transparent;
  border-radius: 11px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 42px;
  padding: 9px 15px;
  line-height: 1.2;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.action-primary,
a.action-primary,
button.action-primary,
.action-primary:visited {
  color: #071006 !important;
  background: #b8e842 !important;
  border-color: #d7ff73 !important;
  text-shadow: none !important;
  box-shadow: 0 8px 24px rgba(184, 232, 66, .14);
  display: inline-flex;
}

.action-primary:hover,
.action-primary:focus-visible {
  color: #030703 !important;
  background: #d0f76e !important;
  border-color: #edffb9 !important;
  transform: translateY(-1px);
}

.action-secondary,
a.action-secondary,
button.action-secondary {
  color: #eef5ef !important;
  background: #18221d !important;
  border-color: #45544c !important;
  display: inline-flex;
}

.action-secondary:hover,
.action-secondary:focus-visible {
  color: #ffffff !important;
  background: #243129 !important;
  border-color: #75877c !important;
}

.action-large {
  min-height: 50px;
  padding-inline: 20px;
  font-size: 15px;
}

.danger-button {
  color: #fff4f3;
  background: #4a1c1b;
  border-color: #a24945;
}

.danger-button:hover {
  background: #672522;
  border-color: #e06e68;
}

.text-button {
  color: #c2cec6;
  background: transparent;
  border-color: #3a463f;
}

.text-button:hover {
  color: #fff;
  background: #1b241f;
}

button:disabled,
.action-primary:disabled {
  opacity: .52;
  cursor: not-allowed;
  transform: none;
}

.portal-badge,
.hero-badge {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 9px;
  color: #c2ccc5;
  background: #19221d;
  border: 1px solid #3b473f;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
}

.portal-badge svg,
.hero-badge svg {
  width: 13px;
  height: 13px;
}

.portal-badge.badge-free {
  color: #e4ff9b;
  background: #b8e84217;
  border-color: #b8e84270;
}

.portal-badge.badge-open {
  color: #9df3e7;
  background: #55dcc714;
  border-color: #55dcc766;
}

.portal-badge.badge-paid,
.portal-badge.badge-check {
  color: #ffd79f;
  background: #ffb65c17;
  border-color: #ffb65c6b;
}

.portal-badge.badge-user {
  color: #d7dcff;
  background: #7187ff17;
  border-color: #7187ff61;
}

/* Cabeçalho e anúncios */
.php-site-header .header-inner {
  min-height: 84px;
}

.php-site-header .brand-logo-horizontal,
.global-site-footer .brand-logo-horizontal {
  width: 118px;
  height: 43px;
}

.php-site-header .account-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.php-site-header .account-actions svg {
  width: 16px;
  height: 16px;
}

.ecosystem-footer-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.footer-sjb-links .ecosystem-footer-links a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 58px;
  padding: 9px 11px;
  color: #eef4ef;
  background: #111813;
  border: 1px solid #2d3932;
  border-radius: 10px;
  text-decoration: none;
}

.footer-sjb-links .ecosystem-footer-links a:hover,
.footer-sjb-links .ecosystem-footer-links a:focus-visible {
  color: #ffffff;
  background: #18221d;
  border-color: #55645b;
}

.ecosystem-footer-links a > span {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.ecosystem-footer-links a strong {
  color: inherit;
  font-size: 12px;
  font-weight: 850;
}

.ecosystem-footer-links a small {
  color: #96a199;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.35;
}

.ecosystem-footer-links a > svg {
  width: 14px;
  height: 14px;
  color: #b8e842;
}

.dynamic-banner-top {
  border-width: 0 0 1px;
  border-radius: 0;
}

.dynamic-banner-top > a {
  width: min(1180px, calc(100% - 40px));
  min-height: 68px;
  margin-inline: auto;
  padding: 10px 0;
}

.dynamic-banner-top img {
  width: 116px;
  height: 42px;
  object-fit: contain;
  background: #060907;
  border-radius: 9px;
  padding: 4px;
}

.dynamic-banner-sidebar,
.dynamic-banner-footer {
  border-radius: 16px;
}

.dynamic-banner-sidebar > a {
  flex-direction: column;
  align-items: stretch;
  padding: 18px;
}

.dynamic-banner-sidebar img {
  width: 58px;
  height: 58px;
  object-fit: contain;
  border-radius: 12px;
}

.dynamic-banner-sidebar .dynamic-banner-cta {
  justify-content: center;
  min-height: 40px;
  color: #071006;
  background: #b8e842;
  border: 1px solid #d7ff73;
  border-radius: 9px;
}

.dynamic-banner-footer {
  margin-block: 42px;
}

.dynamic-banner-footer > a {
  min-height: 92px;
  padding: 16px 20px;
}

.dynamic-banner-footer img {
  width: 120px;
  height: 48px;
  object-fit: contain;
  border-radius: 9px;
}

.dynamic-banner-cta svg {
  width: 15px;
  height: 15px;
}

/* Catálogo e participação */
.hero-badge {
  color: #a5f7eb;
  text-transform: uppercase;
  letter-spacing: .08em;
  background: #55dcc714;
  border-color: #55dcc75f;
}

.resource-card .official-link {
  width: 100%;
  margin-top: auto;
}

.resource-card .official-link svg {
  width: 16px;
  height: 16px;
}

.user-source-warning {
  display: flex;
  gap: 7px;
  margin: 10px 0 0;
  color: #aeb8b1;
  font-size: 11px;
  line-height: 1.45;
}

.user-source-warning svg {
  width: 15px;
  height: 15px;
  color: #b7c4ff;
}

.vote-button,
.feedback-button {
  min-height: 36px;
  padding: 6px 9px;
  color: #d3dbd5;
  background: #161e1a;
  border-color: #3a473f;
  font-size: 12px;
  display: inline-flex;
}

.vote-button:hover,
.feedback-button:hover {
  color: #fff;
  background: #212c26;
  border-color: #627168;
}

.vote-button svg,
.feedback-button svg {
  width: 14px;
  height: 14px;
}

.vote-button span,
.feedback-button span {
  min-width: 20px;
  padding: 1px 5px;
  border-radius: 999px;
  background: #ffffff12;
  font-variant-numeric: tabular-nums;
}

.vote-button.vote-selected-good {
  color: #e5ff9c;
  background: #b8e8421f;
  border-color: #b8e842a6;
}

.vote-button.vote-selected-broken {
  color: #ffaaa6;
  background: #f37a751f;
  border-color: #f37a7580;
}

.filter-button {
  min-height: 36px;
  padding: 7px 12px;
  color: #b9c3bc;
  background: #121814;
  border-color: #334039;
  font-size: 12px;
}

.filter-button:hover {
  color: #fff;
  border-color: #64746a;
}

.filter-button[aria-pressed="true"] {
  color: #071006;
  background: #b8e842;
  border-color: #d7ff73;
}

.link-check-public {
  display: block;
  margin-top: 8px;
  color: #8f9b93;
  font-size: 11px;
}

.link-check-ok {
  color: #bfe879;
}

.link-check-broken,
.link-check-unknown {
  color: #ffaaa6;
}

/* Formulários e diálogos */
.portal-form {
  display: grid;
  gap: 16px;
}

.portal-form label,
.review-actions label,
.admin-module-heading form label {
  display: grid;
  gap: 6px;
  color: #c7d0ca;
  font-size: 13px;
  font-weight: 750;
}

.portal-form input,
.portal-form select,
.portal-form textarea,
.review-actions input,
.review-actions select,
.review-actions textarea,
.admin-module-heading input,
.admin-module-heading select,
.admin-list-toolbar input,
.inline-form select {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  color: #f4f7f5;
  background: #0c110e;
  border: 1px solid #3a473f;
  border-radius: 9px;
  outline: none;
}

.portal-form textarea,
.review-actions textarea {
  min-height: 110px;
  resize: vertical;
  line-height: 1.5;
}

.portal-form .guide-editor {
  min-height: 420px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 13px;
}

.portal-form input:focus,
.portal-form select:focus,
.portal-form textarea:focus,
.review-actions textarea:focus,
.admin-list-toolbar input:focus,
.inline-form select:focus {
  border-color: #b8e842;
  box-shadow: 0 0 0 3px #b8e8421c;
}

.form-grid-two,
.form-grid-three {
  display: grid;
  gap: 13px;
}

.form-grid-two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-grid-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.choice-row {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 12px;
}

.choice-card {
  flex: 1 1 220px;
  grid-template-columns: auto 1fr !important;
  align-items: start;
  gap: 10px !important;
  padding: 15px;
  background: #111713;
  border: 1px solid #36423b;
  border-radius: 11px;
}

.choice-card input,
.check-label input {
  width: 18px;
  min-height: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: #b8e842;
}

.choice-card span {
  display: grid;
  gap: 3px;
}

.choice-card small {
  color: #8d9991;
  font-weight: 500;
}

.check-label {
  display: flex !important;
  grid-template-columns: none !important;
  align-items: flex-start;
  gap: 9px !important;
}

.check-label a {
  color: #d7ff73;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.form-alert,
.flash {
  padding: 13px 15px;
  border: 1px solid;
  border-radius: 10px;
  font-size: 14px;
}

.flash {
  margin-top: 18px;
}

.form-alert-error,
.flash-error {
  color: #ffd0cd;
  background: #451a191f;
  border-color: #c75c57;
}

.form-alert-success,
.flash-success {
  color: #e5ff9c;
  background: #b8e84212;
  border-color: #8aac37;
}

.form-alert-warning,
.flash-warning {
  color: #ffe1b6;
  background: #ffb65c12;
  border-color: #9e6d32;
}

.feedback-dialog-native {
  width: min(680px, calc(100% - 30px));
  max-height: min(820px, calc(100vh - 30px));
  padding: 24px;
  color: #f2f6ef;
  background: #101612;
  border: 1px solid #48564e;
  border-radius: 18px;
  box-shadow: 0 30px 100px #000b;
  overflow: auto;
}

.feedback-dialog-native::backdrop {
  background: #030604d9;
  backdrop-filter: blur(5px);
}

.dialog-close-row {
  display: flex;
  justify-content: flex-end;
}

.dialog-close-row button {
  width: 38px;
  height: 38px;
  color: #fff;
  background: #1a231e;
  border: 1px solid #3d4a42;
  border-radius: 50%;
  font-size: 24px;
  cursor: pointer;
}

.dialog-heading h2 {
  margin: 10px 0 3px;
}

.dialog-heading p {
  margin: 0;
  color: #98a49c;
}

.public-comments {
  margin-block: 20px;
  padding-block: 17px;
  border-block: 1px solid #2f3b34;
}

.public-comments h3 {
  margin: 0 0 12px;
  font-size: 15px;
}

.public-comments ul {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.public-comments li {
  padding: 11px;
  background: #0b100d;
  border-radius: 9px;
}

.public-comments p {
  margin: 4px 0;
  color: #c1cbc4;
}

.public-comments time {
  color: #78867d;
  font-size: 11px;
}

.login-required {
  display: grid;
  place-items: center;
  gap: 10px;
  text-align: center;
}

.login-required > svg {
  width: 30px;
  height: 30px;
  color: #55dcc7;
}

/* Login, envio, termos e instalação */
.account-page,
.submission-page,
.legal-page,
.guides-page,
.guide-page {
  padding-block: 58px 90px;
}

.account-intro,
.submission-hero,
.legal-hero,
.guides-hero,
.guide-hero {
  max-width: 820px;
  margin-bottom: 30px;
}

.account-intro h1,
.submission-hero h1,
.legal-hero h1,
.guides-hero h1,
.guide-hero h1 {
  margin: 13px 0 10px;
  letter-spacing: -.045em;
  font-size: clamp(36px, 5vw, 58px);
  line-height: 1.04;
}

.account-intro p,
.submission-hero p,
.legal-hero p,
.guides-hero p,
.guide-hero p {
  color: #aeb8b1;
  font-size: 17px;
}

.account-grid,
.submission-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: start;
}

.submission-layout {
  grid-template-columns: minmax(0, 1.55fr) minmax(280px, .65fr);
}

.account-card,
.submission-card,
.submission-history,
.legal-section,
.guide-article {
  padding: clamp(22px, 4vw, 34px);
  background: #101612;
  border: 1px solid #303c35;
  border-radius: 17px;
}

.account-card h2,
.submission-history h2 {
  margin-top: 0;
}

.account-card-centered {
  max-width: 650px;
  margin-inline: auto;
  text-align: center;
}

.account-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 24px 0 15px;
}

.submission-warning,
.catalog-legal-note,
.uncertain-note {
  display: flex;
  gap: 10px;
}

.submission-warning {
  padding: 14px;
  color: #d6ded8;
  background: #ffb65c0d;
  border: 1px solid #77552e;
  border-radius: 10px;
}

.submission-warning svg {
  width: 22px;
  height: 22px;
  color: #ffc77f;
}

.submission-warning p {
  margin: 4px 0 0;
  color: #aeb8b1;
  font-size: 13px;
}

.history-list {
  display: grid;
  gap: 10px;
}

.history-list article {
  padding: 14px;
  background: #0b100d;
  border: 1px solid #29342e;
  border-radius: 10px;
}

.history-list h3 {
  margin: 8px 0 3px;
  font-size: 16px;
}

.history-list a {
  display: block;
  color: #aeb9ff;
  overflow-wrap: anywhere;
  font-size: 12px;
}

.history-list time {
  display: block;
  margin-top: 7px;
  color: #7f8b83;
  font-size: 11px;
}

.status-pill {
  display: inline-flex;
  width: fit-content;
  padding: 3px 8px;
  color: #d1d9d3;
  background: #1c2520;
  border: 1px solid #465149;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.status-approved,
.status-ok {
  color: #e3ff98;
  background: #b8e84214;
  border-color: #91b73c;
}

.status-rejected,
.status-broken,
.status-blocked {
  color: #ffb6b2;
  background: #f37a7514;
  border-color: #a74d49;
}

.status-pending,
.status-unknown,
.status-redirect {
  color: #ffe0b3;
  background: #ffb65c14;
  border-color: #9b6a31;
}

.status-resolved {
  color: #9df3e7;
  background: #55dcc714;
  border-color: #409e90;
}

.install-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 34px 20px;
}

.install-card {
  width: min(760px, 100%);
  padding: clamp(24px, 5vw, 46px);
  background: linear-gradient(145deg, #141b17, #0d120f);
  border: 1px solid #38463e;
  border-radius: 22px;
  box-shadow: 0 35px 100px #0008;
}

.install-card > img {
  width: 168px;
  height: auto;
  object-fit: contain;
  margin-bottom: 20px;
}

.install-card h1 {
  margin: 12px 0 5px;
  font-size: clamp(34px, 6vw, 54px);
  line-height: 1;
}

.install-card > p {
  color: #aab5ad;
}

.requirement-list {
  display: grid;
  gap: 7px;
  margin: 24px 0;
}

.requirement {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 9px;
  padding: 10px 12px;
  background: #0a0e0c;
  border: 1px solid #303b35;
  border-radius: 9px;
  font-size: 13px;
}

.requirement svg {
  width: 17px;
  height: 17px;
}

.requirement-ok svg,
.requirement-ok strong {
  color: #b8e842;
}

.requirement-error svg,
.requirement-error strong {
  color: #ff8f89;
}

.install-note {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 18px 0 0;
  font-size: 12px;
}

.install-note svg {
  width: 17px;
  height: 17px;
}

/* Painel */
.admin-page {
  padding-block: 42px 90px;
}

.admin-control-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}

.admin-control-hero h1 {
  margin: 10px 0 4px;
  letter-spacing: -.05em;
  font-size: clamp(36px, 5vw, 58px);
  line-height: 1;
}

.admin-control-hero p {
  margin: 0;
  color: #9ca8a0;
}

.admin-hero-actions,
.admin-hero-actions form {
  display: flex;
  align-items: center;
  gap: 8px;
}

.admin-hero-actions svg {
  width: 15px;
  height: 15px;
}

.admin-layout {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 22px;
  align-items: start;
}

.admin-nav {
  position: sticky;
  top: 106px;
  display: grid;
  gap: 5px;
  padding: 10px;
  background: #101612;
  border: 1px solid #303b35;
  border-radius: 14px;
}

.admin-nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 41px;
  padding: 9px 11px;
  color: #aeb8b1;
  border-radius: 9px;
  font-size: 13px;
  font-weight: 750;
}

.admin-nav a:hover {
  color: #fff;
  background: #19211d;
}

.admin-nav a.active {
  color: #071006;
  background: #b8e842;
}

.admin-nav a span {
  min-width: 21px;
  padding: 2px 5px;
  color: #fff;
  background: #ca4c46;
  border-radius: 999px;
  text-align: center;
  font-size: 10px;
}

.admin-workspace {
  min-width: 0;
}

.admin-module-heading,
.admin-card-heading,
.admin-list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.admin-module-heading {
  margin-bottom: 16px;
}

.admin-module-heading h2 {
  margin: 8px 0 2px;
  font-size: clamp(25px, 3vw, 36px);
  line-height: 1.1;
}

.admin-module-heading p {
  margin: 5px 0 0;
  color: #97a39b;
}

.admin-module-heading > form {
  display: flex;
  align-items: end;
  gap: 8px;
}

.admin-stats-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}

.admin-stats-grid article {
  display: grid;
  padding: 18px;
  background: linear-gradient(145deg, #141b17, #0f1511);
  border: 1px solid #303c35;
  border-radius: 13px;
}

.admin-stats-grid strong {
  color: #d7ff73;
  font-size: 29px;
  line-height: 1;
}

.admin-stats-grid span {
  margin-top: 7px;
  color: #9ba69f;
  font-size: 12px;
}

.admin-panel-card {
  margin-bottom: 18px;
  padding: 21px;
  background: #101612;
  border: 1px solid #303c35;
  border-radius: 14px;
}

.admin-panel-card h3 {
  margin-top: 0;
}

.admin-card-heading {
  margin-bottom: 12px;
}

.admin-card-heading h3 {
  margin: 0;
}

.admin-list-toolbar {
  margin: 20px 0 10px;
  color: #89958d;
  font-size: 12px;
}

.admin-list-toolbar form {
  display: flex;
  gap: 7px;
  width: min(520px, 100%);
}

.admin-table-wrap {
  width: 100%;
  overflow-x: auto;
  background: #101612;
  border: 1px solid #303b35;
  border-radius: 13px;
}

.admin-table-wrap table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  font-size: 12px;
}

.admin-table-wrap th,
.admin-table-wrap td {
  padding: 12px 13px;
  border-bottom: 1px solid #29342e;
  text-align: left;
  vertical-align: top;
}

.admin-table-wrap tr:last-child td {
  border-bottom: 0;
}

.admin-table-wrap th {
  color: #89968d;
  background: #0b100d;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: 10px;
}

.admin-table-wrap td > strong,
.admin-table-wrap td > span,
.admin-table-wrap td > a,
.admin-table-wrap td > small {
  display: block;
}

.admin-table-wrap td > a {
  max-width: 310px;
  color: #abb7ff;
  overflow-wrap: anywhere;
}

.admin-table-wrap td > small,
.admin-table-wrap td > span:not(.status-pill) {
  color: #7f8b83;
}

.table-actions,
.inline-form {
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
}

.table-actions > a,
.table-actions button,
.inline-form button {
  min-height: 31px;
  padding: 5px 8px;
  color: #eff5f1;
  background: #1a241e;
  border: 1px solid #3a483f;
  border-radius: 7px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 750;
}

.inline-form select {
  width: auto;
  min-height: 32px;
  padding: 5px 7px;
  font-size: 11px;
}

.admin-filter-links {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.admin-filter-links a {
  padding: 6px 9px;
  color: #aab5ad;
  background: #111713;
  border: 1px solid #344039;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 750;
}

.admin-filter-links a.active {
  color: #071006;
  background: #b8e842;
  border-color: #d7ff73;
}

.admin-review-list {
  display: grid;
  gap: 11px;
}

.admin-review-list > article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(230px, .42fr);
  gap: 20px;
  padding: 20px;
  background: #101612;
  border: 1px solid #303b35;
  border-radius: 13px;
}

.admin-review-list.compact > article {
  grid-template-columns: minmax(0, 1fr) 220px;
}

.review-main h3 {
  margin: 8px 0 4px;
}

.review-main p {
  margin: 5px 0 10px;
  color: #b2bcb5;
}

.review-main > a {
  display: flex;
  gap: 5px;
  color: #adb8ff;
  overflow-wrap: anywhere;
  font-size: 12px;
}

.review-main > a svg {
  width: 13px;
  height: 13px;
}

.review-main dl {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 25px;
  margin: 15px 0 0;
}

.review-main dt {
  color: #77857c;
  text-transform: uppercase;
  font-size: 9px;
  font-weight: 850;
}

.review-main dd {
  margin: 2px 0 0;
  color: #cbd3ce;
  font-size: 11px;
}

.review-actions {
  display: grid;
  align-content: start;
  gap: 9px;
}

.review-actions > div {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.review-actions textarea {
  min-height: 76px;
}

.settings-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
}

.settings-grid hr {
  margin: 24px 0;
  border: 0;
  border-top: 1px solid #303b35;
}

.admin-help,
.admin-empty {
  color: #909c94;
  font-size: 12px;
}

/* Páginas temáticas e navegação indexável */
.seo-category-index {
  display: grid;
  gap: 14px;
  margin: 18px 0 22px;
  padding: 17px;
  background: #101612;
  border: 1px solid #303c35;
  border-radius: 14px;
}

.seo-category-index > div:first-child {
  display: grid;
  gap: 3px;
}

.seo-category-index > div:first-child strong {
  color: #edf3ee;
  font-size: 16px;
}

.seo-category-index > div:first-child span {
  color: #95a198;
  font-size: 14px;
}

.seo-category-index > div:last-child {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.seo-category-index a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 7px 10px;
  color: #d5ded8;
  background: #18211c;
  border: 1px solid #39463e;
  border-radius: 9px;
  font-size: 14px;
  font-weight: 750;
  text-decoration: none;
}

.seo-category-index a:hover,
.seo-category-index a:focus-visible {
  color: #071006;
  background: #b8e842;
  border-color: #d7ff73;
}

.category-page {
  padding-top: 1px;
}

.category-hero {
  padding-block: 42px 64px;
}

.category-hero .guide-breadcrumb {
  margin-bottom: 34px;
}

.category-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(290px, .65fr);
  gap: clamp(28px, 5vw, 70px);
  align-items: start;
}

.category-hero-copy h1 {
  max-width: 860px;
  margin: 13px 0 20px;
  color: #f4f7f5;
  letter-spacing: -.05em;
  font-size: clamp(40px, 5.7vw, 70px);
  line-height: 1.02;
}

.category-hero-copy > p {
  max-width: 820px;
  margin: 0 0 14px;
  color: #b2bdb5;
  font-size: 17px;
  line-height: 1.72;
}

.category-hero-copy > p + p {
  color: #919e95;
  font-size: 15px;
}

.category-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 27px;
}

.category-summary {
  padding: 24px;
  background: linear-gradient(145deg, #142019, #0d140f);
  border: 1px solid #3c4b42;
  border-radius: 17px;
  box-shadow: 0 22px 60px #0004;
}

.category-summary > span,
.category-count {
  display: inline-flex;
  width: fit-content;
  padding: 5px 9px;
  color: #e5ff9c;
  background: #b8e84214;
  border: 1px solid #91b73c;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 850;
}

.category-summary h2 {
  margin: 18px 0 13px;
  font-size: 24px;
}

.category-summary ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.category-summary li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: #d4ddd7;
  font-size: 14px;
  line-height: 1.45;
}

.category-summary li svg {
  width: 17px;
  height: 17px;
  margin-top: 2px;
  color: #b8e842;
}

.category-summary p {
  margin: 20px 0 0;
  padding-top: 16px;
  color: #87948b;
  border-top: 1px solid #2d3932;
  font-size: 13px;
  line-height: 1.55;
}

.category-catalog {
  padding-bottom: 80px;
}

.category-catalog-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
  margin-bottom: 23px;
}

.category-catalog-heading h2,
.category-related h2 {
  margin: 8px 0 5px;
  letter-spacing: -.04em;
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.05;
}

.category-catalog-heading p {
  margin: 0;
  color: #929f96;
  font-size: 15px;
}

.category-license-note {
  margin-bottom: 17px;
}

.category-resource-grid {
  margin-top: 22px;
}

.category-resource-grid .resource-card {
  min-height: 100%;
}

.category-sjb-cta {
  padding-block: 58px;
  background: radial-gradient(circle at 82% 20%, #b8e84218, transparent 32%), #0c120e;
  border-block: 1px solid #28342d;
}

.category-sjb-cta > .shell {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
  align-items: center;
  gap: clamp(26px, 5vw, 70px);
}

.category-sjb-cta h2 {
  max-width: 780px;
  margin: 14px 0 10px;
  letter-spacing: -.045em;
  font-size: clamp(30px, 4.5vw, 50px);
  line-height: 1.08;
}

.category-sjb-cta p {
  max-width: 760px;
  margin: 0;
  color: #aab5ad;
  font-size: 16px;
  line-height: 1.65;
}

.category-sjb-cta > .shell > div:last-child {
  display: grid;
  gap: 12px;
  justify-items: start;
}

.category-sjb-cta > .shell > div:last-child > a:last-child {
  color: #d9e3dc;
  font-size: 14px;
  font-weight: 800;
  text-underline-offset: 4px;
}

.category-related {
  padding-block: 72px 42px;
}

.category-related > div {
  margin-bottom: 22px;
}

.category-related nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
}

.category-related nav > a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  min-height: 88px;
  padding: 17px;
  color: #e9efeb;
  background: #111713;
  border: 1px solid #303c35;
  border-radius: 13px;
  text-decoration: none;
}

.category-related nav > a:hover,
.category-related nav > a:focus-visible {
  background: #18211c;
  border-color: #5a695f;
}

.category-related nav > a > svg {
  width: 19px;
  height: 19px;
  color: #b8e842;
}

.category-related nav > a > svg:last-child {
  width: 15px;
  height: 15px;
  color: #7f8c83;
}

.category-related nav span {
  display: grid;
  gap: 3px;
}

.category-related nav strong {
  font-size: 15px;
}

.category-related nav small {
  color: #8d9991;
  font-size: 13px;
}

/* Rodapé legal */
.legal-footer-note {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding-block: 17px 26px;
  color: #818d85;
  border-top: 1px solid #202923;
  font-size: 11px;
}

.legal-footer-note svg {
  width: 18px;
  height: 18px;
  color: #55dcc7;
}

.legal-footer-note p {
  margin: 0;
}

.legal-footer-note a {
  color: #b8e842;
  font-weight: 800;
}

@media (max-width: 1080px) {
  .php-site-header .header-inner {
    flex-wrap: wrap;
    gap: 10px 18px;
    padding-block: 12px;
  }

  .php-site-header nav {
    order: 3;
    width: 100%;
    gap: 16px;
    overflow-x: auto;
  }

  .php-site-header .account-actions {
    margin-left: auto;
  }

  .admin-layout {
    grid-template-columns: 1fr;
  }

  .admin-nav {
    position: static;
    grid-template-columns: repeat(5, minmax(130px, 1fr));
    overflow-x: auto;
  }

  .category-hero-grid,
  .category-sjb-cta > .shell {
    grid-template-columns: 1fr;
  }

  .category-summary {
    max-width: 700px;
  }
}

@media (max-width: 760px) {
  .shell {
    width: min(100% - 28px, 1180px);
  }

  .php-site-header .brand > span {
    display: none;
  }

  .php-site-header .account-actions .action-primary,
  .php-site-header .account-actions .action-secondary {
    min-height: 38px;
    padding: 7px 9px;
    font-size: 12px;
  }

  .dynamic-banner-top > a {
    width: calc(100% - 28px);
  }

  .dynamic-banner-top img,
  .dynamic-banner-top .dynamic-banner-copy > span,
  .dynamic-banner-top .dynamic-banner-cta {
    display: none;
  }

  .dynamic-banner-copy strong {
    font-size: 14px;
  }

  .category-hero {
    padding-block: 30px 50px;
  }

  .category-hero .guide-breadcrumb {
    margin-bottom: 25px;
  }

  .category-hero-copy h1 {
    font-size: clamp(38px, 12vw, 55px);
  }

  .category-hero-actions,
  .category-catalog-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .category-hero-actions .action-primary,
  .category-hero-actions .action-secondary,
  .category-sjb-cta .action-primary {
    width: 100%;
  }

  .category-related nav {
    grid-template-columns: 1fr;
  }

  .category-sjb-cta {
    padding-block: 48px;
  }

  .ecosystem-footer-links {
    grid-template-columns: 1fr;
    width: 100%;
  }

  .footer-sjb-links {
    width: 100%;
  }

  .form-grid-two,
  .form-grid-three,
  .account-grid,
  .submission-layout,
  .settings-grid {
    grid-template-columns: 1fr;
  }

  .admin-control-hero,
  .admin-module-heading,
  .admin-list-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-hero-actions {
    flex-wrap: wrap;
  }

  .admin-nav {
    grid-template-columns: repeat(10, minmax(135px, 1fr));
  }

  .admin-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-review-list > article,
  .admin-review-list.compact > article {
    grid-template-columns: 1fr;
  }

  .admin-module-heading > form {
    align-items: stretch;
  }

  .legal-footer-note {
    grid-template-columns: auto 1fr;
  }

  .legal-footer-note a {
    grid-column: 2;
  }

  .dynamic-banner-footer > a {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 480px) {
  .php-site-header .brand-logo-horizontal {
    width: 92px;
  }

  .php-site-header .account-actions .action-primary svg,
  .php-site-header .account-actions .action-secondary svg {
    display: none;
  }

  .vote-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .feedback-button {
    grid-column: 1 / -1;
  }

  .admin-stats-grid {
    grid-template-columns: 1fr;
  }

  .requirement {
    grid-template-columns: auto 1fr;
  }

  .requirement strong {
    grid-column: 2;
  }
}
