/* A quiet, fresh surface for the public request wall. */
body.toolbox-site.request-board-page {
  --rb-ink: #203e36;
  --rb-muted: #71877d;
  --rb-accent: #26775f;
  --rb-line: #dbece3;
  --rb-surface: #fff;
  color: var(--rb-ink);
  background: #f4faf6;
}

.request-board-page .toolbox-navbar,
.request-board-page .toolbox-navbar.is-scrolled,
.request-board-page .toolbox-navbar.is-open {
  color: var(--rb-ink);
  border-bottom-color: rgba(81, 132, 106, .12);
  background: rgba(249, 253, 250, .92);
  -webkit-backdrop-filter: saturate(140%) blur(18px);
  backdrop-filter: saturate(140%) blur(18px);
}
.request-board-page .toolbox-brand-mark {
  color: #206850;
  background: #d9f0e2;
  box-shadow: none;
}
.request-board-page .toolbox-brand small,
.request-board-page .toolbox-desktop-nav a,
.request-board-page .toolbox-login-link,
.request-board-page .toolbox-nav-admin,
.request-board-page .toolbox-desktop-logout button { color: #657c72; }
.request-board-page .toolbox-desktop-nav a:hover,
.request-board-page .toolbox-desktop-nav a.active { color: #1d614b; background: #e4f2e9; }
.request-board-page .toolbox-user-chip { border-color: var(--rb-line); background: #fff; }
.request-board-page .toolbox-user-chip span { color: #fff; background: #3a9576; }
.request-board-page .toolbox-user-chip b { color: var(--rb-ink); }
.request-board-page .toolbox-menu-button { background: #e6f2ea; }
.request-board-page .toolbox-menu-button span { border-color: #266d54; }
.request-board-page .toolbox-mobile-nav { background: #fff; border-color: var(--rb-line); }
.request-board-page .toolbox-mobile-nav a:hover { background: #eef7f0; }
.request-board-page .toolbox-footer {
  width: 100%;
  margin: 0;
  padding: 48px max(24px, calc((100vw - var(--tb-max)) / 2)) 36px;
  color: var(--rb-muted);
  border-top: 1px solid var(--rb-line);
  background: #eaf4ed;
}
.request-board-page .toolbox-footer-brand { color: var(--rb-ink); }
.request-board-page .toolbox-footer nav a:hover { color: var(--rb-accent); }

.request-board-main { min-height: 100vh; }
.request-board-hero {
  position: relative;
  overflow: hidden;
  padding: calc(var(--tb-nav-height) + 64px) 24px 128px;
  background: radial-gradient(circle at 82% 25%, #d3efe0 0, transparent 30%),
              radial-gradient(circle at 9% 90%, #e0f3e8 0, transparent 34%),
              linear-gradient(145deg, #f6fdf8, #eaf6ee);
}
.request-board-hero::after {
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  background: rgba(80, 137, 106, .11);
  content: "";
}
.request-board-hero-inner { position: relative; width: min(1120px, 100%); margin: 0 auto; }
.request-board-breadcrumb { display: flex; align-items: center; gap: 10px; color: #82978a; font-size: 12px; }
.request-board-breadcrumb a:hover { color: var(--rb-accent); }
.request-board-hero-copy { position: relative; z-index: 1; width: min(680px, 100%); padding-top: 56px; }
.request-board-eyebrow,
.request-board-step { color: #3a9572; font-size: 11px; font-weight: 750; letter-spacing: .08em; }
.request-board-eyebrow { display: inline-flex; align-items: center; gap: 9px; }
.request-board-eyebrow span { width: 8px; height: 8px; border-radius: 50%; background: #69bf8e; box-shadow: 0 0 0 5px #dff4e6; }
.request-board-hero h1 {
  margin: 18px 0 19px;
  color: #173b2d;
  font-size: clamp(48px, 7vw, 80px);
  font-weight: 760;
  line-height: 1.15;
  letter-spacing: -.075em;
}
.request-board-hero h1 span { color: #4ca47a; }
.request-board-hero-copy > p { max-width: 550px; margin: 0; color: #687e72; font-size: 15px; line-height: 1.9; }
.request-board-hero-links { margin-top: 28px; display: flex; align-items: center; flex-wrap: wrap; gap: 16px; }
.request-board-primary-link,
.request-board-submit {
  min-height: 48px;
  padding: 11px 19px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
  color: #fff !important;
  border: 1px solid #21694f;
  border-radius: 13px;
  background: #26775b;
  font-size: 13px;
  font-weight: 720;
  box-shadow: 0 10px 20px rgba(36, 119, 83, .13);
  transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.request-board-primary-link:hover,
.request-board-submit:hover { background: #1f664d; transform: translateY(-2px); box-shadow: 0 14px 25px rgba(36, 119, 83, .18); }
.request-board-text-link { color: #557a65; font-size: 13px; font-weight: 680; }
.request-board-text-link:hover { color: #205f47; }
.request-board-hero-mark {
  position: absolute;
  right: 24px;
  top: 6px;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, .8) 0 38%, rgba(255, 255, 255, .33) 39% 62%, transparent 63%);
}
.request-board-mark-orbit { position: absolute; inset: 27px; border: 1px dashed rgba(45, 128, 84, .23); border-radius: 50%; }
.request-board-mark-center { position: absolute; inset: 0; display: grid; place-items: center; color: #65ab80; font-size: 108px; font-weight: 300; line-height: 1; }
.request-board-mark-dot { position: absolute; width: 11px; height: 11px; border-radius: 50%; background: #70bd92; }
.request-board-mark-dot-one { top: 36px; right: 61px; }
.request-board-mark-dot-two { bottom: 44px; left: 53px; width: 7px; height: 7px; background: #a6d5b2; }

.request-board-shell {
  position: relative;
  width: min(1120px, calc(100% - 48px));
  margin: -67px auto 0;
  padding-bottom: 112px;
  display: grid;
  grid-template-columns: minmax(300px, 390px) minmax(0, 1fr);
  align-items: start;
  gap: 24px;
}
.request-board-compose,
.request-board-feed {
  min-width: 0;
  border: 1px solid var(--rb-line);
  border-radius: 24px;
  background: var(--rb-surface);
  box-shadow: 0 18px 50px rgba(58, 102, 72, .055);
}
.request-board-compose { padding: 30px; scroll-margin-top: calc(var(--tb-nav-height) + 18px); }
.request-board-compose-heading h2,
.request-board-feed-heading h2 { margin: 8px 0 5px; color: #1e4332; font-size: 27px; font-weight: 750; letter-spacing: -.04em; }
.request-board-compose-heading p,
.request-board-feed-heading p { margin: 0; color: var(--rb-muted); font-size: 12px; line-height: 1.7; }
.request-board-message { margin-top: 22px; padding: 12px 14px; border-radius: 12px; font-size: 12px; line-height: 1.6; }
.request-board-message-success { color: #24664b; border: 1px solid #bfe6cf; background: #ebf8ee; }
.request-board-message-success span { margin-right: 5px; font-weight: 800; }
.request-board-message-error { color: #9d4038; border: 1px solid #f0d2ca; background: #fff4f0; }
.request-board-form { margin-top: 23px; display: grid; gap: 17px; }
.request-board-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.request-board-field { display: grid; gap: 7px; }
.request-board-field label { color: #2b483a; font-size: 12px; font-weight: 740; }
.request-board-field label span { margin-left: 5px; color: #98aa9f; font-size: 10px; font-weight: 500; }
.request-board-field input,
.request-board-field textarea {
  width: 100%;
  min-width: 0;
  padding: 11px 13px;
  color: var(--rb-ink);
  border: 1px solid #d5e7dc;
  border-radius: 11px;
  outline: none;
  background: #f9fcfa;
  font: inherit;
  font-size: 13px;
  line-height: 1.6;
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.request-board-field textarea { min-height: 142px; resize: vertical; }
.request-board-field input::placeholder,
.request-board-field textarea::placeholder { color: #9aaba1; }
.request-board-field input:focus,
.request-board-field textarea:focus { border-color: #69b891; background: #fff; box-shadow: 0 0 0 3px rgba(80, 169, 120, .13); }
.request-board-field small { color: #87988c; font-size: 10px; line-height: 1.6; }
.request-board-submit { width: 100%; margin-top: 2px; cursor: pointer; }
.request-board-privacy { margin: 18px 0 0; padding-top: 15px; color: #87998a; border-top: 1px solid #e8f0e9; font-size: 10px; line-height: 1.65; }
.request-board-privacy span { color: #4a9d70; }

.request-board-feed { padding: 30px; scroll-margin-top: calc(var(--tb-nav-height) + 18px); }
.request-board-feed-heading { padding-bottom: 23px; display: flex; justify-content: space-between; align-items: end; gap: 16px; border-bottom: 1px solid var(--rb-line); }
.request-board-count { flex: 0 0 auto; padding: 7px 10px; color: #3d8660; border: 1px solid #d3ead8; border-radius: 99px; background: #eff8ef; font-size: 10px; font-weight: 700; white-space: nowrap; }
.request-board-list { display: grid; }
.request-board-item { padding: 22px 0 24px; border-bottom: 1px solid #e9f1eb; }
.request-board-item:last-child { border-bottom: 0; }
.request-board-item-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 15px; color: #98a69b; font-size: 10px; }
.request-board-item-type { display: inline-flex; align-items: center; gap: 6px; color: #49976b; font-weight: 700; }
.request-board-item-type i { width: 6px; height: 6px; border-radius: 50%; background: #70be90; }
.request-board-item h3 { margin: 10px 0 8px; color: #294936; font-size: 19px; font-weight: 720; line-height: 1.4; overflow-wrap: anywhere; }
.request-board-item p { margin: 0; color: #627769; font-size: 12px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.request-board-empty { padding: 54px 16px; text-align: center; }
.request-board-empty > span { width: 54px; height: 54px; margin: auto; display: grid; place-items: center; color: #3f9567; border-radius: 17px; background: #e7f5ea; font-size: 31px; }
.request-board-empty h3 { margin: 19px 0 5px; color: #32503c; font-size: 17px; }
.request-board-empty p { margin: 0 0 18px; color: #8a9b8d; font-size: 12px; }
.request-board-empty a { color: #2d8b5a; font-size: 12px; font-weight: 730; }
.request-board-empty a:hover { text-decoration: underline; }
.request-board-pagination { padding-top: 20px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid var(--rb-line); color: #8a9a8b; font-size: 11px; }
.request-board-pagination a { min-height: 36px; padding: 8px 11px; display: grid; place-items: center; color: #2d7954; border: 1px solid #d8eadd; border-radius: 9px; background: #f8fcf8; font-weight: 700; }
.request-board-pagination a:hover { background: #e9f6eb; }
.request-board-pagination-disabled { color: #adbbb0; }

@media (max-width: 900px) {
  .request-board-hero-mark { right: -58px; opacity: .36; }
  .request-board-shell { grid-template-columns: 1fr; }
  .request-board-compose { max-width: none; }
}
@media (max-width: 600px) {
  .request-board-hero { padding: calc(var(--tb-nav-height) + 30px) 16px 95px; }
  .request-board-hero-copy { padding-top: 45px; }
  .request-board-hero h1 { font-size: clamp(44px, 12vw, 58px); }
  .request-board-hero-copy > p { font-size: 13px; }
  .request-board-hero-mark { top: 45px; right: -125px; width: 245px; height: 245px; opacity: .23; }
  .request-board-hero-links { gap: 12px; }
  .request-board-shell { width: calc(100% - 24px); margin-top: -45px; gap: 14px; padding-bottom: 72px; }
  .request-board-compose,
  .request-board-feed { padding: 22px 18px; border-radius: 19px; }
  .request-board-feed-heading { align-items: start; }
  .request-board-compose-heading h2,
  .request-board-feed-heading h2 { font-size: 24px; }
  .request-board-item h3 { font-size: 17px; }
  .request-board-field input,
  .request-board-field textarea { min-height: 44px; font-size: 16px; }
}
@media (max-width: 380px) {
  .request-board-hero-links { align-items: start; flex-direction: column; }
  .request-board-feed-heading { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .request-board-primary-link,
  .request-board-submit,
  .request-board-field input,
  .request-board-field textarea { transition: none; }
  .request-board-primary-link:hover,
  .request-board-submit:hover { transform: none; }
}

/* Admin view uses the same light palette while keeping private contact visible. */
.request-admin-main {
  min-height: 100vh;
  padding: calc(var(--tb-nav-height) + 48px) 24px 100px;
  color: var(--rb-ink);
  background: radial-gradient(circle at 85% 0, #def3e5, transparent 32%), #f4faf6;
}
.request-admin-header,
.request-admin-shell { width: min(1120px, 100%); margin-left: auto; margin-right: auto; }
.request-admin-header { margin-bottom: 27px; display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.request-admin-header h1 { margin: 8px 0 7px; color: #173b2d; font-size: clamp(32px, 4.5vw, 49px); line-height: 1.16; letter-spacing: -.055em; }
.request-admin-header p { margin: 0; color: var(--rb-muted); font-size: 13px; line-height: 1.7; }
.request-admin-header-links { display: flex; flex-wrap: wrap; gap: 8px; }
.request-admin-back { flex: 0 0 auto; padding: 9px 13px; color: #287252; border: 1px solid #cce4d3; border-radius: 10px; background: #fff; font-size: 12px; font-weight: 700; }
.request-admin-back:hover { background: #eaf7ed; }
.request-admin-toolbar { margin-bottom: 13px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #698777; font-size: 12px; }
.request-admin-count { padding: 6px 10px; color: #3d8660; border-radius: 99px; background: #e5f5e9; font-size: 11px; font-weight: 700; }
.request-admin-list { display: grid; gap: 13px; }
.request-admin-item {
  min-width: 0;
  padding: 23px 26px;
  border: 1px solid var(--rb-line);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 12px 35px rgba(58, 102, 72, .045);
}
.request-admin-item-head { display: flex; align-items: start; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; }
.request-admin-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 14px; color: #8a9d8d; font-size: 11px; }
.request-admin-item h2,
.request-admin-item h3 { margin: 10px 0 8px; color: #294936; font-size: 19px; line-height: 1.35; overflow-wrap: anywhere; }
.request-admin-content { margin: 0; color: #607365; font-size: 13px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.request-admin-contact { margin-top: 17px; padding: 12px 14px; display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px 14px; color: #2d674b; border: 1px solid #dcefe0; border-radius: 11px; background: #f3fbf5; font-size: 12px; overflow-wrap: anywhere; }
.request-admin-contact span,
.request-admin-contact small { color: #719580; font-size: 10px; font-weight: 700; }
.request-admin-contact strong { font-weight: 700; }
.request-admin-actions { margin-top: 18px; padding-top: 15px; display: flex; justify-content: flex-end; border-top: 1px solid #ebf2ec; }
.request-admin-confirm { text-align: right; }
.request-admin-confirm summary { min-height: 40px; padding: 8px 12px; display: inline-flex; align-items: center; color: #a0443b; border: 1px solid #edd1ca; border-radius: 9px; background: #fff8f6; font-size: 11px; font-weight: 700; cursor: pointer; list-style: none; }
.request-admin-confirm summary::-webkit-details-marker { display: none; }
.request-admin-confirm form { margin-top: 10px; padding: 12px; border: 1px solid #edd1ca; border-radius: 10px; background: #fff8f6; }
.request-admin-confirm p { margin: 0 0 10px; color: #805d57; font-size: 11px; }
.request-admin-delete { min-height: 37px; padding: 7px 13px; color: #a0443b; border: 1px solid #edd1ca; border-radius: 9px; background: #fff8f6; font: inherit; font-size: 11px; font-weight: 720; cursor: pointer; }
.request-admin-delete:hover { border-color: #dbaaa0; background: #fff0ec; }
.request-admin-message { margin: 0 0 16px; padding: 12px 15px; color: #24664b; border: 1px solid #bfe6cf; border-radius: 11px; background: #ebf8ee; font-size: 12px; }
.request-admin-message-error { color: #9d4038; border-color: #f0d2ca; background: #fff4f0; }
.request-admin-empty { padding: 75px 18px; color: #7b9382; border: 1px dashed #cbded1; border-radius: 20px; background: rgba(255, 255, 255, .7); font-size: 13px; text-align: center; }
.request-admin-pagination { margin-top: 22px; display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #829988; font-size: 11px; }
.request-admin-pagination a { min-height: 36px; padding: 8px 11px; display: grid; place-items: center; color: #2d7954; border: 1px solid #d8eadd; border-radius: 9px; background: #fff; font-weight: 700; }
.request-admin-pagination a:hover { background: #e9f6eb; }
@media (max-width: 600px) {
  .request-admin-main { padding: calc(var(--tb-nav-height) + 29px) 12px 72px; }
  .request-admin-header { align-items: start; flex-direction: column; }
  .request-admin-item { padding: 20px 18px; border-radius: 17px; }
  .request-admin-item h2,
  .request-admin-item h3 { font-size: 17px; }
  .request-admin-delete { min-height: 44px; }
}
