.assoc-editor {
  --editor-blue: var(--color-blue-500, #36a9e1);
  --editor-navy: var(--color-navy-950, #001b48);
  --editor-ink: var(--color-ink, #172033);
  --editor-muted: var(--color-muted, #5b6475);
  --editor-line: var(--color-line, #dfe4ec);
  max-width: 76rem !important;
  color: var(--editor-ink);
}

.assoc-editor__header,
.assoc-editor__section-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
}

.assoc-editor__header {
  padding: clamp(1.4rem, 4vw, 2.5rem);
  overflow: hidden;
  border-radius: 1.4rem 1.4rem 0 0;
  background: radial-gradient(circle at 90% 15%, rgb(54 169 225 / 0.27), transparent 28rem), linear-gradient(135deg, #001b48, #07366c);
  color: #fff;
}

.assoc-editor__header h2,
.assoc-editor__header p { margin: 0; color: inherit; }
.assoc-editor__header h2 { margin-block: 0.25rem 0.55rem; font-size: clamp(2rem, 4vw, 3.25rem); }
.assoc-editor__header > div > p:last-child { max-width: 43rem; color: rgb(255 255 255 / 0.78); }

.assoc-editor__connection {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 0.8rem;
  border: 1px solid rgb(255 255 255 / 0.22);
  border-radius: 999px;
  background: rgb(255 255 255 / 0.1);
  font-size: 0.82rem;
  font-weight: 750;
}

.assoc-editor__connection span { width: 0.55rem; height: 0.55rem; border-radius: 50%; background: #ffba58; box-shadow: 0 0 0 0.25rem rgb(255 186 88 / 0.18); }
.assoc-editor__connection.is-online span { background: #5de0a2; box-shadow: 0 0 0 0.25rem rgb(93 224 162 / 0.18); }

.assoc-editor__tabs {
  display: flex;
  gap: 0.25rem;
  padding: 0.65rem clamp(1rem, 3vw, 2rem) 0;
  border-inline: 1px solid var(--editor-line);
  background: #f6f8fb;
}

.assoc-editor__tab {
  display: inline-flex;
  align-items: center;
  min-height: 3.1rem;
  padding: 0.7rem 1rem;
  border: 0;
  border-bottom: 0.2rem solid transparent;
  background: transparent;
  color: var(--editor-muted);
  font: inherit;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}

.assoc-editor__tab:hover { color: var(--editor-navy); }
.assoc-editor__tab.is-active { border-bottom-color: var(--editor-blue); color: var(--editor-navy); }
.assoc-editor__tab:focus-visible { outline: 0.18rem solid var(--editor-blue); outline-offset: -0.18rem; }

.assoc-editor__workspace {
  padding: clamp(1.2rem, 3vw, 2rem);
  border: 1px solid var(--editor-line);
  border-top: 0;
  border-radius: 0 0 1.4rem 1.4rem;
  background: #fff;
  box-shadow: 0 1.2rem 3rem rgb(0 27 72 / 0.08);
}

.assoc-editor__form { display: grid; grid-template-columns: minmax(18rem, 0.9fr) minmax(20rem, 1.1fr); gap: clamp(1.2rem, 3vw, 2rem); }
.assoc-editor__fields { display: grid; align-content: start; gap: 0.55rem; }
.assoc-editor__fields label, .assoc-editor__search label { margin-top: 0.4rem; color: var(--editor-navy); font-weight: 800; }
.assoc-editor input, .assoc-editor textarea, .assoc-editor select {
  width: 100%; min-height: 3.15rem; padding: 0.76rem 0.9rem; border: 1px solid #9aa8ba; border-radius: 0.7rem; background: #fff; color: var(--editor-ink); font: inherit;
}
.assoc-editor textarea { resize: vertical; }
.assoc-editor input:focus, .assoc-editor textarea:focus, .assoc-editor select:focus { outline: 0.18rem solid rgb(54 169 225 / 0.28); border-color: var(--editor-blue); }

.assoc-editor__drop {
  position: relative;
  display: grid;
  min-height: 18rem;
  place-items: center;
  padding: 1.5rem;
  border: 2px dashed #9ab9d3;
  border-radius: 1rem;
  background: linear-gradient(145deg, #f7fbff, #eef7fc);
  text-align: center;
  transition: border-color 180ms ease, background 180ms ease, transform 180ms ease;
}
.assoc-editor__drop:is(.is-dragging, .has-file) { border-color: var(--editor-blue); background: #edf9ff; }
.assoc-editor__drop.is-dragging { transform: scale(1.01); }
.assoc-editor__drop input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.assoc-editor__drop label { display: grid; justify-items: center; gap: 0.45rem; cursor: pointer; }
.assoc-editor__drop label strong { color: var(--editor-navy); font-size: 1.25rem; }
.assoc-editor__drop label span:last-child { max-width: 19rem; color: var(--editor-muted); font-size: 0.88rem; }
.assoc-editor__drop-icon { display: grid; width: 3.5rem; height: 3.5rem; place-items: center; border-radius: 50%; background: var(--editor-navy); color: #fff; font-size: 1.8rem; line-height: 1; }
.assoc-editor__drop p { position: absolute; inset: auto 1rem 1rem; margin: 0; color: var(--editor-navy); font-size: 0.84rem; font-weight: 750; overflow-wrap: anywhere; }

.assoc-editor__progress { grid-column: 1 / -1; padding: 1rem; border-radius: 0.9rem; background: #f3f7fb; }
.assoc-editor__progress-head { display: flex; justify-content: space-between; gap: 1rem; color: var(--editor-navy); }
.assoc-editor__progress progress { display: block; width: 100%; height: 0.75rem; margin-block: 0.65rem; overflow: hidden; border: 0; border-radius: 99px; accent-color: var(--editor-blue); }
.assoc-editor__progress progress::-webkit-progress-bar { background: #dce7f0; }
.assoc-editor__progress progress::-webkit-progress-value { border-radius: 99px; background: linear-gradient(90deg, var(--editor-blue), #5dd7cf); transition: width 180ms ease; }
.assoc-editor__progress p { margin: 0; color: var(--editor-muted); font-size: 0.84rem; }
.assoc-editor__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; grid-column: 1 / -1; }
.assoc-editor button[disabled] { cursor: wait; opacity: 0.65; }

.assoc-editor__notice { margin-block: 1rem; padding: 1rem 1.15rem; border-left: 0.3rem solid currentColor; border-radius: 0.7rem; background: #fff; box-shadow: 0 0.4rem 1.2rem rgb(0 27 72 / 0.08); font-weight: 750; }
.assoc-editor__notice--success { color: #176b45; }
.assoc-editor__notice--error { color: #a92727; }
.assoc-editor__notice--info { color: #184b7b; }

.assoc-editor__search { display: grid; gap: 0.6rem; }
.assoc-editor__search > div { display: flex; gap: 0.6rem; }
.assoc-editor__search input { flex: 1; }
.assoc-editor__library { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.8rem; margin-top: 1.4rem; }
.assoc-editor__library-card { overflow: hidden; padding: 0; border: 1px solid var(--editor-line); border-radius: 0.85rem; background: #fff; color: inherit; text-align: left; cursor: pointer; transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease; }
.assoc-editor__library-card:hover { transform: translateY(-0.15rem); border-color: #92bfd9; box-shadow: 0 0.65rem 1.5rem rgb(0 27 72 / 0.1); }
.assoc-editor__library-card[aria-pressed="true"] { border: 2px solid var(--editor-blue); box-shadow: 0 0 0 0.2rem rgb(54 169 225 / 0.18); }
.assoc-editor__library-card:focus-visible { outline: 0.2rem solid var(--editor-blue); outline-offset: 0.15rem; }
.assoc-editor__library-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: #dfe6ec; }
.assoc-editor__library-card.has-no-thumbnail::before { display: grid; aspect-ratio: 16 / 9; place-items: center; background: linear-gradient(145deg, #dceef7, #eef7fb); color: var(--editor-navy); content: "▶"; font-size: 1.7rem; }
.assoc-editor__library-card > span { display: grid; gap: 0.35rem; padding: 0.8rem; }
.assoc-editor__library-card strong { overflow: hidden; color: var(--editor-navy); font-size: 0.9rem; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.assoc-editor__library-card small { color: var(--editor-muted); }
.assoc-editor__loading { grid-column: 1 / -1; color: var(--editor-muted); }

.assoc-editor__selection { display: grid; grid-template-columns: minmax(14rem, 0.65fr) minmax(18rem, 1.35fr); gap: 1.2rem; margin-top: 1.5rem; padding: 1.2rem; border: 1px solid #b9ddec; border-radius: 1rem; background: #f5fbfe; }
.assoc-editor__preview { overflow: hidden; align-self: start; border-radius: 0.7rem; background: #001026; box-shadow: 0 0.65rem 1.6rem rgb(0 27 72 / 0.16); }
.assoc-editor__preview iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; background: #001026; }
.assoc-editor__preview-meta { display: flex; align-items: center; justify-content: space-between; gap: 0.65rem; padding: 0.65rem 0.75rem; background: #fff; color: var(--editor-muted); font-size: 0.76rem; }
.assoc-editor__preview-meta button { min-height: 2.25rem; padding: 0.35rem 0.55rem; border: 0; border-radius: 0.5rem; background: #e8f5fb; color: var(--editor-navy); font: inherit; font-weight: 800; cursor: pointer; white-space: nowrap; }
.assoc-editor__preview-meta button:hover { background: #d8eef8; }
.assoc-editor__preview-meta button:focus-visible { outline: 0.18rem solid var(--editor-blue); outline-offset: 0.1rem; }
.assoc-editor__selection .button { justify-self: start; margin-top: 0.65rem; }
.assoc-editor__library-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 0.65rem; }
.assoc-editor__library-actions .button { margin-top: 0; }

.assoc-video-publications { display: grid; gap: 1.25rem; }
.assoc-video-publications__head { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; }
.assoc-video-publications__head :is(h3, p) { margin: 0; }
.assoc-video-publications__head h3 { margin-top: 0.2rem; color: var(--editor-navy); font-size: clamp(1.45rem, 3vw, 2.2rem); }
.assoc-video-publications__head > p { max-width: 32rem; color: var(--editor-muted); }
.assoc-video-filters { display: grid; grid-template-columns: minmax(14rem, 1fr) minmax(11rem, 0.45fr) auto auto; align-items: end; gap: 0.75rem; padding: 1rem; border: 1px solid var(--editor-line); border-radius: 0.9rem; background: #f6f9fb; }
.assoc-video-filters > div { display: grid; gap: 0.4rem; }
.assoc-video-filters label { color: var(--editor-navy); font-size: 0.84rem; font-weight: 800; }
.assoc-video-filters .button { min-height: 3.15rem; }
.assoc-video-table-wrap { overflow-x: auto; border: 1px solid var(--editor-line); border-radius: 0.9rem; background: #fff; }
.assoc-video-table { width: 100%; border-collapse: collapse; }
.assoc-video-table th { padding: 0.75rem 1rem; background: #eef4f8; color: var(--editor-navy); font-size: 0.78rem; letter-spacing: 0.05em; text-align: left; text-transform: uppercase; }
.assoc-video-table td { padding: 0.9rem 1rem; border-top: 1px solid var(--editor-line); vertical-align: middle; }
.assoc-video-table tbody tr:hover { background: #f8fbfd; }
.assoc-video-table td:nth-child(2) > strong { color: var(--editor-navy); }
.assoc-video-table th:last-child,
.assoc-video-table td:last-child { width: 1%; text-align: right; white-space: nowrap; }
.assoc-video-table time { display: grid; gap: 0.1rem; }
.assoc-video-table time small { color: var(--editor-muted); font-size: 0.72rem; }
.assoc-video-table__actions { display: flex; align-items: center; justify-content: flex-end; gap: 0.5rem; }
.assoc-video-table__actions .button { min-height: 2.8rem; padding: 0.62rem 0.9rem; border-width: 1px; border-radius: 0.65rem; line-height: 1; white-space: nowrap; }
.assoc-video-status { display: inline-flex; min-height: 1.9rem; align-items: center; padding: 0.25rem 0.65rem; border-radius: 999px; background: #edf1f5; color: #4b5768; font-size: 0.76rem; font-weight: 800; white-space: nowrap; }
.assoc-video-status.is-publish { background: #e7f7ef; color: #176b45; }
.assoc-video-status.is-draft { background: #fff3d7; color: #815a08; }
.assoc-video-delete-link { display: grid; width: 2.8rem; min-height: 2.8rem; flex: 0 0 auto; place-items: center; border: 1px solid #e1a4a4; border-radius: 0.65rem; background: #fff5f5; color: #9e2525 !important; }
.assoc-video-delete-link:hover { border-color: #9e2525; background: #9e2525; color: #fff !important; }
.assoc-video-delete-link:focus-visible { outline: 0.2rem solid var(--editor-blue); outline-offset: 0.12rem; }
.assoc-video-delete-link svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.assoc-video-pagination ul { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0; padding: 0; list-style: none; }
.assoc-video-pagination :is(a, span) { display: grid; min-width: 2.65rem; min-height: 2.65rem; place-items: center; padding: 0.4rem 0.65rem; border: 1px solid var(--editor-line); border-radius: 0.55rem; background: #fff; color: var(--editor-navy); font-weight: 800; text-decoration: none; }
.assoc-video-pagination .current { border-color: var(--editor-navy); background: var(--editor-navy); color: #fff; }

.assoc-video-edit { display: grid; gap: 1.25rem; }
.assoc-video-edit__head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.assoc-video-edit__head :is(h3, p) { margin: 0; }
.assoc-video-edit__head h3 { margin-top: 0.2rem; color: var(--portal-navy); font-size: clamp(1.45rem, 3vw, 2.2rem); }
.assoc-video-edit__head > a { color: var(--portal-navy); font-weight: 800; }
.assoc-video-edit__form { display: grid; grid-template-columns: minmax(16rem, 0.85fr) minmax(20rem, 1.15fr); align-items: start; gap: 1.2rem; }
.assoc-video-edit__preview { position: sticky; top: 6rem; overflow: hidden; border-radius: 0.9rem; background: #001026; color: #fff; box-shadow: 0 0.8rem 2rem rgb(0 27 72 / 0.17); }
.assoc-video-edit__preview iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; background: #001026; }
.assoc-video-edit__preview > p { margin: 0; padding: 0.8rem 0.9rem; color: rgb(255 255 255 / 0.76); font-size: 0.8rem; }
.assoc-video-edit__missing { display: grid; min-height: 17rem; place-items: center; align-content: center; gap: 0.45rem; padding: 1.5rem; text-align: center; }
.assoc-video-edit__missing > span { display: grid; width: 3.5rem; aspect-ratio: 1; place-items: center; border-radius: 50%; background: rgb(255 255 255 / 0.12); }
.assoc-video-edit__missing p { margin: 0; color: rgb(255 255 255 / 0.7); }
.assoc-video-edit__fields { display: grid; gap: 0.65rem; padding: 1.2rem; border: 1px solid var(--portal-line); border-radius: 0.9rem; background: #fff; }
.assoc-video-edit__fields label { color: var(--portal-navy); font-weight: 800; }
.assoc-video-edit__fields :is(input, textarea, select) { width: 100%; min-height: 3.15rem; padding: 0.75rem 0.9rem; border: 1px solid #9aa8ba; border-radius: 0.7rem; background: #fff; color: var(--portal-ink); font: inherit; }
.assoc-video-edit__fields textarea { resize: vertical; }
.assoc-video-edit__fields :is(input, textarea, select):focus { border-color: var(--portal-blue); outline: 0.2rem solid rgb(103 194 235 / 0.28); }
.assoc-video-edit__actions { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 0.4rem; }
.assoc-video-delete-confirm { max-width: 44rem; padding: clamp(1.4rem, 4vw, 2.2rem); border: 1px solid #e1a4a4; border-radius: 1rem; background: #fff; box-shadow: 0 0.8rem 2rem rgb(90 12 12 / 0.08); }
.assoc-video-delete-confirm :is(h3, p) { margin-top: 0; }
.assoc-video-delete-confirm h3 { color: #711d1d; font-size: clamp(1.5rem, 3vw, 2.2rem); }
.assoc-video-delete-confirm form { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 1.2rem; }
.assoc-button--danger { border-color: #9e2525 !important; background: #9e2525 !important; color: #fff !important; }
.assoc-button--danger:hover { border-color: #711d1d !important; background: #711d1d !important; }

.assoc-editor__recent { margin-top: clamp(2.5rem, 6vw, 4.5rem); }
.assoc-editor__section-title { align-items: end; margin-bottom: 1.2rem; }
.assoc-editor__section-title h2, .assoc-editor__section-title p { margin: 0; }
.assoc-editor__section-title > a { color: var(--editor-navy); font-weight: 800; }
.assoc-editor__recent-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.assoc-editor__recent-card { overflow: hidden; border: 1px solid var(--editor-line); border-radius: 0.9rem; background: #fff; box-shadow: 0 0.4rem 1.2rem rgb(0 27 72 / 0.06); }
.assoc-editor__recent-card > img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: #e8edf2; }
.assoc-editor__recent-card > div { padding: 0.9rem; }
.assoc-editor__recent-card span { color: var(--editor-muted); font-size: 0.76rem; font-weight: 700; }
.assoc-editor__recent-card h3 { margin: 0.25rem 0 0.55rem; font-family: inherit; font-size: 0.95rem; letter-spacing: 0; }
.assoc-editor__recent-card a { color: var(--editor-navy); font-size: 0.86rem; font-weight: 800; }

.assoc-editor-gate { padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid var(--editor-line, #dfe4ec); border-radius: 1rem; background: #fff; box-shadow: 0 0.5rem 1.5rem rgb(0 27 72 / 0.08); }

/* Multi-section front-end portal. */
.prose > :is(.assoc-portal, .assoc-auth, .assoc-editor-gate) {
  width: 100%;
  max-width: 76rem;
}

.assoc-editor-page .page-hero { display: none; }
.assoc-editor-page .prose { padding-block: clamp(1.5rem, 4vw, 3rem); }

.assoc-portal,
.assoc-auth {
  --portal-blue: var(--color-blue-500, #67c2eb);
  --portal-navy: var(--color-navy-950, #001b48);
  --portal-ink: var(--color-ink, #172033);
  --portal-muted: var(--color-muted, #5b6475);
  --portal-line: var(--color-line, #dfe4ec);
  color: var(--portal-ink);
}

.assoc-auth {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(20rem, 0.95fr);
  min-height: 34rem;
  overflow: hidden;
  border: 1px solid var(--portal-line);
  border-radius: 1.5rem;
  background: #fff;
  box-shadow: 0 1.5rem 4rem rgb(0 27 72 / 0.12);
}

.assoc-auth__visual {
  display: grid;
  align-content: center;
  padding: clamp(2rem, 6vw, 4.5rem);
  background: radial-gradient(circle at 95% 5%, rgb(103 194 235 / 0.42), transparent 45%), linear-gradient(145deg, #001b48, #07366c);
  color: #fff;
}

.assoc-auth__visual :is(h2, p, li),
.assoc-auth__form :is(h2, p) { margin: 0; color: inherit; }
.assoc-auth__visual h2 { max-width: 12ch; margin-block: 0.5rem 1rem; color: #fff; font-size: clamp(2rem, 5vw, 3.8rem); line-height: 1.03; }
.assoc-auth__visual > p:last-of-type { max-width: 34rem; color: rgb(255 255 255 / 0.78); }
.assoc-auth__visual ul { display: grid; gap: 0.7rem; margin: 1.8rem 0 0; padding: 0; list-style: none; }
.assoc-auth__visual li { position: relative; padding-left: 1.7rem; }
.assoc-auth__visual li::before { position: absolute; left: 0; color: var(--portal-blue); content: "✓"; font-weight: 900; }

.assoc-auth__form {
  display: grid;
  align-content: center;
  padding: clamp(2rem, 5vw, 4rem);
}
.assoc-auth__form h2 { margin-block: 0.35rem 0.7rem; color: var(--portal-navy); font-size: clamp(1.8rem, 4vw, 2.7rem); }
.assoc-auth__form > p:not(.eyebrow) { color: var(--portal-muted); }
.assoc-auth__form form { display: grid; gap: 0.75rem; margin-top: 1.5rem; }
.assoc-auth__form label,
.assoc-editor-form label { color: var(--portal-navy); font-weight: 800; }
.assoc-auth__form input,
.assoc-editor-form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="datetime-local"], input[type="file"], textarea, select) {
  width: 100%;
  min-height: 3.15rem;
  padding: 0.75rem 0.9rem;
  border: 1px solid #9aa8ba;
  border-radius: 0.7rem;
  background: #fff;
  color: var(--portal-ink);
  font: inherit;
}
.assoc-editor-form :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="datetime-local"], select),
.assoc-editor :is(input[type="text"], input[type="search"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], select),
.assoc-video-edit__fields :is(input:not([type="file"]):not([type="checkbox"]):not([type="radio"]), select) {
  box-sizing: border-box;
  height: 3.15rem;
  min-height: 3.15rem;
}
.assoc-auth__form input:focus,
.assoc-editor-form :is(input, textarea, select):focus { border-color: var(--portal-blue); outline: 0.2rem solid rgb(103 194 235 / 0.28); }
.assoc-auth__form button { margin-top: 0.35rem; }
.assoc-auth__retry { display: inline-block; margin-top: 1.2rem; color: var(--portal-navy); font-weight: 800; }

.assoc-portal {
  overflow: hidden;
  border: 1px solid var(--portal-line);
  border-radius: 1.4rem;
  background: #f4f7fa;
  box-shadow: 0 1.4rem 4rem rgb(0 27 72 / 0.1);
}
.assoc-portal :is(h2, h3, p) { color: inherit; }
.assoc-portal__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: clamp(1.3rem, 3vw, 2rem);
  background: radial-gradient(circle at 85% 0, rgb(103 194 235 / 0.36), transparent 26rem), linear-gradient(130deg, #001b48, #07366c);
  color: #fff;
}
.assoc-portal__top :is(h2, p) { margin: 0; color: #fff; }
.assoc-portal__top h2 { margin-top: 0.2rem; font-size: clamp(1.65rem, 3vw, 2.5rem); }
.assoc-portal__top > div:last-child { display: grid; justify-items: end; gap: 0.35rem; font-size: 0.85rem; }
.assoc-portal__top > div:last-child > span { color: rgb(255 255 255 / 0.72); }
.assoc-portal__top a { color: #fff !important; font-weight: 800; }

.assoc-portal__layout { display: grid; grid-template-columns: 15rem minmax(0, 1fr); min-height: 42rem; }
.assoc-portal__nav { display: grid; align-content: start; gap: 0.35rem; padding: 1.2rem; border-right: 1px solid var(--portal-line); background: #fff; }
.assoc-portal__nav a {
  padding: 0.78rem 0.9rem;
  border-radius: 0.7rem;
  color: var(--portal-muted) !important;
  font-size: 0.91rem;
  font-weight: 780;
  text-decoration: none;
  transition: color 150ms ease, background 150ms ease, transform 150ms ease;
}
.assoc-portal__nav a:hover { transform: translateX(0.15rem); background: #edf7fc; color: var(--portal-navy) !important; }
.assoc-portal__nav a.is-active { background: var(--portal-navy); color: #fff !important; }
.assoc-portal__nav a:focus-visible { outline: 0.2rem solid var(--portal-blue); outline-offset: 0.1rem; }

.assoc-portal__main { min-width: 0; padding: clamp(1.2rem, 3.5vw, 2.5rem); }
.assoc-portal__section-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.4rem; }
.assoc-portal__section-head :is(h2, p) { margin: 0; }
.assoc-portal__section-head h2 { margin-top: 0.15rem; color: var(--portal-navy); font-size: clamp(1.75rem, 3vw, 2.5rem); }
.assoc-portal__notice { margin-bottom: 1.2rem; padding: 0.95rem 1.1rem; border-left: 0.3rem solid currentColor; border-radius: 0.7rem; background: #fff; font-weight: 750; }
.assoc-portal__notice.is-success { color: #176b45; }
.assoc-portal__notice.is-error { color: #9e2525; }

.assoc-dashboard-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.assoc-dashboard-cards > a {
  display: grid;
  gap: 0.25rem;
  padding: 1.15rem;
  border: 1px solid var(--portal-line);
  border-radius: 1rem;
  background: #fff;
  color: var(--portal-ink) !important;
  text-decoration: none;
  box-shadow: 0 0.45rem 1.2rem rgb(0 27 72 / 0.05);
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}
.assoc-dashboard-cards > a:hover { transform: translateY(-0.2rem); border-color: #9ed4ed; box-shadow: 0 0.8rem 1.8rem rgb(0 27 72 / 0.1); }
.assoc-dashboard-cards__icon { display: grid; width: 2.7rem; height: 2.7rem; margin-bottom: 0.45rem; place-items: center; border-radius: 0.75rem; background: #e7f6fd; color: var(--portal-navy); font-weight: 900; }
.assoc-dashboard-cards strong { color: var(--portal-navy); }
.assoc-dashboard-cards small { color: var(--portal-muted); }
.assoc-portal__welcome { margin-top: 1.4rem; padding: clamp(1.4rem, 4vw, 2.5rem); border-radius: 1rem; background: linear-gradient(135deg, #dff4fd, #fff); }
.assoc-portal__welcome h2 { margin: 0 0 0.45rem; color: var(--portal-navy); }
.assoc-portal__welcome p { max-width: 48rem; margin: 0; color: var(--portal-muted); }

.assoc-content-list { display: grid; gap: 0.75rem; }
.assoc-content-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.9rem; border: 1px solid var(--portal-line); border-radius: 0.85rem; background: #fff; }
.assoc-content-row > div { display: flex; min-width: 0; align-items: center; gap: 0.85rem; }
.assoc-content-row img { width: 5.5rem; height: 4.1rem; flex: 0 0 auto; border-radius: 0.55rem; object-fit: cover; }
.assoc-content-row span { display: grid; min-width: 0; gap: 0.2rem; }
.assoc-content-row strong { overflow: hidden; color: var(--portal-navy); text-overflow: ellipsis; white-space: nowrap; }
.assoc-content-row small { color: var(--portal-muted); }
.assoc-portal__empty { padding: 2rem; border: 1px dashed #aab8c7; border-radius: 1rem; background: #fff; text-align: center; }
.assoc-portal__empty :is(h3, p) { margin: 0; }
.assoc-portal__empty p { margin-top: 0.35rem; color: var(--portal-muted); }

.assoc-editor-form { display: grid; grid-template-columns: minmax(0, 1fr) 15rem; gap: 1.2rem; }
.assoc-editor-form__main,
.assoc-editor-form__side { display: grid; align-content: start; gap: 0.65rem; padding: 1.2rem; border: 1px solid var(--portal-line); border-radius: 1rem; background: #fff; }
.assoc-editor-form__side { position: sticky; top: 6rem; }
.assoc-editor-form textarea { resize: vertical; }
.assoc-editor-form input[type="file"] { padding: 0.55rem; }
.assoc-editor-form input[type="file"]::file-selector-button { margin-right: 0.7rem; padding: 0.55rem 0.75rem; border: 0; border-radius: 0.5rem; background: var(--portal-navy); color: #fff; font: inherit; font-weight: 750; cursor: pointer; }
.assoc-editor-form .wp-editor-wrap { margin-bottom: 0.5rem; }
.assoc-form-help { margin: -0.15rem 0 0.55rem; color: var(--portal-muted); font-size: 0.84rem; }
.assoc-check { display: flex; align-items: center; gap: 0.55rem; margin-block: 0.4rem; }
.assoc-check input { width: 1.15rem; height: 1.15rem; }
.assoc-current-image { width: 7rem; height: 7rem; border-radius: 0.75rem; object-fit: cover; }
.assoc-current-media { display: flex; flex-wrap: wrap; align-items: center; gap: 0.85rem; padding: 0.75rem; border: 1px solid var(--portal-line); border-radius: 0.75rem; background: #f7fafc; }
.assoc-current-media .assoc-check { margin: 0; }
.assoc-filename { display: flex; align-items: stretch; }
.assoc-filename input { border-radius: 0.7rem 0 0 0.7rem !important; }
.assoc-filename span { display: grid; place-items: center; padding-inline: 0.7rem; border: 1px solid #9aa8ba; border-left: 0; border-radius: 0 0.7rem 0.7rem 0; background: #edf1f5; color: var(--portal-muted); }
.assoc-current-file { padding: 0.8rem; border-radius: 0.65rem; background: #edf7fc; font-size: 0.9rem; }
.assoc-current-file p { margin: 0 0 0.45rem; }
.assoc-current-file .assoc-check { margin: 0; }
.assoc-event-dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem; }
.assoc-event-dates > div { display: grid; gap: 0.65rem; }
.assoc-gallery-autosave { display: flex; align-items: center; gap: 0.55rem; min-height: 2.7rem; padding: 0.65rem 0.8rem; border-radius: 0.65rem; background: #f1f5f8; color: var(--portal-muted); font-size: 0.86rem; font-weight: 750; }
.assoc-gallery-autosave__dot { width: 0.65rem; height: 0.65rem; flex: 0 0 auto; border-radius: 50%; background: #6b7788; }
.assoc-gallery-autosave.is-saving { background: #eaf6fc; color: #174d70; }
.assoc-gallery-autosave.is-saving .assoc-gallery-autosave__dot { background: var(--portal-blue); animation: assoc-gallery-pulse 1s ease-in-out infinite; }
.assoc-gallery-autosave.is-saved { background: #e9f7f0; color: #176b45; }
.assoc-gallery-autosave.is-saved .assoc-gallery-autosave__dot { background: #299268; }
.assoc-gallery-autosave.is-error { background: #fff0f0; color: #9e2525; }
.assoc-gallery-autosave.is-error .assoc-gallery-autosave__dot { background: #c93b3b; }
.assoc-gallery-progress { display: grid; gap: 0.45rem; padding: 0.8rem; border: 1px solid #b9ddec; border-radius: 0.7rem; background: #f6fbfe; }
.assoc-gallery-progress[hidden], .assoc-gallery-undo[hidden], .assoc-existing-media[hidden] { display: none !important; }
.assoc-gallery-progress > div { display: flex; justify-content: space-between; gap: 1rem; color: var(--portal-navy); font-size: 0.84rem; }
.assoc-gallery-progress progress { width: 100%; height: 0.65rem; overflow: hidden; border: 0; border-radius: 99px; accent-color: var(--portal-blue); }
.assoc-existing-media { display: grid; grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr)); gap: 0.7rem; margin: 0.4rem 0; padding: 1rem; border: 1px solid var(--portal-line); border-radius: 0.8rem; }
.assoc-existing-media legend { padding-inline: 0.4rem; color: var(--portal-navy); font-weight: 800; }
.assoc-gallery-photo { position: relative; overflow: hidden; border-radius: 0.65rem; background: #e8eef3; box-shadow: 0 0.2rem 0.7rem rgb(0 27 72 / 0.08); }
.assoc-existing-media img { width: 100%; aspect-ratio: 1; border-radius: 0.55rem; object-fit: cover; }
.assoc-gallery-photo > button { position: absolute; right: 0.4rem; bottom: 0.4rem; min-height: 2.3rem; padding: 0.4rem 0.65rem; border: 0; border-radius: 0.5rem; background: rgb(0 27 72 / 0.92); color: #fff; font: inherit; font-size: 0.76rem; font-weight: 800; cursor: pointer; }
.assoc-gallery-photo > button:hover { background: #9e2525; }
.assoc-gallery-photo > button:focus-visible, .assoc-gallery-undo button:focus-visible { outline: 0.2rem solid var(--portal-blue); outline-offset: 0.12rem; }
.assoc-gallery-photo > button[disabled] { cursor: wait; opacity: 0.65; }
.assoc-gallery-photo noscript label { display: flex; align-items: flex-start; gap: 0.35rem; padding: 0.45rem; font-size: 0.78rem; }
.assoc-gallery-undo { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.75rem 0.9rem; border-radius: 0.7rem; background: var(--portal-navy); color: #fff; font-size: 0.86rem; font-weight: 750; box-shadow: 0 0.6rem 1.5rem rgb(0 27 72 / 0.18); }
.assoc-gallery-undo button { min-height: 2.25rem; padding: 0.35rem 0.7rem; border: 1px solid rgb(255 255 255 / 0.5); border-radius: 0.5rem; background: transparent; color: #fff; font: inherit; font-weight: 850; cursor: pointer; }
.assoc-gallery-undo button:hover { background: #fff; color: var(--portal-navy); }

@keyframes assoc-gallery-pulse {
  50% { transform: scale(1.35); opacity: 0.55; }
}

.assoc-order { display: grid; gap: 1rem; }
.assoc-order > p { margin: 0; color: var(--portal-muted); }
.assoc-order__list { display: grid; gap: 0.6rem; margin: 0; padding: 0; list-style: none; }
.assoc-order__list li { display: grid; grid-template-columns: auto 3.5rem minmax(8rem, 1fr) minmax(8rem, 0.8fr) auto auto; align-items: center; gap: 0.7rem; padding: 0.65rem; border: 1px solid var(--portal-line); border-radius: 0.75rem; background: #fff; cursor: grab; }
.assoc-order__list li.is-dragging { opacity: 0.55; }
.assoc-order__list li:focus-visible { outline: 0.2rem solid var(--portal-blue); outline-offset: 0.1rem; }
.assoc-order__list img { width: 3.5rem; height: 3.5rem; border-radius: 50%; object-fit: cover; }
.assoc-order__handle { color: var(--portal-muted); letter-spacing: -0.2rem; }
.assoc-order__buttons { display: flex; gap: 0.25rem; }
.assoc-order__buttons button { width: 2rem; height: 2rem; border: 1px solid var(--portal-line); border-radius: 0.4rem; background: #f3f7fa; color: var(--portal-navy); cursor: pointer; }
.assoc-order__list a { color: var(--portal-navy); font-size: 0.85rem; font-weight: 800; }

@media (max-width: 960px) {
  .assoc-dashboard-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .assoc-editor-form { grid-template-columns: 1fr; }
  .assoc-editor-form__side { position: static; grid-template-columns: minmax(10rem, 1fr) auto auto; align-items: end; }
  .assoc-video-filters { grid-template-columns: minmax(12rem, 1fr) minmax(10rem, 0.55fr); }
  .assoc-video-filters .button { justify-self: start; }
  .assoc-video-edit__form { grid-template-columns: 1fr; }
  .assoc-video-edit__preview { position: static; }
  .assoc-order__list li { grid-template-columns: auto 3.5rem minmax(8rem, 1fr) auto auto; }
  .assoc-order__list li > span:nth-of-type(2) { display: none; }
}

@media (max-width: 760px) {
  .assoc-auth { grid-template-columns: 1fr; }
  .assoc-auth__visual { min-height: 19rem; }
  .assoc-auth__visual h2 { max-width: 15ch; }
  .assoc-portal__top { align-items: flex-start; }
  .assoc-portal__layout { grid-template-columns: 1fr; }
  .assoc-portal__nav { display: flex; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--portal-line); scroll-snap-type: x proximity; }
  .assoc-portal__nav a { flex: 0 0 auto; scroll-snap-align: start; }
  .assoc-order__list li { grid-template-columns: auto 3rem minmax(7rem, 1fr) auto; }
  .assoc-order__list li > span:nth-of-type(2),
  .assoc-order__buttons { display: none; }
}

@media (max-width: 560px) {
  .assoc-portal { border-inline: 0; border-radius: 0; }
  .assoc-portal__top { display: grid; }
  .assoc-portal__top > div:last-child { justify-items: start; }
  .assoc-dashboard-cards { grid-template-columns: 1fr; }
  .assoc-portal__section-head,
  .assoc-content-row { align-items: stretch; }
  .assoc-content-row { display: grid; }
  .assoc-content-row > .button { justify-self: start; }
  .assoc-editor-form__side { grid-template-columns: 1fr; align-items: stretch; }
  .assoc-order__list li { grid-template-columns: auto minmax(7rem, 1fr) auto; }
  .assoc-order__list img { display: none; }
  .assoc-event-dates { grid-template-columns: 1fr; }
  .assoc-video-publications__head,
  .assoc-video-edit__head { display: grid; align-items: start; }
  .assoc-video-filters { grid-template-columns: 1fr; }
  .assoc-video-filters .button { width: 100%; }
  .assoc-video-table-wrap { overflow: visible; border: 0; background: transparent; }
  .assoc-video-table,
  .assoc-video-table tbody,
  .assoc-video-table tr,
  .assoc-video-table td { display: block; width: 100%; }
  .assoc-video-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
  .assoc-video-table tbody { display: grid; gap: 0.75rem; }
  .assoc-video-table tr { overflow: hidden; border: 1px solid var(--editor-line); border-radius: 0.8rem; background: #fff; }
  .assoc-video-table td { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.75rem 0.9rem; border-top: 1px solid var(--editor-line); }
  .assoc-video-table td:first-child { border-top: 0; }
  .assoc-video-table td::before { flex: 0 0 auto; color: var(--editor-muted); content: attr(data-label); font-size: 0.72rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; }
  .assoc-video-table td:nth-child(2) { align-items: flex-start; }
  .assoc-video-table td:nth-child(2) > strong { text-align: right; }
  .assoc-video-table td:last-child { width: 100%; white-space: normal; }
  .assoc-video-table__actions { margin-left: auto; }
}

@media (max-width: 900px) {
  .assoc-editor__form, .assoc-editor__selection { grid-template-columns: 1fr; }
  .assoc-editor__library, .assoc-editor__recent-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  .assoc-editor__header, .assoc-editor__section-title { display: grid; }
  .assoc-editor__connection { justify-self: start; }
  .assoc-editor__tabs { overflow-x: auto; padding-inline: 0.7rem; }
  .assoc-editor__tab { white-space: nowrap; }
  .assoc-editor__workspace { padding: 1rem; }
  .assoc-editor__form { grid-template-columns: minmax(0, 1fr); }
  .assoc-editor__library, .assoc-editor__recent-grid { grid-template-columns: 1fr; }
  .assoc-editor__search > div { display: grid; }
  .assoc-editor__drop { min-height: 15rem; }
}

@media (prefers-reduced-motion: reduce) {
  .assoc-editor__drop, .assoc-editor__library-card, .assoc-editor__progress progress::-webkit-progress-value,
  .assoc-portal__nav a, .assoc-dashboard-cards > a { transition: none; }
  .assoc-gallery-autosave.is-saving .assoc-gallery-autosave__dot { animation: none; }
}
