/* Root variables */
:root {
  --green: #00823B;
  --green-dark: #00823B;
  --green-accent: #00823B;
  --black: #0F172A;
  --mid: #475569;
  --mid-dark: #1F2937;
  --light: #F8FAFC;
  --card: #FFFFFF;
  --shadow: 0 2px 4px rgba(0,0,0,0.05);
  --radius-md: 0.5rem;
}

*,
*::before,
*::after { box-sizing: border-box; }

body {
  margin:0;
  font-family: 'Inter',sans-serif;
  background: var(--light);
  color: var(--black);
  line-height:1.6;
}

h1,h2,h3 {
  font-family: 'Poppins',sans-serif;
  margin-top:0;
  color: var(--black);
}

a { color: var(--green-dark); text-decoration:none; }
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible { outline: 2px dashed var(--green-accent); outline-offset: 2px; }

input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="date"],
input[type="time"],
input[type="datetime-local"],
select,
textarea {
  width:100%;
  padding:0.5rem;
  border:1px solid var(--mid);
  border-radius:var(--radius-md);
  background:#fff;
  color:inherit;
  font:inherit;
}

input[type="checkbox"] {
  appearance:none;
  display:inline-grid;
  place-items:center;
  width:1.1rem;
  height:1.1rem;
  border-radius:calc(var(--radius-md) / 2);
  border:1px solid var(--mid);
  background:#fff;
  margin:0;
  cursor:pointer;
  transition:border-color 0.2s ease, background-color 0.2s ease;
}

input[type="checkbox"]::after {
  content:"";
  width:0.45rem;
  height:0.25rem;
  border-right:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(45deg) scale(0);
  transform-origin:center;
  transition:transform 0.12s ease-in-out;
}

input[type="checkbox"]:checked {
  background:var(--green);
  border-color:var(--green-dark);
}

input[type="checkbox"]:checked::after {
  transform:rotate(45deg) scale(1);
}

.button {
  display:inline-block;
  padding:0.5rem 1rem;
  border-radius:var(--radius-md);
  font-weight:600;
  border:2px solid var(--green-dark);
  background:var(--green);
  color:#fff;
}
.button--secondary {
  background: transparent;
  color: var(--green-dark);
}

.site-header {
  position:sticky;
  top:0;
  z-index:100;
  background:#fff;
  border-bottom:1px solid rgba(15,23,42,0.08);
}

.site-header__inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  max-width:1200px;
  margin:0 auto;
  padding:0.75rem 1.5rem;
  gap:2rem;
}

.site-header__logo {
  display:inline-flex;
  align-items:center;
  font-weight:700;
  color:var(--black);
}

.site-header__logo img {
  display: block;
  max-height: 32px;
  width: auto;
  margin-right: 8px;
}

.site-header__nav {
  margin-left:auto;
}

.site-header__nav-list {
  list-style:none;
  display:flex;
  align-items:center;
  gap:1.5rem;
  margin:0;
  padding:0;
}

.site-header__welcome {
  display:inline-flex;
  align-items:center;
  margin-left:auto;
  padding-left:2rem;
  font-size:0.875rem;
  color:var(--mid);
  font-weight:500;
}

.site-header__nav-link {
  font-weight:600;
  color:var(--black);
  transition:color 0.2s ease;
}

.site-header__nav-link:hover,
.site-header__nav-link:focus-visible {
  color:var(--green-dark);
}

.site-header__nav-link[aria-current="page"] {
  color:var(--green-dark);
}

@media (max-width:640px) {
  .site-header__inner {
    flex-direction:column;
    align-items:flex-start;
    padding:1rem;
  }

  .site-header__nav-list {
    flex-wrap:wrap;
    gap:1rem;
  }
}

.hero {
  text-align:center;
  padding:4rem 1rem 3rem;
}

.hero__title { font-size:2rem; }
.hero__subtitle { color:var(--mid); margin:1rem auto 2rem; max-width:40ch; }

.hero__actions { display:flex; justify-content:center; gap:1rem; }

.notice {
  padding: 0.75rem 1rem;
  border-radius: var(--radius-md);
  background: rgba(0, 130, 59, 0.1);
  color: var(--mid-dark);
  margin-bottom: 1rem;
}

.notice--success {
  background: rgba(0, 130, 59, 0.15);
  color: var(--green-dark);
  border: 1px solid rgba(0, 130, 59, 0.35);
}

.notice--error {
  background: rgba(239, 68, 68, 0.12);
  color: #991b1b;
}

.my-petitions {
  margin-top: 2.5rem;
}

.my-petitions__list {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: grid;
  gap: 1.25rem;
}

.my-petitions__item {
  background: var(--card);
  border-radius: var(--radius-md);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: var(--shadow);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.my-petitions__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.my-petitions__title {
  margin: 0;
  font-size: 1.1rem;
}

.my-petitions__status {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.08);
  color: var(--mid-dark);
}

.my-petitions__status--active,
.my-petitions__status--open {
  background: rgba(0, 130, 59, 0.15);
  color: var(--green-dark);
}

.my-petitions__status--closed {
  background: rgba(239, 68, 68, 0.15);
  color: #b91c1c;
}

.my-petitions__meta {
  margin: 0;
  color: var(--mid);
  font-size: 0.9rem;
}

.my-petitions__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.my-petitions__actions form {
  margin: 0;
}

.my-petitions__actions .button {
  align-self: auto;
}

.my-petitions .button {
  align-self: flex-start;
}

.search { padding:0 1rem 3rem; }

@media (max-width:640px) {
  .intro {
    padding-bottom:6.5rem;
  }

  .search {
    padding:0 1rem 3.5rem;
  }
}

.search__container { padding:1rem; background:var(--card); box-shadow:var(--shadow); border-radius:0.5rem; transform:translateY(-2rem); max-width:1040px; margin:0 auto; }

.page--browse .search__container {
  transform: none;
}

.search__form { display:flex; flex-direction:column; gap:1rem; justify-content:center; }

.search__input,
.search__select {
  padding:0.5rem;
  border:1px solid var(--mid);
  border-radius:var(--radius-md);
}

.search__meta {
  max-width:1200px;
  margin:0.5rem auto 1.5rem;
  padding:0 1rem;
  color:var(--mid);
}

.search__description {
  margin:30px auto 0;
  max-width:720px;
  padding:0 1rem;
  text-align:center;
  color:#555;
  line-height:1.6;
}

@media (min-width:768px) {
  .search__form { flex-direction:row; flex-wrap:wrap; justify-content:center; align-items:center; }
  .search__input { flex:0 0 100%; }
  .search__select { flex:0 0 220px; }
}

@media (min-width:1024px) {
  .search__form { flex-wrap:nowrap; }
  .search__input { flex:1 0 60%; max-width:60%; }
  .search__select { flex:0 0 220px; }
}

.cards { padding:2rem 1rem; display:grid; gap:1.5rem; max-width:1200px; margin:0 auto; }

.card {
  background:var(--card);
  padding:1rem;
  border-radius:0.5rem;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}

.card__title { font-size:1.125rem; }
.card__summary { color:var(--mid); flex:1; }
.card__meta { font-size:0.875rem; color:var(--green-dark); }
.card__meta--location,
.card__meta--signatures { display:block; }
.card__meta--location { color:var(--mid); }
.card__meta--signatures {
  font-weight:700;
  font-size:clamp(1.1rem, 1vw + 0.95rem, 1.4rem);
  color:#046c32;
}
.progress { background:var(--light); border-radius:0.25rem; height:0.5rem; }
.progress__bar { background:var(--green); height:100%; border-radius:0.25rem; width:0%; transition:width 0.3s; }

.card__button { align-self:flex-start; margin-top:auto; }

@media (min-width:640px) {
  .cards { grid-template-columns:repeat(2,1fr); }
}

@media (min-width:1024px) {
  .cards { grid-template-columns:repeat(3,1fr); }
}

.section-title { text-align:center; margin:4rem 0 2rem; font-size:1.5rem; }

.how__steps { display:grid; gap:2rem; padding:0 1rem; max-width:1200px; margin:0 auto; }
.how__step { text-align:center; }
.how__step svg { width:48px; height:48px; margin-bottom:1rem; }

@media (min-width:640px) {
  .how__steps { grid-template-columns:repeat(3,1fr); }
}

.stats { background:var(--green-dark); color:#fff; padding:2rem 1rem; }
.stats__list { display:flex; flex-direction:column; gap:1rem; text-align:center; max-width:1200px; margin:0 auto; }
.stats__item dt { font-weight:600; }
.stats__item dd { font-size:1.5rem; margin:0; }

@media (min-width:640px) {
  .stats__list { flex-direction:row; justify-content:space-around; }
}

.testimonial { padding:3rem 1rem; max-width:800px; margin:0 auto; text-align:center; }

.cards__empty {
  grid-column:1 / -1;
  text-align:center;
  color:var(--mid);
  font-size:1.125rem;
  padding:2rem 0;
}

.pagination {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:0.5rem;
  margin:2rem auto;
  padding:0 1rem;
}

.pagination__link {
  text-decoration:none;
}

.pagination__link--active {
  pointer-events:none;
}

.pagination__ellipsis {
  align-self:center;
  color:var(--mid);
}
.testimonial__card { background:var(--card); padding:2rem; border-radius:0.5rem; box-shadow:var(--shadow); font-style:italic; }

.intro {
  background:#fff;
  border-top:1px solid rgba(15,23,42,0.08);
  border-bottom:1px solid rgba(15,23,42,0.08);
  padding:2.5rem 1rem 5.5rem;
}

.intro__inner {
  max-width:900px;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  gap:1.25rem;
  text-align:center;
}

.intro__inner p {
  margin-left:auto;
  margin-right:auto;
}

.intro__title {
  font-size:1.75rem;
  margin:0;
}

.contact-page {
  max-width:900px;
  margin:0 auto;
  padding:2rem 1rem 3rem;
  display:flex;
  flex-direction:column;
  gap:1.5rem;
}

.contact-section {
  background:#fff;
  border:1px solid rgba(15,23,42,0.08);
  border-radius:var(--radius-md);
  padding:1.5rem;
  box-shadow:var(--shadow);
}

.contact-section h2 {
  margin-top:0;
  margin-bottom:0.75rem;
}

.contact-list {
  margin:0;
  padding-left:1.25rem;
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}

.contact-note {
  font-weight:600;
}

.contact-form {
  background:#fff;
  border:1px solid rgba(15,23,42,0.08);
  border-radius:var(--radius-md);
  padding:1.5rem;
  box-shadow:var(--shadow);
}

.contact-disclaimer,
.contact-privacy {
  font-size:0.9rem;
  color:var(--mid);
}

.contact-confirmation {
  padding:1rem 1.25rem;
  border-radius:var(--radius-md);
}

.contact-footnote {
  color:var(--mid);
}

.privacy-page,
.cookie-policy {
  max-width:900px;
  margin:0 auto;
  padding:2rem 1rem 3rem;
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}

.privacy-page h2,
.cookie-policy h2 {
  margin-top:1.5rem;
}

.cookie-category {
  background:#fff;
  border:1px solid rgba(15,23,42,0.08);
  border-radius:var(--radius-md);
  padding:1.5rem;
  box-shadow:var(--shadow);
}

.cookie-category h3 {
  margin-top:0;
}

.cookie-banner {
  position:fixed;
  bottom:1rem;
  left:1rem;
  right:1rem;
  max-width:640px;
  margin:0 auto;
  background:#fff;
  border-radius:var(--radius-md);
  border:1px solid rgba(15,23,42,0.12);
  box-shadow:0 12px 30px rgba(15,23,42,0.2);
  padding:1.25rem;
  z-index:200;
}

.cookie-banner--hidden {
  display:none;
}

.cookie-banner__content {
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.cookie-banner__actions {
  display:flex;
  flex-wrap:wrap;
  gap:0.75rem;
}

.cookie-banner__button {
  border-radius:var(--radius-md);
  border:2px solid var(--green-dark);
  padding:0.5rem 1rem;
  background:#fff;
  color:var(--green-dark);
  font-weight:600;
  cursor:pointer;
}

.cookie-banner__button--primary {
  background:var(--green);
  color:#fff;
}

.cookie-banner__link {
  background:none;
  border:none;
  color:var(--green-dark);
  font-weight:600;
  cursor:pointer;
  text-decoration:underline;
  padding:0;
}

.cookie-modal {
  position:fixed;
  inset:0;
  background:rgba(15,23,42,0.55);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:300;
}

.cookie-modal[hidden] {
  display:none;
}

.cookie-modal__dialog {
  background:#fff;
  border-radius:var(--radius-md);
  max-width:520px;
  width:90%;
  padding:1.5rem;
  position:relative;
  display:flex;
  flex-direction:column;
  gap:1rem;
  max-height:90vh;
  overflow-y:auto;
}

.cookie-modal__close {
  position:absolute;
  top:0.75rem;
  right:0.75rem;
  background:none;
  border:none;
  font-size:1.5rem;
  line-height:1;
  cursor:pointer;
}

.cookie-modal__form {
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.cookie-modal__group {
  border:1px solid rgba(15,23,42,0.12);
  border-radius:var(--radius-md);
  padding:1rem;
  background:#fff;
}

.cookie-modal__group legend {
  font-weight:600;
  margin-bottom:0.5rem;
}

.cookie-toggle {
  display:flex;
  align-items:center;
  gap:0.5rem;
}

.cookie-modal__actions {
  display:flex;
  flex-wrap:wrap;
  gap:0.75rem;
  justify-content:flex-end;
}

@media (max-width:640px) {
  .cookie-banner {
    width:calc(100% - 2rem);
    left:1rem;
    right:1rem;
  }

  .cookie-banner__actions {
    flex-direction:column;
    align-items:flex-start;
  }
}

.footer {
  background:#fff;
  border-top:1px solid rgba(15,23,42,0.08);
  padding:2rem 1rem;
  color:var(--mid);
}

.footer__nav {
  max-width:960px;
  margin:0 auto 1.5rem;
}

.footer__list {
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:0.75rem 1.5rem;
  margin:0;
  padding:0;
}

.footer__list a {
  color:var(--mid);
  font-size:0.875rem;
  transition:color 0.2s ease;
}

.footer__list a:hover,
.footer__list a:focus-visible {
  color:var(--black);
}

.footer__copy {
  display:block;
  text-align:center;
  font-size:0.75rem;
  color:var(--mid);
}

.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); border:0; }

.success-page {
  display:flex;
  justify-content:center;
  padding:4rem 1rem;
  background:linear-gradient(180deg, rgba(0,163,0,0.1), rgba(255,255,255,0));
}

.success-card {
  max-width:640px;
  width:100%;
  background:#fff;
  border-radius:1rem;
  box-shadow:0 20px 40px rgba(15,23,42,0.1);
  padding:2.5rem;
  text-align:center;
}

.success-card h1 {
  margin-bottom:1rem;
  color:var(--black);
}

.success-subtitle {
  font-size:1.125rem;
  font-weight:600;
  color:var(--green-dark);
  margin-bottom:1.5rem;
}

.view-petition-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-bottom:2rem;
}

.share-section {
  margin-top:1.5rem;
}

.share-section h2 {
  font-size:1rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--mid);
  margin-bottom:1rem;
}

.share-buttons {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:0.75rem;
  margin-bottom:0.75rem;
}

.share-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0.65rem 1.5rem;
  border-radius:999px;
  font-weight:600;
  text-decoration:none;
  border:1px solid transparent;
  transition:transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
  cursor:pointer;
}

.share-button:focus-visible,
.share-button:hover {
  transform:translateY(-1px);
  box-shadow:0 8px 16px rgba(15,23,42,0.12);
}

.share-button--facebook {
  background:#1877f2;
  color:#fff;
}

.share-button--twitter {
  background:#1da1f2;
  color:#fff;
}

.share-button--copy {
  background:#fff;
  color:var(--black);
  border-color:rgba(15,23,42,0.12);
}

.share-button__icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.1rem;
  height:1.1rem;
  margin-right:0.5rem;
}

.share-button__icon svg {
  width:100%;
  height:100%;
  fill:currentColor;
}

.share-button__text {
  display:inline-flex;
  align-items:center;
}

.share-feedback {
  font-size:0.9rem;
  color:var(--mid);
}

.share-feedback.is-error {
  color:#b91c1c;
}

.error-message {
  color:#b91c1c;
  font-weight:600;
  margin-top:1.5rem;
}

.petition-page {
  display:flex;
  justify-content:center;
  padding:3rem 1rem;
}

.petition-card {
  max-width:760px;
  width:100%;
  background:#fff;
  border-radius:1rem;
  box-shadow:0 16px 32px rgba(15,23,42,0.1);
  padding:2.5rem;
}

.petition-card h1 {
  margin-bottom:0.5rem;
}

.petition-meta {
  color:var(--mid);
  font-size:0.95rem;
  margin-bottom:2rem;
}

.petition-meta span {
  font-weight:600;
  color:var(--black);
}

.petition-description {
  font-size:1.05rem;
  line-height:1.7;
  color:var(--mid-dark);
  margin-bottom:2.5rem;
}

.petition-status {
  display:flex;
  align-items:center;
  gap:1rem;
  margin-bottom:1.5rem;
}

.status-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:0.85rem;
  font-weight:600;
  padding:0.35rem 0.75rem;
  border-radius:999px;
  text-transform:uppercase;
  letter-spacing:0.05em;
}

.status-badge--open {
  background:var(--green);
  color:#fff;
}

.status-badge--closed {
  background:#fee2e2;
  color:#991b1b;
}

.petition-signatures {
  color:var(--mid-dark);
  font-weight:600;
}

.petition-alert {
  border-radius:0.75rem;
  padding:1rem 1.25rem;
  margin-bottom:1.25rem;
  border:1px solid transparent;
  font-size:0.95rem;
}

.petition-alert--error {
  background:#fef2f2;
  border-color:#fecaca;
  color:#991b1b;
}

.petition-alert--success {
  background:var(--green);
  border-color:var(--green);
  color:#fff;
}

.petition-alert--info {
  background:#eff6ff;
  border-color:#bfdbfe;
  color:#1d4ed8;
}

.petition-alert ul {
  margin:0;
  padding-left:1.25rem;
}

.petition-actions {
  margin-bottom:2rem;
}

.petition-sign-form {
  display:inline-flex;
}

.petition-support {
  text-align:center;
  margin-bottom:3rem;
}

.petition-support__cta {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:0.75rem;
  margin-bottom:1.5rem;
}

.petition-support__title {
  margin:0;
  font-size:1.5rem;
  color:var(--black);
}

.petition-support__button {
  background:var(--green);
  color:#fff;
  font-weight:600;
  font-size:1.1rem;
  padding:0.9rem 2.75rem;
  border-radius:999px;
  border:none;
  cursor:pointer;
  transition:background-color 0.2s ease, transform 0.2s ease;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 12px 24px rgba(16,185,129,0.25);
}

.petition-support__button:hover,
.petition-support__button:focus-visible {
  background:#059669;
  transform:translateY(-2px);
}

.petition-support__button:disabled {
  cursor:not-allowed;
  opacity:0.65;
  box-shadow:none;
  transform:none;
}

.petition-support__note {
  font-size:0.95rem;
  color:var(--mid-dark);
  margin:0;
}

.petition-support__note--inactive {
  font-weight:600;
}

.petition-support__counter {
  margin:0 0 1rem;
  font-size:1.15rem;
  color:var(--black);
}

.petition-support__counter strong {
  font-weight:700;
}

.petition-progress {
  width:100%;
  max-width:28rem;
  height:0.9rem;
  background:#f3f4f6;
  border-radius:999px;
  margin:0 auto 1.5rem;
  overflow:hidden;
  position:relative;
  box-shadow:0 1px 2px rgba(15,23,42,0.12), inset 0 1px 2px rgba(15,23,42,0.08);
}

.petition-progress__bar {
  height:100%;
  background:var(--green);
  border-radius:999px;
  transition:width 0.9s ease-in-out;
  width:0;
  will-change:width;
}

.petition-support__milestones {
  display:flex;
  flex-direction:column;
  gap:1rem;
  font-size:0.95rem;
  color:var(--mid-dark);
}

.petition-support__milestones p {
  margin:0;
  line-height:1.6;
}

.petition-inline-form {
  max-width:28rem;
  margin:0 auto 3rem;
  padding:1.75rem;
  background:var(--card);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow);
  border:1px solid rgba(15,23,42,0.08);
}

.petition-inline-form--inactive {
  text-align:center;
  padding:1.5rem;
  color:var(--mid);
}

.petition-inline-form__closed-message {
  margin:0;
  font-weight:600;
}

.petition-signature-form {
  display:flex;
  flex-direction:column;
  gap:1rem;
}

.petition-signature-form__field {
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}

.petition-signature-form__field label {
  font-weight:600;
  color:var(--mid-dark);
}

.petition-signature-form__field--checkbox {
  gap:0.75rem;
}

.petition-signature-form__checkbox-label {
  display:flex;
  align-items:center;
  gap:0.75rem;
  font-weight:600;
  color:var(--black);
}

.petition-signature-form__checkbox-label--optional {
  font-weight:500;
}

.petition-signature-form__checkbox {
  border-width:2px;
  width:1.25rem;
  height:1.25rem;
}

.petition-signature-form__error {
  margin:0;
  font-size:0.85rem;
  color:#b91c1c;
  min-height:1em;
}

.petition-signature-form__feedback {
  margin:0;
  font-size:0.95rem;
  text-align:center;
  color:var(--mid);
}

.petition-signature-form__feedback.is-error {
  color:#b91c1c;
}

.petition-signature-form__submit {
  width:100%;
  margin-top:0.5rem;
}

.petition-signature-form__confirmation {
  text-align:center;
  font-weight:600;
  color:var(--green-dark);
  background:rgba(16,185,129,0.08);
  padding:1.5rem;
  border-radius:var(--radius-md);
  margin:0;
}

@media (max-width: 640px) {
  .petition-inline-form {
    margin:0 0 2.5rem;
    padding:1.25rem;
  }
}

.petition-message {
  font-size:1rem;
  color:var(--mid);
  margin:0;
}

.petition-message--warning {
  color:#b45309;
  font-weight:600;
}

.petition-admin-actions {
  margin-bottom:2.5rem;
  background:#f8fafc;
  border-radius:0.75rem;
  padding:1.25rem;
}

.petition-admin-actions h2 {
  margin-top:0;
  font-size:1rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--mid);
}

.petition-admin-buttons {
  display:flex;
  flex-wrap:wrap;
  gap:0.75rem;
}

.petition-admin-buttons form {
  display:inline-flex;
}

.button--danger {
  background:#dc2626;
  color:#fff;
}

.button--danger:hover,
.button--danger:focus-visible {
  background:#b91c1c;
}

@media (max-width: 640px) {
  .success-card,
  .petition-card {
    padding:1.75rem;
  }

  .share-buttons {
    flex-direction:column;
    align-items:stretch;
  }

  .view-petition-button {
    width:100%;
  }
}

.admin-dashboard {
  max-width:1100px;
  margin:0 auto;
  padding:3rem 1.5rem;
}

.admin-card {
  background:#fff;
  border-radius:1rem;
  padding:2rem;
  box-shadow:0 16px 32px rgba(15,23,42,0.08);
  text-align:center;
}

.admin-card--error {
  border:1px solid #fee2e2;
  background:#fef2f2;
}

.admin-section {
  margin-bottom:3rem;
}

.admin-table-wrapper {
  overflow-x:auto;
  background:#fff;
  border-radius:1rem;
  box-shadow:0 16px 32px rgba(15,23,42,0.08);
}

.admin-table {
  width:100%;
  border-collapse:collapse;
  min-width:640px;
}

.admin-table th,
.admin-table td {
  padding:0.85rem 1.1rem;
  text-align:left;
  border-bottom:1px solid rgba(15,23,42,0.08);
}

.admin-table th {
  background:#f8fafc;
  font-size:0.85rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--mid);
}

.admin-table__actions {
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}

.admin-table--compact td,
.admin-table--compact th {
  padding:0.65rem 1rem;
}

.admin-alert {
  border-radius:0.75rem;
  padding:1rem 1.25rem;
  margin-bottom:1.5rem;
  border:1px solid transparent;
}

.admin-alert ul {
  margin:0;
  padding-left:1.25rem;
}

.admin-alert--success {
  background:var(--green);
  border-color:var(--green);
  color:#fff;
}

.admin-alert--error {
  background:#fef2f2;
  border-color:#fecaca;
  color:#991b1b;
}

@media (max-width: 720px) {
  .admin-table__actions {
    flex-direction:row;
    flex-wrap:wrap;
  }
}
