:root {
  color-scheme: light;
  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    "Segoe UI",
    sans-serif;
  color: #203b3c;
  background: #f8f8f4;
  font-synthesis: none;
  --green: #216f61;
  --ink: #203b3c;
  --muted: #637873;
  --line: #e0e8e2;
  --sidebar: 224px;
}
body.admin-mode .main-nav [data-route],
body.admin-mode .sidebar-footer,
body.admin-mode .profile-dropdown a,
body.admin-mode .profile-dropdown > small:last-child { display: none; }
.admin-filters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)) auto; gap: 1rem; align-items: end; margin-bottom: 1.5rem; }
.admin-filters label { margin: 0; min-width: 0; }
.admin-stat { display: flex; flex-direction: column; gap: .35rem; }
.admin-stat strong { font-size: 2rem; line-height: 1.2; }
.admin-stat span { color: var(--muted); }
.admin-case-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1rem 0; }
.admin-case-card, .admin-dialog-content, .admin-audit-row, .support-message { min-width: 0; overflow-wrap: anywhere; }
.admin-case-card h2 { font-size: 1.15rem; margin-bottom: .25rem; }
.admin-case-card .eyebrow { margin-bottom: .35rem; }
.admin-case-detail { white-space: pre-wrap; }
.admin-client-context { background: #e9f3ee; border-left: 4px solid var(--green); border-radius: .4rem; padding: .9rem 1rem; font-weight: 650; }
.admin-case-notes { border-top: 1px solid var(--line); margin: 1.5rem 0; padding-top: 1.5rem; }
.admin-case-notes .field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.admin-client-reply { border: 1px solid var(--line); border-radius: .6rem; padding: 1rem; background: #f8f8f4; margin-bottom: 1rem; }
.admin-client-reply p { margin-bottom: 0; }
.admin-audit-row { margin: 1rem 0; }
.admin-audit-row p:last-child { margin-bottom: 0; }
.admin-history { margin: 1.5rem 0; }
.admin-recovery { overflow-wrap: anywhere; white-space: pre-wrap; padding: 1rem; background: #f0f7f3; border-radius: .5rem; }
#support-messages { margin-bottom: 1.5rem; }
.support-message + .support-message { border-top: 1px solid var(--line); padding-top: 1rem; margin-top: 1rem; }
@media (max-width: 1100px) { .admin-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) { .admin-filters, .admin-case-list, .admin-case-notes .field-grid { grid-template-columns: minmax(0, 1fr); } }
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
}
button,
input,
select,
textarea {
  font: inherit;
}
a {
  color: var(--green);
  text-underline-offset: 3px;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
a:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid #6aa992;
  outline-offset: 3px;
}
.hidden {
  display: none !important;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: fixed;
  top: -90px;
  left: 10px;
  z-index: 200;
  background: var(--green);
  color: white;
  padding: 12px 20px;
  border-radius: 8px;
}
.skip-link:focus {
  top: 10px;
}
h1,
h2,
h3,
h4,
p {
  margin-top: 0;
}
h1 {
  font-size: clamp(26px, 3vw, 37px);
  letter-spacing: -0.045em;
  line-height: 1.16;
  margin-bottom: 9px;
}
h2 {
  font-size: 21px;
  letter-spacing: -0.025em;
  line-height: 1.3;
  margin-bottom: 14px;
}
h3 {
  font-size: 16px;
  margin-bottom: 12px;
}
p {
  margin-bottom: 14px;
}
small {
  font-size: 12px;
}
.muted,
.quiet-note {
  color: var(--muted);
}
.quiet-note {
  font-size: 12px;
  margin: 16px 0 0;
}
.eyebrow {
  font-size: 11px;
  letter-spacing: 0.12em;
  font-weight: 800;
  color: var(--green);
  margin-bottom: 8px;
}
svg {
  display: block;
  width: 22px;
  height: 22px;
  flex: none;
}
.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--sidebar);
  border-right: 1px solid var(--line);
  background: #fcfdfa;
  padding: 28px 18px;
  display: flex;
  flex-direction: column;
  z-index: 50;
}
.brand {
  display: flex;
  gap: 11px;
  align-items: center;
  color: #183b3a;
  text-decoration: none;
  font-size: 18px;
  line-height: 1.3;
  font-weight: 650;
  letter-spacing: -0.02em;
}
.brand-mark {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: none;
  border-radius: 12px;
  background: var(--green);
  color: white;
  font-size: 31px;
  font-weight: 400;
}
.main-nav {
  display: grid;
  gap: 9px;
  margin-top: 40px;
}
.main-nav > a {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 48px;
  padding: 12px 14px;
  border-radius: 9px;
  color: #2a4a48;
  text-decoration: none;
}
.main-nav > a:hover {
  background: #eef4ee;
}
.main-nav > a[aria-current="page"] {
  background: #e0efe7;
  color: #115f51;
  font-weight: 750;
}
.main-nav > a > span[data-icon] {
  display: flex;
}
.nav-count {
  margin-left: auto;
  min-width: 23px;
  padding: 1px 6px;
  border-radius: 20px;
  background: #e6eee8;
  font-size: 11px;
  text-align: center;
}
.sidebar-footer {
  display: grid;
  gap: 14px;
  margin-top: auto;
  padding: 25px 8px 0;
  font-size: 12px;
}
.sidebar-footer > a {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: #547269;
}
.sidebar-footer svg {
  width: 17px;
  height: 17px;
}
.sidebar-footer .indicator {
  display: grid;
  place-items: center;
  width: 19px;
  height: 19px;
  border-radius: 100%;
  background: #e4f1e7;
  color: var(--green);
  font-size: 12px;
}
.topbar {
  height: 72px;
  margin-left: var(--sidebar);
  padding: 0 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 40;
}
.page-label {
  color: #6e8279;
  font-size: 12px;
}
.top-actions {
  display: flex;
  align-items: center;
  gap: 20px;
}
.mobile-brand {
  display: none;
}
main {
  margin-left: var(--sidebar);
  padding: 32px 30px 60px;
  outline: none;
}
.page {
  max-width: 1440px;
  margin: auto;
}
.narrow-page {
  max-width: 760px;
  margin-left: 0;
}
.page-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 26px;
}
.page-heading p {
  color: var(--muted);
  margin-bottom: 0;
  font-size: 15px;
}
.panel {
  padding: 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 3px 12px #23473503;
  margin-bottom: 20px;
}
.panel-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}
.panel-heading h2,
.panel-heading h3 {
  margin-bottom: 0;
}
.panel-heading a {
  font-size: 12px;
  white-space: nowrap;
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 15px;
  border: 1px solid transparent;
  border-radius: 8px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
  transition: background 0.15s;
}
.button-primary {
  background: var(--green);
  color: #fff;
}
.button-primary:hover:not(:disabled) {
  background: #145b50;
}
.button-secondary {
  border-color: #c8dbd1;
  background: #fff;
  color: #236559;
}
.button-secondary:hover:not(:disabled) {
  background: #edf6f0;
}
.button-wide {
  width: 100%;
}
.button-group {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.text-button {
  border: 0;
  padding: 4px 0;
  background: none;
  color: var(--green);
  font-size: 12px;
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.icon-button {
  display: grid;
  place-items: center;
  min-width: 36px;
  min-height: 36px;
  border: 0;
  background: #f0f5f0;
  color: #42655a;
  border-radius: 8px;
  font-size: 23px;
}
.is-busy {
  opacity: 0.6;
  cursor: wait;
}
.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 9px;
  border-radius: 20px;
  background: #f0f3ee;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}
.badge.success,
.badge.active {
  background: #e5f3e9;
  color: #1e7355;
}
.badge.warning {
  background: #fff0d3;
  color: #8b580f;
}
.badge.error {
  background: #fff0eb;
  color: #a44838;
}
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}
.stat-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 22px 20px;
  position: relative;
}
.stat-card strong {
  font-size: 35px;
  line-height: 1.1;
  letter-spacing: -0.04em;
  display: block;
  margin-bottom: 8px;
}
.stat-card span {
  color: #536f67;
  font-size: 13px;
}
.stat-card .stat-icon {
  position: absolute;
  right: 17px;
  top: 23px;
  border-radius: 50%;
  padding: 11px;
  background: #edf6ef;
  color: var(--green);
}
.stat-card.warning strong,
.stat-card.warning > span {
  color: #9a620f;
}
.stat-card.warning .stat-icon {
  background: #fff2d9;
  color: #9a620f;
}
.campaign-title-line {
  display: flex;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.campaign-title-line h2 {
  margin: 0;
  font-size: 25px;
}
.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(255px, 1fr);
  gap: 20px;
}
.campaign-progress {
  height: 13px;
  background: #e3eae5;
  border-radius: 20px;
  overflow: hidden;
  margin: 17px 0 12px;
}
.campaign-progress > span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #24876f, #49a089);
  border-radius: 20px;
}
.progress-caption {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  color: #5c766d;
  font-size: 12px;
  margin-bottom: 18px;
}
.progress-caption span:before {
  content: " ";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #d6e0d9;
  margin-right: 6px;
}
.progress-caption span:first-child:before {
  background: #258b74;
}
.progress-caption .attention:before {
  background: #d79b2e;
}
.campaign-bottom {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  border-top: 1px solid var(--line);
  padding-top: 17px;
}
.campaign-bottom > p {
  font-size: 12px;
  color: var(--muted);
  margin: 0;
}
.action-callout {
  padding: 15px;
  border-radius: 9px;
  background: #fff2d8;
  color: #8a570e;
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 16px;
}
.setup-card {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 30px;
  background: #f3f9f2;
}
.setup-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  text-decoration: none;
  color: var(--ink);
}
.setup-row .check-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #dcefe3;
  display: grid;
  place-items: center;
  color: var(--green);
}
.empty-state {
  padding: 30px 12px;
  text-align: center;
  color: var(--muted);
}
.empty-state h3 {
  color: var(--ink);
  margin-bottom: 8px;
}
.empty-state .button {
  margin-top: 5px;
}
.empty-state p {
  max-width: 530px;
  margin: 0 auto 12px;
}
label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: 12px;
  font-weight: 650;
  margin-bottom: 16px;
  color: #34574c;
}
label small {
  font-size: 11px;
  line-height: 1.4;
  color: var(--muted);
  font-weight: 400;
}
input:not([type="checkbox"]):not([type="file"]),
select,
textarea {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 10px 11px;
  border: 1px solid #ccdcd1;
  border-radius: 7px;
  background: #fff;
  color: #253f37;
  font-size: 13px;
  font-weight: 400;
}
input[type="checkbox"] {
  width: 17px;
  height: 17px;
  accent-color: var(--green);
  cursor: pointer;
  flex: none;
}
textarea {
  resize: vertical;
  line-height: 1.5;
}
fieldset {
  margin: 0 0 24px;
  padding: 0;
  border: 0;
}
legend {
  font-size: 13px;
  font-weight: 750;
  margin-bottom: 13px;
}
.field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 20px;
}
.field-grid.three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.form-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 12px;
}
.search-grid {
  display: grid;
  grid-template-columns: 1.3fr 0.85fr 0.85fr 1fr;
  gap: 16px;
}
.multi-filter {
  min-width: 0;
}
.filter-label {
  display: block;
  font-size: 12px;
  font-weight: 650;
  margin-bottom: 7px;
}
.filter-picker {
  position: relative;
}
.filter-picker > summary {
  min-height: 43px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border: 1px solid #cfdcd5;
  background: #fff;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 13px;
  font-weight: 400;
  list-style: none;
}
.filter-picker > summary::after {
  content: "⌄";
}
.filter-picker > summary::-webkit-details-marker {
  display: none;
}
.filter-picker[open] > summary {
  border-color: var(--green);
}
.filter-popover {
  position: absolute;
  inset: calc(100% + 6px) 0 auto;
  z-index: 40;
  background: white;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px;
  box-shadow: 0 10px 28px #203b3c20;
  min-width: 210px;
}
.filter-popover > input {
  margin-bottom: 8px;
}
.filter-options {
  max-height: 240px;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.filter-option {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 9px;
  font-size: 13px;
  font-weight: 400;
  min-height: 40px;
  padding: 8px 5px;
  margin: 0;
  cursor: pointer;
}
.filter-option input {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  margin: 0;
  accent-color: var(--green);
}
.profile-stages {
  min-width: 0;
  padding: 0;
  border: 0;
  margin: 0 0 16px;
}
.profile-stages legend {
  font-size: 12px;
  font-weight: 650;
  margin-bottom: 7px;
  color: #34574c;
}
.profile-stage-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
}
.profile-stages > small {
  font-size: 11px;
  color: var(--muted);
}
.filter-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.filter-chip {
  border: 1px solid #b8d5c7;
  border-radius: 18px;
  background: #edf7f0;
  color: var(--green);
  padding: 5px 9px;
  font-size: 12px;
  line-height: 1.4;
  max-width: 100%;
  text-align: left;
}
.advanced-filters summary,
.saved-resources summary,
details > summary {
  color: #426e5e;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
}
.advanced-filters .field-grid {
  margin-top: 16px;
}
.saved-resources {
  border-top: 1px solid var(--line);
  padding-top: 15px;
  margin-top: 18px;
}
.resource-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 12px 0;
  border-bottom: 1px solid #edf0eb;
}
.resource-row:last-child {
  border-bottom: 0;
}
.resource-row strong {
  display: block;
  font-size: 13px;
}
.resource-row small {
  color: var(--muted);
}
.list-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin: 22px 0 14px;
}
.list-panel {
  padding: 0;
  overflow: hidden;
}
.center-row {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr) auto;
  gap: 15px;
  padding: 17px 20px;
  border-bottom: 1px solid var(--line);
  align-items: center;
}
.center-row:last-child {
  border-bottom: 0;
}
.center-name {
  display: block;
  border: 0;
  background: none;
  padding: 0;
  text-align: left;
  font-size: 14px;
  font-weight: 750;
  color: var(--ink);
}
.center-name:hover {
  text-decoration: underline;
}
.center-row p {
  font-size: 12px;
  color: var(--muted);
  margin: 3px 0;
}
.row-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 8px;
}
.channel-tag {
  font-size: 10px;
  border-radius: 5px;
  background: #f0f6f0;
  color: #407454;
  padding: 2px 6px;
}
.center-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}
.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  margin: 18px 0;
  font-size: 12px;
  color: var(--muted);
}
.pagination .button {
  min-height: 35px;
  font-size: 12px;
  padding: 8px 12px;
}
.selection-bar {
  position: sticky;
  bottom: 14px;
  z-index: 20;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  background: #fff;
  border: 1px solid #8ebda6;
  border-radius: 12px;
  padding: 16px 20px;
  box-shadow: 0 6px 28px #20473418;
  margin: 22px 0;
}
.selection-bar strong,
.selection-bar small {
  display: block;
}
.selection-bar small {
  font-size: 11px;
  color: var(--muted);
}
.inline-status,
.help-card {
  padding: 15px;
  border-radius: 9px;
  background: #eff7f0;
  color: #3b6b51;
  margin: 15px 0;
  font-size: 13px;
}
.inline-status.warning {
  background: #fff3de;
  color: #8a5b21;
}
.inline-status p:last-child,
.help-card p:last-child {
  margin-bottom: 0;
}
.inline-error {
  color: #a24333;
  padding: 12px;
  background: #fff0ec;
  border-radius: 7px;
  font-size: 12px;
}
.inline-check {
  flex-direction: row;
  align-items: center;
  gap: 9px;
  font-weight: 500;
}
.wizard-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 0 0 24px;
}

.campaign-destinations > .panel-heading p {
  color: var(--muted);
  font-size: 14px;
  margin: 8px 0 18px;
}
.campaign-destinations #centers-list {
  max-height: 500px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.campaign-destinations .selection-bar {
  position: static;
  box-shadow: none;
  margin: 14px 0;
}
.campaign-destinations > .search-panel {
  margin-bottom: 18px;
}
.selected-destinations {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 14px 18px;
  margin: 14px 0;
}
.selected-destinations summary {
  cursor: pointer;
  color: var(--green);
  font-weight: 650;
}
@media (max-width: 700px) {
  .campaign-destinations #centers-list {
    max-height: 390px;
  }
}
.wizard-steps button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 56px;
  padding: 12px 10px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  color: #637c70;
  font-size: 13px;
}
.wizard-steps button span {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  background: #edf5ee;
  border-radius: 100%;
  font-size: 11px;
}
.wizard-steps button[aria-current="step"] {
  border-color: var(--green);
  background: #e9f4eb;
  color: #195f4e;
  font-weight: 750;
}
.wizard-footer {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 16px 0;
  position: sticky;
  bottom: 0;
  background: #f8f8f4ed;
  z-index: 20;
}
.wizard-footer #wizard-next,
.wizard-footer #create-campaign {
  margin-left: auto;
}
.channel-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.channel-options label {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 8px;
  cursor: pointer;
}
.channel-options strong,
.channel-options small {
  display: block;
}
.channel-options input {
  margin-top: 3px;
}
.channel-options small {
  margin-top: 6px;
  font-size: 11px;
}
.preview-box {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 9px;
  margin-top: 22px;
  background: #fbfdf9;
}
.preview-box > summary {
  margin-bottom: 12px;
}
.preview-box pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: inherit;
  font-size: 13px;
  color: #3c5b4c;
  line-height: 1.7;
}
.preview-subject {
  font-size: 14px;
  margin: 12px 0;
}
.preflight-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 22px 0;
}
.preflight-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border-radius: 7px;
  background: #fff3e4;
  color: #8b5c27;
  font-size: 12px;
}
.preflight-row.passed {
  background: #edf7ee;
  color: #377557;
}
.review-summary {
  padding: 20px;
  background: #f5f8f2;
  border-radius: 9px;
}
.review-summary p {
  margin: 5px 0;
}
.destination-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.destination-row strong {
  font-size: 13px;
}
.destination-row small {
  display: block;
  color: var(--muted);
}
.campaign-list {
  display: flex;
  gap: 12px;
  overflow: auto;
  padding-bottom: 10px;
  margin-bottom: 15px;
  scrollbar-width: thin;
}
.campaign-list-item {
  min-width: 195px;
  max-width: 290px;
  flex: 0 0 auto;
  text-align: left;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
}
.campaign-list-item.selected {
  border-color: #79ac92;
  background: #eef7ef;
}
.campaign-list-item strong {
  display: block;
  font-size: 14px;
  margin-bottom: 7px;
}
.campaign-list-item small {
  display: block;
  color: var(--muted);
  font-size: 11px;
}
.campaign-list-item .badge {
  margin-bottom: 7px;
}
.campaign-detail .campaign-title-line {
  justify-content: space-between;
}
.campaign-detail .progress-caption {
  margin-bottom: 8px;
}
.campaign-send-control {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  margin: 18px 0 24px;
  padding: 16px;
  border: 1px solid #d6e5dc;
  border-radius: 10px;
  background: #f2f7f1;
}
.campaign-send-control.sending {
  background: #fffaed;
  border-color: #edddad;
}
.campaign-send-control > div {
  flex: 1 1 220px;
}
.campaign-send-control p {
  color: var(--muted);
  font-size: 12px;
  margin: 4px 0 0;
}
.campaign-send-control .button {
  flex-shrink: 0;
  min-height: 48px;
}
.button-pause {
  background: #885015;
  color: white;
  border: 1px solid #885015;
}
.button-pause:hover {
  background: #6e3e0e;
}
.campaign-controls {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.campaign-controls details {
  margin-left: auto;
}
.campaign-controls details > div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  padding-top: 12px;
}
.tabs {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}
.tabs button {
  border: 1px solid transparent;
  border-radius: 7px;
  padding: 8px 12px;
  background: none;
  color: #5d786b;
  font-size: 12px;
  min-height: 37px;
}
.tabs button[aria-selected="true"] {
  background: #e9f4eb;
  border-color: #cce0d0;
  color: #16614f;
  font-weight: 700;
}
.tracking-search {
  display: flex;
  gap: 10px;
  align-items: center;
  margin: 18px 0 8px;
  flex-wrap: wrap;
}
.tracking-search input {
  flex: 1;
  min-width: 150px !important;
}
.tracking-search select {
  width: auto;
  max-width: 210px;
}
.tracking-row {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(140px, 1fr) auto;
  gap: 18px;
  padding: 15px 0;
  border-top: 1px solid var(--line);
  align-items: center;
}
.tracking-row strong {
  display: block;
  font-size: 13px;
}
.tracking-row small {
  display: block;
  color: var(--muted);
  font-size: 11px;
}
.tracking-row .button {
  min-width: 105px;
  min-height: 35px;
  font-size: 12px;
  padding: 8px 12px;
}
.tracking-head {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(140px, 1fr) auto;
  gap: 18px;
  padding: 11px 0;
  font-size: 11px;
  color: var(--muted);
  background: #f5f8f4;
}
.table-panel > .tracking-head {
  margin: 0 -24px;
  padding-left: 24px;
  padding-right: 24px;
}
.profile-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.8fr) minmax(250px, 1fr);
  gap: 20px;
  align-items: start;
}
.profile-summary-row {
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.profile-summary-row span {
  display: block;
  color: var(--muted);
  font-size: 11px;
}
.profile-summary-row strong {
  font-size: 14px;
  white-space: pre-wrap;
}
.cv-visual {
  display: grid;
  place-items: center;
  width: 45px;
  height: 56px;
  border: 2px solid #7db59a;
  border-radius: 6px 12px 6px 6px;
  color: var(--green);
  font-weight: 750;
  margin-bottom: 20px;
}
.cv-version {
  padding: 12px 0;
  border-top: 1px solid var(--line);
  font-size: 12px;
}
.cv-version strong,
.cv-version small {
  display: block;
}
.cv-version small {
  color: var(--muted);
  font-size: 11px;
}
.cv-panel h3 {
  margin-top: 25px;
}
.answer-presets {
  display: grid;
  gap: 12px;
  margin-bottom: 24px;
}
.answer-group {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface, #fff);
  overflow: hidden;
}
.answer-group summary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  cursor: pointer;
  list-style: none;
}
.answer-group summary::-webkit-details-marker {
  display: none;
}
.answer-group summary::before {
  content: "＋";
  color: var(--green, #217467);
}
.answer-group[open] summary::before {
  content: "−";
}
.answer-group-heading {
  flex: 1;
  min-width: 0;
}
.answer-group-heading strong,
.answer-group-heading small {
  display: block;
}
.answer-group-heading small {
  color: var(--muted);
  font-size: 12px;
  margin-top: 3px;
}
.answer-group-count {
  color: var(--muted);
  font-size: 11px;
  flex-shrink: 0;
}
.answer-preset-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  padding: 0 16px 16px;
}
.answer-preset label {
  margin: 0;
}
.answer-preset textarea {
  font-weight: normal;
  min-height: 92px;
}
.answer-preset textarea::placeholder {
  font-size: 12px;
}
.answer-pair {
  display: grid;
  grid-template-columns: 1fr 1.2fr auto;
  gap: 12px;
  align-items: start;
}
.answer-pair label {
  margin-bottom: 10px;
}
.answer-pair button {
  margin-top: 22px;
}
.sticky-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fffef2f5;
  border: 1px solid #e6e7d6;
  padding: 14px;
  border-radius: 8px;
  position: sticky;
  bottom: 12px;
  z-index: 10;
  margin-top: 20px;
}
.sticky-actions > span {
  margin-right: auto;
  font-size: 11px;
  color: var(--muted);
}
#profile-form h2 {
  margin-top: 22px;
}
#profile-form h2:first-child {
  margin-top: 0;
}
#profile-summary {
  margin-bottom: 20px;
}
#mail-form > details {
  margin-bottom: 20px;
}
#mail-form ol {
  padding-left: 20px;
  font-size: 12px;
}
#mail-form li {
  margin-bottom: 7px;
}
#edit-mail {
  margin-bottom: 16px;
}
#disconnect-mail {
  margin-top: 20px;
}
.profile-menu {
  position: relative;
}
.avatar {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  background: #e6eee7;
  border-radius: 50%;
  list-style: none;
  font-weight: 750;
  cursor: pointer;
  color: var(--green);
}
.avatar::-webkit-details-marker {
  display: none;
}
.profile-dropdown {
  position: absolute;
  right: 0;
  top: 50px;
  width: 265px;
  padding: 18px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 16px 50px #193b2520;
  display: grid;
  gap: 9px;
}
.profile-dropdown small {
  color: var(--muted);
  overflow-wrap: anywhere;
}
.profile-dropdown a,
.profile-dropdown button {
  padding: 8px 0;
  color: #2a6956;
  font-size: 12px;
  text-align: left;
  border: 0;
  background: none;
  text-decoration: none;
}
.profile-dropdown > strong {
  font-size: 14px;
}
.profile-dropdown > small:last-child {
  font-size: 10px;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}
dialog {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 28px;
  color: var(--ink);
  background: #fff;
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
  box-shadow: 0 30px 100px #12312230;
}
dialog::backdrop {
  background: #163b2f60;
  backdrop-filter: blur(2px);
}
dialog .panel-heading {
  position: sticky;
  top: -28px;
  background: #fff;
  z-index: 10;
  padding: 10px 0;
}
.access-dialog,
.small-dialog {
  width: min(460px, calc(100% - 30px));
}
.wide-dialog {
  width: min(740px, calc(100% - 30px));
}
.detail-dialog {
  width: min(800px, calc(100% - 30px));
}
.access-dialog > .brand-mark {
  margin-bottom: 20px;
}
.access-dialog > p {
  font-size: 13px;
  color: var(--muted);
}
#access-tabs {
  margin-bottom: 20px;
}
#access-cancel {
  display: block;
  margin: 15px auto;
}
.access-help {
  margin-top: 22px;
  border-top: 1px solid var(--line);
  padding-top: 16px;
}
.access-help p {
  font-size: 12px;
  color: var(--muted);
  margin: 12px 0 0;
}
.detail-links {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin: 15px 0;
}
.detail-history {
  padding: 15px 0;
  border-top: 1px solid var(--line);
}
.detail-history p {
  font-size: 12px;
  margin: 8px 0;
  color: var(--muted);
  overflow-wrap: anywhere;
}
.review-action-box {
  padding: 18px;
  background: #fff7e8;
  border: 1px solid #f1dbb3;
  border-radius: 9px;
  margin: 20px 0;
}
.review-action-box .inline-check {
  font-size: 12px;
}
.review-action-box h3 {
  margin-bottom: 8px;
}
.form-assistance-dialog {
  width: min(1080px, calc(100% - 24px));
}
.form-review-intro {
  line-height: 1.7;
  margin-bottom: 18px;
}
.form-review-fields, .form-review-fallback, .form-review-visual {
  margin: 22px 0;
}
.form-review-field, .form-review-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 12px;
  border-bottom: 1px solid var(--line);
  padding: 12px 0;
}
.form-review-field label, .form-review-copy label {
  min-width: 0;
  margin: 0;
}
.form-review-field .quiet-note {
  display: block;
  margin-top: 8px;
}
.form-review-field.needs-answer {
  border-left: 3px solid #bc762a;
  padding-left: 12px;
}
.form-review-viewport {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f5f7f6;
  margin: 12px 0;
}
.form-review-image {
  display: block;
  width: 100%;
  min-width: 700px;
  max-width: none;
  cursor: crosshair;
}
.form-review-fallback summary, .form-review-visual summary {
  font-weight: 600;
  cursor: pointer;
}
@media (max-width: 600px) {
  .form-review-field, .form-review-copy {
    grid-template-columns: minmax(0, 1fr);
  }
  .form-review-field button, .form-review-copy button {
    justify-self: start;
  }
}
.notice {
  position: fixed;
  bottom: 24px;
  left: calc(var(--sidebar) + 30px);
  right: 30px;
  z-index: 150;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: #173f34;
  color: white;
  padding: 15px 18px;
  border-radius: 10px;
  box-shadow: 0 12px 40px #173f3429;
  max-width: 700px;
}
.notice.error {
  background: #8b4435;
}
.notice button {
  border: 0;
  background: none;
  color: inherit;
  font-size: 23px;
  min-width: 32px;
  min-height: 32px;
}
.auth-locked > .sidebar,
.auth-locked > .topbar,
.auth-locked > main {
  visibility: hidden;
}
hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: 24px 0;
}
@media (min-width: 1600px) {
  main {
    padding: 38px 45px 60px;
  }
  .topbar {
    padding: 0 45px;
  }
  .stats-grid {
    gap: 20px;
  }
  .stat-card {
    padding: 25px;
  }
  .dashboard-grid {
    grid-template-columns: 1.8fr 1fr;
  }
}
@media (max-width: 1150px) {
  :root {
    --sidebar: 195px;
  }
  .sidebar {
    padding: 25px 13px;
  }
  .brand {
    font-size: 16px;
  }
  .main-nav > a {
    padding: 12px 10px;
    gap: 10px;
  }
  .topbar {
    padding: 0 22px;
  }
  main {
    padding: 26px 22px 50px;
  }
  .stat-card {
    padding: 18px 15px;
  }
  .stat-card .stat-icon {
    display: none;
  }
  .stat-card strong {
    font-size: 29px;
  }
  .stat-card span {
    font-size: 12px;
  }
  .dashboard-grid {
    grid-template-columns: 1.3fr 1fr;
  }
  .campaign-title-line h2 {
    font-size: 22px;
  }
  .search-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .channel-options {
    grid-template-columns: 1fr;
  }
  .profile-layout {
    grid-template-columns: minmax(0, 1.7fr) minmax(230px, 1fr);
  }
  .campaign-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
  .center-actions .badge {
    display: none;
  }
}
@media (max-width: 850px) {
  .dashboard-grid,
  .profile-layout {
    grid-template-columns: 1fr;
  }
  .dashboard-grid > .panel {
    margin-bottom: 0;
  }
  .dashboard-grid {
    margin-bottom: 20px;
  }
  .setup-card {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .field-grid.three {
    grid-template-columns: 1fr;
  }
  .stats-grid {
    gap: 10px;
  }
  .stat-card strong {
    font-size: 26px;
  }
  .stat-card {
    padding: 17px 12px;
  }
  .stat-card span {
    font-size: 11px;
  }
  .wizard-steps button {
    font-size: 12px;
    gap: 6px;
  }
  .tracking-row,
  .tracking-head {
    grid-template-columns: minmax(0, 1.4fr) 125px auto;
    gap: 12px;
  }
  .preflight-list {
    grid-template-columns: 1fr;
  }
  .answer-pair {
    grid-template-columns: 1fr;
  }
  .answer-preset-grid {
    grid-template-columns: 1fr;
  }
  .answer-group summary {
    flex-wrap: wrap;
  }
  .answer-group-count {
    flex-basis: 100%;
    padding-left: 26px;
  }
  .answer-pair button {
    margin: 0 0 15px;
    justify-self: end;
  }
  .list-heading {
    align-items: flex-start;
  }
  .selection-bar {
    flex-wrap: wrap;
  }
  .selection-bar > .button-group {
    margin-left: auto;
  }
  .cv-panel {
    max-width: none;
  }
}
@media (max-width: 690px) {
  :root {
    --sidebar: 0px;
  }
  .sidebar {
    width: auto;
    inset: auto 0 0 0;
    height: 68px;
    padding: 0 5px;
    border-right: 0;
    border-top: 1px solid #d5e3d9;
    background: #fff;
    z-index: 80;
  }
  .sidebar > .brand,
  .sidebar-footer {
    display: none;
  }
  .main-nav {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin: 0;
    height: 100%;
  }
  .main-nav > a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
    padding: 7px 2px;
    border-radius: 0;
    font-size: 10px;
    min-height: 60px;
  }
  .main-nav > a[aria-current="page"] {
    background: #edf7ed;
  }
  .main-nav svg {
    width: 21px;
    height: 21px;
  }
  .nav-count {
    position: absolute;
    margin-left: 36px;
    margin-top: -31px;
    font-size: 9px;
    min-width: 17px;
    padding: 0 4px;
  }
  .topbar {
    height: 63px;
    padding: 0 15px;
    gap: 10px;
  }
  .mobile-brand {
    display: flex;
    font-size: 12px;
    gap: 8px;
    max-width: 160px;
  }
  .mobile-brand > span:last-child {
    line-height: 1.25;
  }
  .mobile-brand .brand-mark {
    width: 33px;
    height: 33px;
    font-size: 23px;
    border-radius: 9px;
  }
  .page-label {
    display: none;
  }
  .top-actions {
    gap: 10px;
  }
  .avatar {
    width: 33px;
    height: 33px;
    font-size: 12px;
  }
  main {
    padding: 23px 15px 100px;
  }
  .page-heading {
    flex-direction: column;
    gap: 15px;
    margin-bottom: 22px;
  }
  h1 {
    font-size: 28px;
  }
  .page-heading p {
    font-size: 13px;
  }
  h2 {
    font-size: 19px;
  }
  .panel {
    padding: 20px;
    border-radius: 10px;
    margin-bottom: 16px;
  }
  .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
  }
  .stat-card {
    padding: 18px 15px;
  }
  .stat-card strong {
    font-size: 30px;
  }
  .stat-card span {
    font-size: 12px;
  }
  .stat-card .stat-icon {
    display: block;
    top: 16px;
    right: 13px;
    padding: 7px;
  }
  .stat-card .stat-icon svg {
    width: 17px;
    height: 17px;
  }
  .dashboard-grid {
    margin-bottom: 16px;
    gap: 16px;
  }
  .campaign-title-line h2 {
    font-size: 22px;
  }
  .campaign-bottom {
    align-items: stretch;
  }
  .campaign-bottom > .button-group {
    justify-content: flex-end;
  }
  .panel-heading {
    align-items: flex-start;
    gap: 10px;
  }
  .panel-heading h2 {
    font-size: 19px;
  }
  .panel-heading .muted {
    font-size: 10px;
  }
  .setup-card {
    gap: 8px;
  }
  .setup-card p {
    font-size: 12px;
  }
  .field-grid,
  .search-grid {
    grid-template-columns: 1fr;
  }
  .search-grid {
    gap: 0;
  }
  .form-actions {
    align-items: flex-start;
    flex-wrap: wrap;
  }
  .list-heading {
    flex-wrap: wrap;
  }
  .list-heading .button-group {
    gap: 12px;
  }
  .center-row {
    padding: 15px;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 9px;
  }
  .center-actions {
    grid-column: 2;
    justify-content: flex-start;
  }
  .center-actions > .text-button {
    font-size: 11px;
  }
  .center-name {
    font-size: 13px;
  }
  .center-row p {
    font-size: 11px;
  }
  .selection-bar {
    bottom: 78px;
    padding: 13px;
    gap: 12px;
    margin-top: 16px;
  }
  .selection-bar > .button-group {
    width: 100%;
    justify-content: space-between;
    gap: 6px;
  }
  .selection-bar .button {
    font-size: 11px;
    min-height: 36px;
    padding: 8px;
  }
  .selection-bar .text-button {
    font-size: 11px;
  }
  .wizard-steps {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    margin-bottom: 18px;
  }
  .wizard-steps button {
    justify-content: flex-start;
    min-height: 44px;
    padding: 9px;
    font-size: 12px;
  }
  .wizard-footer {
    bottom: 68px;
    gap: 10px;
    flex-wrap: wrap;
    padding: 13px 0;
  }
  .wizard-footer .button {
    font-size: 12px;
  }
  .wizard-footer #save-draft {
    font-size: 11px;
  }
  .campaign-list {
    margin-right: -15px;
  }
  .campaign-list-item {
    min-width: 180px;
    max-width: 220px;
    padding: 13px;
  }
  .campaign-controls {
    gap: 8px;
  }
  .campaign-controls .button {
    font-size: 11px;
    padding: 9px 10px;
  }
  .campaign-controls details {
    margin-left: 0;
    width: 100%;
  }
  .tabs {
    gap: 2px;
  }
  .tabs button {
    font-size: 11px;
    padding: 7px;
  }
  .tracking-search {
    gap: 8px;
  }
  .tracking-search select {
    max-width: 100%;
    width: 100%;
  }
  .tracking-search .button {
    font-size: 12px;
  }
  .tracking-head {
    display: none;
  }
  .tracking-row {
    grid-template-columns: 1fr auto;
    gap: 8px;
    padding: 15px 0;
  }
  .tracking-row > div:nth-child(2) {
    grid-column: 1;
    grid-row: 2;
  }
  .tracking-row > button {
    grid-column: 2;
    grid-row: 1 / span 2;
  }
  .tracking-row .button {
    font-size: 11px;
    min-width: 75px;
    padding: 8px;
  }
  .sticky-actions {
    bottom: 78px;
    flex-wrap: wrap;
    padding: 10px;
    gap: 9px;
  }
  .sticky-actions > span {
    width: 100%;
    margin: 0;
  }
  .sticky-actions > .button {
    font-size: 12px;
  }
  .quiet-note {
    font-size: 11px;
  }
  .profile-layout {
    gap: 0;
  }
  .notice {
    left: 15px;
    right: 15px;
    bottom: 83px;
    font-size: 12px;
    padding: 12px 14px;
  }
  dialog {
    padding: 22px;
    max-height: calc(100dvh - 24px);
  }
  dialog .panel-heading {
    top: -22px;
  }
  .detail-dialog {
    width: calc(100% - 20px);
  }
  .resource-row {
    align-items: flex-start;
  }
  .resource-row > .button-group {
    justify-content: flex-end;
    gap: 9px;
  }
  .preview-box {
    padding: 13px;
  }
  .profile-dropdown {
    right: 0;
    top: 43px;
  }
  .review-action-box {
    padding: 15px;
  }
  #page-label {
    display: none;
  }
}
@media (max-width: 690px) {
  #next-action {
    grid-row: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
.presentation-panel {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line, #dce6e1);
  text-align: left;
}
.presentation-panel h3 {
  margin-top: 0;
}
.presentation-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.75rem 0;
}
.presentation-panel .button {
  font-size: 0.86rem;
}
.presentation-panel form {
  margin-top: 1rem;
}
.presentation-panel input:not([type="file"]) {
  width: 100%;
  min-width: 0;
}
#presentation-info strong,
#presentation-info a {
  overflow-wrap: anywhere;
}
#presentation-info .text-button {
  margin-right: 0.75rem;
  margin-top: 0.5rem;
}
.message-composer {
  margin-top: 1.5rem;
}
.form-queue { margin-bottom: 1.5rem; border-top: 4px solid var(--accent, #216f61); }
.form-queue-row { display: flex; gap: 1rem; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); padding: 1rem 0; }
.form-queue-row > div { min-width: 0; overflow-wrap: anywhere; }
.form-queue-row .form-actions { flex-shrink: 0; }
.form-queue-dialog { width: min(1180px, calc(100vw - 2rem)); max-width: 1180px; }
.form-queue-dialog .form-review-image { width: 100%; min-width: 0; height: auto; }
.form-queue-dialog .form-review-image:focus-visible { outline: 3px solid #216f61; outline-offset: 3px; }
.form-review-viewport.is-enlarged .form-review-image { width: 1000px; min-width: 1000px; max-width: none; }
.form-review-image.is-unavailable { cursor: progress; opacity: 0.65; pointer-events: none; }
.form-queue-status { min-height: 1.5em; }
.dialog-notice { scroll-margin-top: 80px; padding: 12px 16px; border: 1px solid #b8d8c9; border-radius: 10px; background: #edf8f1; color: #173f34; }
.dialog-notice.warning { background: #fff3dd; border-color: #e8c281; color: #694410; }
.admin-workflow-guide { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 24px 0; }
.admin-workflow-guide article { padding: 8px 18px; border-left: 3px solid #a6caba; }
.admin-workflow-guide h2 { font-size: 15px; margin: 0 0 8px; }
.admin-workflow-guide p { color: var(--muted); margin: 0; }
.admin-shortcuts { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0; }
.admin-shortcuts button { border-radius: 24px; }
.admin-shortcuts [aria-pressed="true"] { background: #203b3c; color: white; border-color: #203b3c; }
.admin-next-step { border-radius: 8px; padding: 12px; background: #f0f5f2; font-weight: 600; }
.admin-case-card > .button { margin: 4px 8px 4px 0; }
.form-review-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; padding: 0; gap: 10px; margin: 20px 0; }
.form-review-steps li { display: flex; flex-direction: column; gap: 4px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; }
.form-review-steps span { font-size: 12px; color: var(--muted); }
.form-review-steps .is-current { border-color: var(--green); background: #eaf5ef; box-shadow: inset 0 3px var(--green); }
.form-review-steps .is-complete { background: #f0f5f2; }
.form-review-next { border-left: 4px solid var(--green); padding: 16px 20px; border-radius: 8px; background: #eef6f1; margin-bottom: 16px; }
.form-review-next h3 { margin: 0 0 6px; font-size: 20px; }
.form-review-next p { margin: 0; }
.form-review-data, .form-review-submit { border: 1px solid var(--line); padding: 18px; border-radius: 12px; background: #fff; min-width: 0; }
.form-review-submit > .button { display: block; width: 100%; margin-top: 12px; }
.form-review-data .form-review-fields { margin-top: 0; }
.form-review-filled { margin: 16px 0; }
.form-review-filled summary { cursor: pointer; font-weight: 600; }
.form-review-ready { background: #edf8f1; padding: 10px; border-radius: 8px; }
.form-review-field.has-unsaved-change { border-left: 3px solid #bc762a; padding-left: 10px; background: #fff9ec; }
#form-review-send-help { margin-top: 10px; }
.form-review-fallback { border: 1px solid var(--line); border-radius: 12px; padding: 18px; background: #fafaf7; }
.form-manual-dialog { width: min(1080px, calc(100vw - 24px)); }
.form-manual-dialog .form-review-steps, .form-manual-dialog .form-review-intro,
.form-manual-dialog #form-review-status, .form-manual-dialog #form-review-help { display: none; }
.form-manual-dialog .form-review-fallback { margin-top: 0; background: white; }
.form-manual-dialog .form-review-fallback h3 { margin: 16px 0 8px; }
.form-manual-dialog .form-review-fallback h3:first-child { margin-top: 0; }
.form-manual-dialog .form-actions { flex-wrap: wrap; gap: 10px; justify-content: flex-start; }
.form-manual-dialog .form-actions > a, .form-manual-dialog .form-actions > button { flex: 0 1 auto; }
.form-quick-auto { margin-top: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; }
.form-quick-auto summary { font-weight: 650; cursor: pointer; }
.form-quick-all { margin: 14px 0; }
.form-quick-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.form-quick-fields textarea { min-height: 42px; resize: vertical; }
.form-quick-fields .form-review-copy:has(textarea[rows="4"]) { grid-column: 1 / -1; }
.form-quick-url textarea { overflow-wrap: anywhere; }
@media (max-width: 700px) { .form-quick-fields { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 700px) {
  .admin-workflow-guide { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .form-review-steps { gap: 5px; }
  .form-review-steps li { padding: 10px 8px; }
  .form-review-steps span { display: none; }
  .form-review-next { padding: 14px; }
  .form-review-next h3 { font-size: 18px; }
  .form-review-visual { width: 100%; min-width: 0; }
}
.form-queue .form-actions { margin-top: 1rem; }
.admin-case-card > .button { margin-right: 0.5rem; margin-top: 0.5rem; }
.form-review-data > .button { display: block; width: 100%; margin-top: 0.75rem; }
@media (min-width: 900px) {
  .form-queue-dialog #form-review-live { display: grid; grid-template-columns: minmax(220px, 0.8fr) minmax(0, 2fr); gap: 1rem; align-items: start; }
  .form-queue-dialog .form-review-fields { grid-column: 1; margin: 0; }
  .form-queue-dialog .form-review-data { grid-column: 1; }
  .form-queue-dialog .form-review-visual { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
  .form-queue-dialog .form-review-submit { grid-column: 1; grid-row: 2; }
  .form-queue-dialog #form-review-live > .inline-check,
  .form-queue-dialog #form-review-send { grid-column: 1; }
}
@media (max-width: 899px) {
  .form-queue-dialog #form-review-live { display: flex; flex-direction: column; }
  .form-queue-dialog .form-review-data { width: 100%; }
  .form-queue-dialog .form-review-submit { order: 2; width: 100%; }
  .form-queue-dialog .form-review-fields { order: 0; }
  .form-queue-dialog .form-review-visual { order: 1; }
  .form-queue-dialog .inline-check { order: 2; }
  .form-queue-dialog #form-review-send { order: 3; }
  .form-queue-dialog .form-review-skip { order: 4; }
}
@media (max-width: 650px) {
  .form-queue-row { display: block; }
  .form-queue-dialog { width: calc(100vw - 1rem); }
}
.message-composer-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}
.message-composer-heading h3 {
  margin: 0 0 0.35rem;
}
.message-composer-heading p {
  margin: 0;
  color: var(--muted);
}
.message-helper {
  padding: 1rem;
  background: #f0f7f3;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
}
.message-helper summary {
  cursor: pointer;
  font-weight: 700;
}
.message-helper fieldset {
  margin: 1rem 0;
}
.message-facts,
.message-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
}
.message-facts label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
}
.message-facts input {
  width: auto;
}
.message-composer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
}
.message-editor {
  min-width: 0;
}
.message-editor > .text-button {
  margin-right: 0.75rem;
  margin-top: 0.5rem;
}
.message-editor textarea {
  min-height: 24rem;
  line-height: 1.6;
}
.message-composer-grid .preview-box {
  margin-top: 0;
  min-width: 0;
}
#email-preview {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 0.5rem;
  padding: 1.25rem;
  margin-top: 0.75rem;
}
#email-preview pre {
  font-family: inherit;
  font-size: 0.95rem;
  line-height: 1.7;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
  margin: 1.25rem 0 0;
}
#email-preview .preview-subject {
  line-height: 1.5;
  overflow-wrap: anywhere;
}
@media (max-width: 1050px) {
  .message-composer-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Resumen de incidencias por motivo */
.admin-summary { margin: 24px 0 16px; }
.admin-summary .panel-heading h2 { margin: 0; }
.admin-summary-list { display: grid; gap: 10px; margin-top: 12px; }
.admin-summary-row { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.admin-summary-row.is-first { border-color: #a6caba; background: #f2f8f5; }
.admin-summary-count { font-size: 1.8rem; line-height: 1; color: var(--green); text-align: center; }
.admin-summary-row h3 { margin: 0 0 4px; font-size: 16px; }
.admin-summary-row p { margin: 0; }
.admin-summary-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.admin-help { margin: 0 0 16px; }
.admin-help > summary { cursor: pointer; color: var(--green); font-weight: 600; padding: 6px 0; }
.admin-help > .admin-filters { margin-top: 10px; }
@media (max-width: 720px) {
  .admin-summary-row { grid-template-columns: 48px minmax(0, 1fr); }
  .admin-summary-actions { grid-column: 1 / -1; justify-content: flex-start; }
}

.route-label { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }
.route-label.is-done { color: var(--green); font-weight: 600; }
.consent-option { display: grid !important; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; align-items: start; margin: 16px 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font-weight: 400; }
.consent-option input { margin: 3px 0 0; width: 18px; height: 18px; }
.consent-option span { grid-column: 2; margin: 0; }

/* Asistente de alta */
.onboarding-hero { max-width: 760px; margin: 8px 0 28px; }
.onboarding-hero h1 { font-size: clamp(26px, 4vw, 38px); line-height: 1.15; margin: 6px 0 12px; }
.onboarding-hero p:last-child { color: var(--muted); font-size: 16px; }
.onboarding-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 28px; align-items: start; }
.onboarding-steps { list-style: none; margin: 0; padding: 0; position: sticky; top: 90px; display: grid; gap: 4px; }
.onboarding-steps button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border: 0; border-radius: 10px; background: none; color: var(--muted); font: inherit; text-align: left; cursor: pointer; }
.onboarding-steps .is-current button { background: #e7f2ed; color: var(--ink); font-weight: 600; }
.onboarding-steps .is-done button { color: var(--green); }
.onboarding-step-number { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid currentColor; font-size: 13px; flex: none; }
.onboarding-steps .is-done .onboarding-step-number { background: var(--green); border-color: var(--green); color: #fff; }
.onboarding-card { padding: 28px; }
.onboarding-card h2 { margin: 6px 0 6px; font-size: 24px; }
.onboarding-progress { height: 6px; border-radius: 99px; background: var(--line); overflow: hidden; margin-bottom: 12px; }
.onboarding-progress-bar { height: 100%; background: var(--green); border-radius: inherit; transition: width .3s ease; }
.onboarding-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; margin: 22px 0 8px; }
.onboarding-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.onboarding-field.is-wide { grid-column: 1 / -1; }
.onboarding-field > label { font-weight: 600; margin: 0; }
.onboarding-field input:not([type=radio]):not([type=checkbox]), .onboarding-field textarea { width: 100%; }
.onboarding-field small { font-size: 12.5px; }
.choice-row, .chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.choice-pill { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 8px; margin: 0; width: auto; padding: 9px 14px; border: 1px solid var(--line); border-radius: 99px; background: #fff; font-weight: 500; cursor: pointer; }
.choice-pill:has(input:checked) { border-color: var(--green); background: #e7f2ed; }
.choice-pill input { width: 16px !important; height: 16px; min-height: 0; margin: 0; padding: 0; flex: none; box-shadow: none; }
.chip { padding: 4px 12px; border: 1px solid var(--line); border-radius: 99px; background: #fff; color: var(--ink); font: inherit; font-size: 13px; cursor: pointer; }
.chip:hover { border-color: var(--green); color: var(--green); }
.onboarding-upload { padding: 18px; border: 1.5px dashed #b9cfc5; border-radius: 12px; margin: 18px 0; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
.onboarding-upload h3 { flex-basis: 100%; margin: 0; font-size: 16px; }
.onboarding-upload p { flex-basis: 100%; margin: 0; }
.onboarding-upload.is-done { border-style: solid; border-color: var(--green); background: #f2f8f5; }
.onboarding-next { margin-top: 18px; padding: 16px 18px; border-radius: 12px; background: #f6f8f5; }
.onboarding-next h3 { margin: 0 0 8px; font-size: 15px; }
.onboarding-next ul { margin: 0; padding-left: 18px; color: var(--muted); }
.onboarding-actions { justify-content: flex-end; margin-top: 22px; }
.onboarding-finished { text-align: center; padding: 48px 28px; max-width: 640px; margin: 40px auto; }
.onboarding-finished h1 { margin: 6px 0 12px; }
.onboarding-finished .button { margin: 18px 6px 0; }
@media (max-width: 860px) {
  .onboarding-layout { grid-template-columns: 1fr; }
  .onboarding-steps { position: static; display: flex; overflow-x: auto; gap: 6px; padding-bottom: 4px; }
  .onboarding-steps button { white-space: nowrap; padding: 8px 10px; }
  .onboarding-grid { grid-template-columns: 1fr; }
  .onboarding-card { padding: 20px 16px; }
}

/* Acceso con Google */
.access-oauth { margin: 4px 0 8px; }
.google-button { display: flex !important; align-items: center; justify-content: center; gap: 10px; width: 100%; padding: 11px 16px; border: 1px solid #d4dcd7; border-radius: 10px; background: #fff; color: #1f1f1f; font-weight: 600; text-decoration: none; }
.google-button:hover { background: #f6f8f7; border-color: #b9c6bf; }
.access-divider { display: flex; align-items: center; gap: 10px; margin: 16px 0 4px; color: var(--muted); font-size: 13px; }
.access-divider::before, .access-divider::after { content: ""; flex: 1; height: 1px; background: var(--line); }

.access-legal { margin: 14px 0 4px; font-size: 0.82rem; color: var(--muted); text-align: center; line-height: 1.45; }
.access-legal a, .legal-links a { color: var(--green); }
.sidebar-footer .legal-links { margin: 10px 0 0; font-size: 0.74rem; color: var(--muted); line-height: 1.5; }
.sidebar-footer .legal-links a { display: inline; padding: 0; }
