/* OK to Delay — Chapter Editor
   Brand tokens reverse-engineered from oktodelay.org.

   NOTE: oktodelay.org's parent theme sets html { font-size: 62.5%; } (a common
   "1rem = 10px" trick) and then sets actual text sizes in fixed px, NOT rem.
   Every size below is written in px for that reason — using rem here would
   silently render everything at ~62.5% of the intended size. */

:root {
	--okd-primary:#0e6b68;
	--okd-primary-dark:#014c47;
	--okd-mint:#afe1d2;
	--okd-mint-soft:#c7ebe0;
	--okd-pale:#e6f8ff;
	--okd-surface:#f7fbfa;
	--okd-ink:#171d26;      /* card/heading dark — matches the chapter directory cards */
	--okd-body-text:#545F5F; /* the site's body + section-heading colour */
	--okd-muted:#6b7676;
	--okd-line:#e4eae9;
	--okd-head:"Hepta Slab",Georgia,"Times New Roman",serif;
	--okd-body:"Albert Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
	--okd-shadow:0 1px 2px rgba(0,28,39,.04),0 8px 24px rgba(0,28,39,.06);
}

/* ============ PARENT-THEME CLEANUP ============
   Chapter pages are a custom post type, so the Genesis parent theme renders them
   with its single-BLOG-POST template — which stamps an author avatar, author name
   and publish date under the title, plus an author bio box and prev/next post
   links at the bottom. All of that is wrong for a chapter page, so hide it.
   (Scoped to .single-chapter so ordinary blog posts keep their byline.) */
.single-chapter .entry-byline,
.single-chapter .author-box,
.single-chapter .post-navigation,
.single-chapter .meta-list { display:none !important; }

/* The chapter title is printed by the parent theme's template as a plain
   <h1 class="entry-title">, so it never picks up the Hepta Slab utility class
   that the block-built pages (About, FAQs) use on their headings — which is why
   it renders in the fallback sans while every other page title is slab.
   Match the site's h1 step: 48/60, Hepta Slab, in the body text colour. */
.single-chapter .entry-title {
	font-family:"Hepta Slab",Georgia,"Times New Roman",serif;
	font-weight:700; font-size:48px; line-height:60px; color:#545F5F;
}
@media (max-width:768px) {
	.single-chapter .entry-title { font-size:36px; line-height:44px; }
}

/* ============ PUBLIC PAGE ============
   Type scale mirrors the theme's own: h2 36/44, h3 32/40, h4 28/36, h5 24/32,
   h6 20/28, body 18px — see assets/css/theme.css in the ok-to-delay theme.
   Section headings sit at the h4 step so they read clearly below the 48px
   page title rather than competing with it. */
.okd-page { font-family:var(--okd-body); color:var(--okd-body-text); font-size:18px; line-height:1.6; }
.okd-page * { box-sizing:border-box; }

/* ============ FULL-WIDTH BANDS ============
   calc(50% - 50vw) margins are the standard full-bleed trick — they pull each
   band out to the viewport edges even though it sits inside the theme's 1180px
   #primary container. body already has overflow-x:hidden, so no sideways scroll.
   The inner wrapper puts the content back on the same 920px measure as before,
   so only the background stretches, never the text. */
.okd-band {
	margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
	width:100vw; padding:56px 24px;
}
.okd-band--tint { background:#f2f9f7; }
.okd-band__inner { max-width:920px; margin:0 auto; }
@media (max-width:768px) { .okd-band { padding:40px 20px; } }

/* ============ PROMO BAR ============
   Sits above everything, full-bleed, solid brand teal. Only rendered when a
   Lead has set a message, so chapters without one lose no vertical space. */
.okd-promo {
	margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
	width:100vw; background:var(--okd-primary); padding:18px 24px;
}
.okd-promo__inner {
	max-width:920px; margin:0 auto;
	display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
}
.okd-promo__text { color:#fff; font-size:18px; line-height:26px; font-weight:600; margin:0; }
/* With no link there's nothing to sit beside, so the message centres itself.
   The class is set server-side rather than using :has(), which older Safari
   and Firefox versions don't support. */
.okd-promo__inner--solo { justify-content:center; }
.okd-promo__inner--solo .okd-promo__text { text-align:center; }
.okd-promo__btn {
	flex:0 0 auto; background:#fff; color:var(--okd-primary) !important;
	font-weight:600; font-size:16px; line-height:24px; text-decoration:none;
	padding:10px 22px; border-radius:999px; white-space:nowrap;
	transition:background .12s ease, transform .12s ease;
}
.okd-promo__btn:hover { background:var(--okd-mint); transform:translateY(-1px); color:var(--okd-primary-dark) !important; }
@media (max-width:768px) {
	.okd-promo { padding:16px 20px; }
	.okd-promo__text { font-size:16px; line-height:24px; }
}

/* Header photo (optional) */
.okd-banner {
	margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
	width:100vw; margin-bottom:0; line-height:0; background:var(--okd-surface);
}
.okd-banner img { display:block; width:100%; height:340px; object-fit:cover; }
@media (max-width:768px) { .okd-banner img { height:200px; } }

.okd-section { margin:0; }
.okd-h2 {
	font-family:var(--okd-head); font-weight:700; font-size:28px; line-height:36px;
	color:var(--okd-body-text); margin:0 0 22px; padding-bottom:12px; position:relative;
}
.okd-h2::after { content:""; position:absolute; left:0; bottom:0; width:48px; height:4px; background:var(--okd-mint); border-radius:3px; }
@media (max-width:768px) { .okd-h2 { font-size:24px; line-height:32px; } }

/* About — the band now provides the spacing, so no bottom margin here. */
.okd-about {
	font-size:18px; line-height:1.7; color:var(--okd-body-text);
	background:var(--okd-surface); border:1px solid var(--okd-line);
	border-radius:16px; padding:28px 32px; margin:0;
}
.okd-about p { margin:0 0 .85em; }
.okd-about p:last-child { margin-bottom:0; }

/* Leaders — portrait on top, details centred beneath, three across at full width. */
.okd-leaders { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; }
.okd-leader {
	display:flex; flex-direction:column; align-items:center; text-align:center;
	min-width:0; background:#fff; border:1px solid var(--okd-line);
	border-radius:16px; padding:28px 20px; box-shadow:var(--okd-shadow);
	transition:transform .12s ease, box-shadow .12s ease;
}
.okd-leader:hover { transform:translateY(-2px); box-shadow:0 8px 22px rgba(0,28,39,.12); }
.okd-leader__avatar { flex:0 0 auto; margin-bottom:14px; }
.okd-leader__avatar img { width:120px; height:120px; border-radius:50%; object-fit:cover; display:block; border:3px solid var(--okd-mint); }
.okd-leader__avatar span {
	width:120px; height:120px; border-radius:50%; display:flex; align-items:center; justify-content:center;
	background:var(--okd-mint); color:var(--okd-primary-dark); font-family:var(--okd-head); font-weight:700; font-size:34px;
}
/* min-width:0 lets this flex child shrink below its content width — without it a
   long word forces the card wider than its grid track and the text spills past
   the border. overflow-wrap then breaks the long token itself. */
.okd-leader__info { min-width:0; width:100%; }
.okd-leader__info > * { overflow-wrap:anywhere; word-break:break-word; }
.okd-leader__name { font-family:var(--okd-head); font-weight:700; color:var(--okd-ink); font-size:19px; line-height:26px; }
.okd-leader__bio { color:var(--okd-body-text); font-size:15px; line-height:22px; margin:.5em 0 0; }
@media (max-width:480px) {
	.okd-leader { padding:22px 18px; }
	.okd-leader__avatar img, .okd-leader__avatar span { width:96px; height:96px; }
	.okd-leader__avatar span { font-size:28px; }
}
.okd-leader__more {
	display:inline-block; margin-top:8px; color:var(--okd-primary);
	font-weight:600; font-size:15px; text-decoration:none;
}
.okd-leader__more:hover { text-decoration:underline; }

/* One chapter email, below the cards rather than repeated on each. */
.okd-chapter-email {
	display:flex; align-items:center; justify-content:center; gap:8px; flex-wrap:wrap;
	background:var(--okd-surface); border:1px solid var(--okd-line); border-radius:12px;
	padding:14px 18px; margin:18px 0 0; font-size:16px;
}
.okd-chapter-email .okd-ico { width:18px; height:18px; fill:var(--okd-primary); flex:0 0 auto; }
.okd-chapter-email a { color:var(--okd-primary); font-weight:600; text-decoration:none; overflow-wrap:anywhere; }
.okd-chapter-email a:hover { text-decoration:underline; }

/* Stay in touch */
.okd-stay__grid { display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:700px) { .okd-stay__grid { grid-template-columns:1fr 1fr; } }
.okd-stay__card { background:#fff; border:1px solid var(--okd-line); border-radius:16px; padding:28px; box-shadow:var(--okd-shadow); }
.okd-stay__title { font-family:var(--okd-head); font-weight:700; font-size:24px; line-height:32px; color:var(--okd-ink); margin:0 0 10px; }
.okd-stay__desc { color:var(--okd-body-text); font-size:16px; line-height:24px; margin:0 0 20px; }
.okd-btn {
	display:inline-block; text-align:center; background:var(--okd-primary); color:#fff !important;
	font-weight:400; font-size:20px; line-height:28px; padding:14px 28px; border-radius:999px; text-decoration:none;
	transition:background .12s ease, transform .12s ease;
}
.okd-btn:hover { background:var(--okd-primary-dark); transform:translateY(-1px); }
.okd-btn--inline { font-size:16px; line-height:28px; padding:10px 24px; }
.okd-social__link {
	display:inline-flex; align-items:center; gap:6px; padding:10px 24px; border-radius:999px;
	border:2px solid var(--okd-primary); color:var(--okd-primary); font-weight:400; font-size:16px; line-height:28px;
	text-decoration:none; transition:all .12s ease;
}
.okd-social__link:hover { background:var(--okd-primary); color:#fff; }

/* Events
   The date is a free-text field ("Sat, Sep 13", "Wednesday July 29"), so it can't
   be forced into a fixed-width calendar tile without wrapping badly. It reads as a
   single meta line above the title instead — robust to whatever the organizer types. */
.okd-events { list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.okd-event {
	background:#fff; border:1px solid var(--okd-line); border-left:4px solid var(--okd-mint);
	border-radius:14px; padding:20px 24px; box-shadow:var(--okd-shadow);
	transition:transform .12s ease, box-shadow .12s ease;
}
.okd-event:hover { transform:translateY(-2px); box-shadow:0 8px 22px rgba(0,28,39,.12); }

/* An event with an image becomes a two-column card: picture left, details right.
   Padding moves onto the body so the image can sit flush against the edges. */
.okd-event--has-image { display:flex; align-items:stretch; gap:0; padding:0; overflow:hidden; }
.okd-event--has-image .okd-event__body { padding:20px 24px; }
.okd-event__media { flex:0 0 200px; background:var(--okd-surface); }
.okd-event__media img { display:block; width:100%; height:100%; min-height:160px; object-fit:cover; }
@media (max-width:600px) {
	.okd-event--has-image { flex-direction:column; }
	.okd-event__media { flex:0 0 auto; }
	.okd-event__media img { height:160px; min-height:0; }
}

.okd-event__body { min-width:0; }
.okd-event__when {
	display:flex; align-items:center; flex-wrap:wrap; gap:6px;
	color:var(--okd-primary); font-size:15px; font-weight:600; margin:0 0 6px;
}
.okd-event__when .okd-ico { width:16px; height:16px; fill:var(--okd-primary); flex:0 0 auto; }
.okd-event__sep { opacity:.5; }
.okd-event__title { font-family:var(--okd-head); font-weight:700; font-size:20px; line-height:28px; color:var(--okd-ink); }
.okd-event__loc { display:flex; align-items:center; gap:6px; color:var(--okd-body-text); font-size:16px; margin-top:6px; }
.okd-event__loc .okd-ico { width:16px; height:16px; fill:var(--okd-primary); flex:0 0 auto; }
.okd-event__desc { color:var(--okd-body-text); font-size:16px; line-height:24px; margin:10px 0 0; }
.okd-event__link { display:inline-block; margin-top:12px; color:var(--okd-primary); font-weight:600; font-size:16px; text-decoration:none; }
.okd-event__link:hover { color:var(--okd-primary-dark); text-decoration:underline; }

/* ============ SUPPORTER LIST ============
   The centrepiece of the page: a solid teal full-bleed band with oversized
   numbers. Paints its own background rather than sitting inside .okd-band. */
.okd-supporters {
	margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
	width:100vw; background:var(--okd-primary); padding:64px 24px; text-align:center;
}
.okd-supporters__inner { max-width:760px; margin:0 auto; }
.okd-supporters__title {
	font-family:var(--okd-head); font-weight:700; font-size:34px; line-height:42px;
	color:#fff; margin:0 0 14px;
}
.okd-supporters__sub {
	font-size:18px; line-height:1.65; color:var(--okd-mint);
	max-width:600px; margin:0 auto 34px;
}

/* Numbers, divided by hairlines rather than boxed in cards. */
.okd-stats { display:flex; flex-wrap:wrap; justify-content:center; gap:0; margin:0 0 34px; }
.okd-stat { padding:0 34px; min-width:120px; border-left:1px solid rgba(255,255,255,.22); }
.okd-stat:first-child { border-left:0; }
.okd-stat__num { display:block; font-family:var(--okd-head); font-weight:800; font-size:64px; line-height:1; color:#fff; }
.okd-stat__label { display:block; font-size:14px; font-weight:600; color:var(--okd-mint); margin-top:8px; }

/* The ask, on white so the form reads as the action. */
.okd-supporters__card {
	background:#fff; border-radius:18px; padding:32px; max-width:520px;
	margin:0 auto; text-align:left; box-shadow:0 10px 30px rgba(0,28,39,.16);
}
.okd-supporters__ask {
	font-family:var(--okd-head); font-weight:700; font-size:24px; line-height:32px;
	color:var(--okd-ink); margin:0 0 8px;
}
.okd-supporters__note { font-size:16px; line-height:24px; color:var(--okd-body-text); margin:0 0 22px; }
.okd-supporter-form { background:none; border:0; border-radius:0; padding:0; max-width:none; }
.okd-supporters .okd-btn-primary { width:100%; padding:14px 26px; font-size:17px; }

@media (max-width:768px) {
	.okd-supporters { padding:48px 20px; }
	.okd-supporters__title { font-size:28px; line-height:36px; }
	.okd-supporters__sub { font-size:16px; }
	.okd-stat { padding:0 20px; min-width:100px; }
	.okd-stat__num { font-size:46px; }
	.okd-supporters__card { padding:24px; }
}
.okd-checklist {
	display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:10px; max-height:240px;
	overflow-y:auto; padding:14px; border:1px solid var(--okd-line); border-radius:10px; background:var(--okd-surface);
}
.okd-check { display:flex; align-items:center; gap:8px; font-size:16px; color:var(--okd-ink); font-weight:400; }
.okd-check input { margin:0; }
.okd-hp { position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }

/* ============ CHAPTER SUB-PAGES ============
   Cards listing a chapter's own pages, then the pages themselves. Every heading
   and text style below maps to the theme's existing scale, so a Lead's page and
   a page built in WordPress look identical. */
.okd-subpages { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; }
.okd-subpage-card a {
	display:block; height:100%; background:#fff; border:1px solid var(--okd-line);
	border-radius:14px; overflow:hidden; text-decoration:none; box-shadow:var(--okd-shadow);
	transition:transform .12s ease, box-shadow .12s ease;
}
.okd-subpage-card a:hover { transform:translateY(-2px); box-shadow:0 8px 22px rgba(0,28,39,.12); }
.okd-subpage-card__media { display:block; }
.okd-subpage-card__media img { display:block; width:100%; height:150px; object-fit:cover; }
.okd-subpage-card__body { display:block; padding:20px 22px; }
.okd-subpage-card__title { display:block; font-family:var(--okd-head); font-weight:700; font-size:20px; line-height:28px; color:var(--okd-ink); }
.okd-subpage-card__excerpt { display:block; font-size:15px; line-height:22px; color:var(--okd-body-text); margin-top:6px; }
.okd-subpage-card__more { display:block; font-size:15px; font-weight:600; color:var(--okd-primary); margin-top:10px; }

.okd-subpage { max-width:760px; }
.okd-subpage__back { display:inline-block; font-size:16px; font-weight:600; color:var(--okd-primary); text-decoration:none; margin-bottom:20px; }
.okd-subpage__back:hover { text-decoration:underline; }
.okd-subpage__cover { margin:0 0 28px; }
.okd-subpage__cover img { display:block; width:100%; height:auto; border-radius:16px; }

/* The house styles a Lead's writing is rendered in. */
.okd-subpage__body { font-size:18px; line-height:1.75; color:var(--okd-body-text); }
.okd-subpage__body h2 { font-family:var(--okd-head); font-weight:700; font-size:28px; line-height:36px; color:var(--okd-body-text); margin:36px 0 14px; }
.okd-subpage__body h3 { font-family:var(--okd-head); font-weight:700; font-size:20px; line-height:28px; color:var(--okd-ink); margin:28px 0 10px; }
.okd-subpage__body p { margin:0 0 1.1em; }
.okd-subpage__body ul, .okd-subpage__body ol { margin:0 0 1.1em; padding-left:1.4em; }
.okd-subpage__body li { margin:0 0 .45em; }
.okd-subpage__body ul li::marker { color:var(--okd-mint); }
.okd-subpage__body a { color:var(--okd-primary); font-weight:500; text-decoration:underline; }
.okd-subpage__body strong, .okd-subpage__body b { font-weight:700; color:var(--okd-ink); }
.okd-subpage__body blockquote {
	margin:0 0 1.1em; padding:4px 0 4px 20px;
	border-left:4px solid var(--okd-mint); color:var(--okd-body-text);
}
@media (max-width:768px) {
	.okd-subpage__body { font-size:17px; }
	.okd-subpage__body h2 { font-size:24px; line-height:32px; }
}

/* Pages panel in the editor */
.okd-pages { margin-top:26px; padding-top:22px; border-top:1px dashed var(--okd-line); }
.okd-page-form { background:#fff; border:1px solid var(--okd-line); border-radius:12px; padding:16px; margin:0 0 14px; }
.okd-page-form--new { border-style:dashed; background:var(--okd-surface); }
.okd-page-form__head { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.okd-page-status { font-size:12px; font-weight:600; border-radius:999px; padding:3px 10px; }
.okd-page-status--publish { background:#dcfce7; color:#14532d; }
.okd-page-status--draft { background:#f1f0e8; color:#5f5e5a; }
.okd-page-view { margin-left:auto; font-size:13px; font-weight:600; color:var(--okd-primary); text-decoration:none; }
.okd-page-form__foot { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:12px; }
.okd-page-delete { margin-left:auto; background:none; border:0; color:#a4302f; font-size:13px; font-weight:600; cursor:pointer; padding:6px; }
.okd-page-delete:hover { text-decoration:underline; }

/* Rich text control */
.okd-rt { border:1px solid #cfd8d7; border-radius:10px; overflow:hidden; background:#fff; }
.okd-rt__bar { display:flex; flex-wrap:wrap; align-items:center; gap:2px; padding:6px; background:var(--okd-surface); border-bottom:1px solid var(--okd-line); }
.okd-rt__bar button {
	background:none; border:0; border-radius:6px; padding:5px 9px; cursor:pointer;
	font-family:var(--okd-body); font-size:13px; color:var(--okd-body-text);
}
.okd-rt__bar button:hover { background:var(--okd-mint-soft); color:var(--okd-primary-dark); }
.okd-rt__sep { width:1px; height:18px; background:var(--okd-line); margin:0 4px; }
.okd-rt__area { min-height:180px; max-height:340px; overflow-y:auto; padding:14px; font-size:15px; line-height:1.65; color:var(--okd-ink); }
.okd-rt__area:focus { outline:none; }
.okd-rt__area h2 { font-family:var(--okd-head); font-size:20px; line-height:28px; margin:14px 0 6px; }
.okd-rt__area h3 { font-family:var(--okd-head); font-size:17px; line-height:24px; margin:12px 0 5px; }
.okd-rt__area ul, .okd-rt__area ol { padding-left:1.3em; margin:0 0 .8em; }
.okd-rt__area a { color:var(--okd-primary); text-decoration:underline; }
.okd-rt__store { display:none; }

/* Resources */
.okd-resources { list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.okd-resource {
	background:#fff; border:1px solid var(--okd-line); border-radius:12px; padding:16px 20px;
	display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px;
}
.okd-resource a { color:var(--okd-primary); font-weight:600; font-size:18px; text-decoration:none; }
.okd-resource a:hover { color:var(--okd-primary-dark); text-decoration:underline; }
.okd-resource__file { display:inline-flex; align-items:center; gap:10px; min-width:0; }
.okd-resource__file .okd-ico { width:20px; height:20px; fill:var(--okd-primary); flex:0 0 auto; }
.okd-resource__file span:not(.okd-resource__meta) { overflow-wrap:anywhere; }
.okd-resource__meta {
	flex:0 0 auto; font-size:13px; font-weight:600; color:var(--okd-muted);
	background:var(--okd-surface); border:1px solid var(--okd-line);
	border-radius:999px; padding:2px 10px;
}
.okd-resource__alt { font-size:15px !important; font-weight:600; margin-left:auto; }

/* Resource file upload (editor) */
.okd-file-current {
	display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px;
	background:var(--okd-surface); border:1px solid var(--okd-line);
	border-radius:10px; padding:10px 12px; margin-bottom:8px; font-size:14px;
}
.okd-file-current__name { overflow-wrap:anywhere; min-width:0; }
.okd-file-remove { font-size:13px; color:#cf2e2e; white-space:nowrap; }
.okd-file-label { display:block; font-size:13px; font-weight:600; color:var(--okd-muted); margin:0 0 6px; }

/* ============ "VISIT CHAPTER PAGE" LINK (directory cards) ============
   Added to each card in the theme's [chapter_list] directory. Styled as a filled
   pill so it reads as the primary action next to the outlined "Join Chapter". */
.okd-visit-link {
	display:inline-flex; align-items:center; gap:6px; margin-left:12px;
	background:var(--okd-primary); color:#fff !important; border:2px solid var(--okd-primary);
	padding:8px 24px; border-radius:999px; font-family:var(--okd-body);
	font-weight:400; font-size:16px; line-height:28px; text-decoration:none;
	transition:background .12s ease, border-color .12s ease;
}
.okd-visit-link:hover { background:var(--okd-primary-dark); border-color:var(--okd-primary-dark); color:#fff !important; }
@media (max-width:600px) {
	.okd-visit-link { margin-left:0; margin-top:8px; }
}

/* ============ NOT-LIVE NOTICE ============
   Seen only by the assigned Lead and administrators — the public is redirected
   away from an unpublished chapter before the page renders. */
.okd-notlive {
	position:fixed; left:24px; bottom:24px; z-index:9990; max-width:340px;
	background:#FAEEDA; border:1px solid #EF9F27; border-radius:12px;
	padding:14px 18px; font-family:var(--okd-body); font-size:15px; line-height:1.5;
	color:#633806; box-shadow:0 8px 24px rgba(0,28,39,.18);
}
.okd-notlive strong { display:block; margin-bottom:2px; }
@media (max-width:768px) {
	.okd-notlive { left:16px; right:16px; bottom:88px; max-width:none; font-size:14px; }
}

/* Go-live control in the editor */
.okd-golive { border-radius:12px; padding:14px 16px; margin:0 0 24px; border:1px solid; }
.okd-golive--off { background:#FAEEDA; border-color:#EF9F27; }
.okd-golive--on { background:#dcfce7; border-color:#63a06f; }
.okd-golive__row { display:flex; align-items:flex-start; gap:12px; cursor:pointer; }
.okd-golive__row input { margin:3px 0 0; flex:0 0 auto; width:18px; height:18px; }
.okd-golive__title { display:block; font-size:16px; }
.okd-golive--off .okd-golive__title { color:#633806; }
.okd-golive--on .okd-golive__title { color:#14532d; }
.okd-golive__note { display:block; font-size:14px; line-height:1.5; margin-top:3px; }
.okd-golive--off .okd-golive__note { color:#854F0B; }
.okd-golive--on .okd-golive__note { color:#276749; }

/* ============ FLOATING EDIT BUTTON ============ */
.okd-fab {
	position:fixed; bottom:24px; right:24px; z-index:9990;
	display:inline-flex; align-items:center; gap:8px;
	background:var(--okd-primary); color:#fff; border:none; cursor:pointer;
	font-family:var(--okd-body); font-weight:700; font-size:15px;
	padding:14px 24px; border-radius:999px; box-shadow:0 10px 28px rgba(1,76,71,.35);
	transition:background .12s ease, transform .12s ease;
}
.okd-fab:hover { background:var(--okd-primary-dark); transform:translateY(-2px); }

/* ============ EDIT DRAWER ============ */
.okd-backdrop { position:fixed; inset:0; background:rgba(0,28,39,.55); opacity:0; transition:opacity .3s ease; z-index:99998; }
.okd-backdrop.is-open { opacity:1; }
.okd-backdrop[hidden], .okd-drawer[hidden] { display:none !important; }

.okd-drawer {
	position:fixed; top:0; right:0; height:100vh; height:100dvh; width:min(560px,100%);
	background:#fff; z-index:99999; display:flex; flex-direction:column;
	transform:translateX(100%); transition:transform .32s cubic-bezier(.4,0,.2,1);
	box-shadow:-10px 0 44px rgba(0,28,39,.25); font-family:var(--okd-body);
}
.okd-drawer.is-open { transform:translateX(0); }
.okd-drawer__head { flex:0 0 auto; background:var(--okd-primary); color:#fff; padding:20px 24px; display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.okd-drawer__eyebrow { text-transform:uppercase; letter-spacing:.1em; font-size:12px; font-weight:700; opacity:.85; }
.okd-drawer__title { font-family:var(--okd-head); font-weight:700; font-size:22px; margin:4px 0 0; color:#fff; }
.okd-drawer__close { flex:0 0 auto; background:rgba(255,255,255,.16); border:none; color:#fff; width:36px; height:36px; border-radius:50%; font-size:22px; line-height:1; cursor:pointer; transition:background .12s ease; }
.okd-drawer__close:hover { background:rgba(255,255,255,.3); }
.okd-drawer__body { flex:1; overflow-y:auto; padding:22px 24px; background:#fbfdfd; }
.okd-drawer__foot { flex:0 0 auto; display:flex; gap:12px; justify-content:flex-end; padding:16px 24px; border-top:1px solid var(--okd-line); background:#fff; }

/* ============ FORM FIELDS (drawer + admin meta box) ============ */
.okd-fieldset { margin:0 0 28px; }
.okd-fieldset:last-child { margin-bottom:0; }
.okd-fieldset__title { font-family:var(--okd-head); font-weight:700; font-size:17px; color:var(--okd-ink); margin:0 0 6px; padding-bottom:9px; border-bottom:1px solid var(--okd-line); }
.okd-fieldset__help { font-size:13px; color:var(--okd-muted); margin:8px 0 14px; }
.okd-field { margin:0 0 16px; }
.okd-field > label { display:block; font-size:14px; font-weight:600; color:var(--okd-body-text); margin:0 0 6px; }
.okd-hint { font-weight:400; color:#8a9694; }
.okd-fields input[type=text],
.okd-fields input[type=url],
.okd-fields input[type=email],
.okd-fields input[type=number],
.okd-fields textarea,
.okd-supporter-form input[type=email],
.okd-supporter-form input[type=number] {
	width:100%; box-sizing:border-box; font-family:var(--okd-body); font-size:16px; color:var(--okd-ink);
	border:1px solid #cfd8d7; border-radius:10px; padding:12px 14px; background:#fff;
}
.okd-fields textarea { resize:vertical; }
.okd-fields input:focus,
.okd-fields textarea:focus,
.okd-supporter-form input:focus { outline:none; border-color:var(--okd-primary); box-shadow:0 0 0 3px rgba(14,107,104,.15); }

/* Supporter CSV import */
.okd-import__help { margin:0 0 10px; }
.okd-fields input[type=file] {
	width:100%; box-sizing:border-box; font-family:var(--okd-body); font-size:14px;
	color:var(--okd-body-text); border:1px dashed #cfd8d7; border-radius:10px;
	padding:14px; background:var(--okd-surface); cursor:pointer;
}
.okd-fields input[type=file]:focus { outline:none; border-color:var(--okd-primary); box-shadow:0 0 0 3px rgba(14,107,104,.15); }
.okd-import__count { margin:8px 0 0; font-size:13px; color:var(--okd-muted); }
.okd-danger-zone {
	background:#fff6f6; border:1px solid #f0dcdc; border-radius:10px;
	padding:12px 14px; margin-bottom:14px;
}
.okd-danger-zone .okd-check { color:#a4302f; font-weight:600; }

/* Header photo (editor) */
.okd-banner-current {
	display:flex; align-items:center; gap:12px; flex-wrap:wrap;
	background:var(--okd-surface); border:1px solid var(--okd-line);
	border-radius:10px; padding:10px; margin-bottom:8px;
}
.okd-banner-current img { display:block; width:140px; height:64px; object-fit:cover; border-radius:8px; }

.okd-rep-row { background:#fff; border:1px solid var(--okd-line); border-radius:12px; padding:14px; margin:0 0 12px; }
.okd-leader-row__top { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.okd-leader-row__top input { flex:1; min-width:160px; }
.okd-leader-row > input, .okd-leader-row > textarea { margin-bottom:8px; }
.okd-leader-photo {
	display:flex; align-items:center; gap:10px; background:var(--okd-surface);
	border:1px solid var(--okd-line); border-radius:8px; padding:8px; margin-bottom:8px;
}
.okd-leader-photo img { width:34px; height:34px; border-radius:50%; object-fit:cover; display:block; }
.okd-leader-photo__name { font-size:13px; color:var(--okd-body-text); min-width:0; overflow-wrap:anywhere; }
.okd-leader-photo .okd-file-remove { margin-left:auto; white-space:nowrap; }
.okd-counter { display:flex; justify-content:space-between; gap:10px; margin:-4px 0 8px; font-size:12px; }
.okd-counter__count { color:var(--okd-muted); flex:0 0 auto; }
.okd-event-row__cols { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.okd-event-row__cols input { flex:1; min-width:120px; }
.okd-event-row > input, .okd-event-row > textarea { margin-bottom:8px; }
.okd-resource-row { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.okd-resource-row input { flex:1; min-width:160px; }
.okd-remove-row { background:#fff; border:1px solid #ecd4d4; color:#cf2e2e; border-radius:8px; padding:6px 12px; font-size:13px; font-weight:600; cursor:pointer; }
.okd-remove-row:hover { background:#ffe9e9; }
.okd-add { margin-top:4px; background:var(--okd-mint); color:var(--okd-primary-dark); border:none; padding:9px 18px; border-radius:999px; font-family:var(--okd-body); font-weight:600; font-size:14px; cursor:pointer; }
.okd-add:hover { background:var(--okd-mint-soft); }

.okd-btn-primary { background:var(--okd-primary); color:#fff; border:none; padding:12px 26px; border-radius:999px; font-family:var(--okd-body); font-weight:700; font-size:15px; cursor:pointer; }
.okd-btn-primary:hover { background:var(--okd-primary-dark); }
.okd-btn-ghost { background:transparent; color:var(--okd-muted); border:1px solid #cfd8d7; padding:12px 22px; border-radius:999px; font-family:var(--okd-body); font-weight:600; cursor:pointer; }
.okd-btn-ghost:hover { background:#f2f3f4; }

/* Admin meta-box variant: no drawer chrome, just the fields. */
.okd-fields--admin { max-width:760px; }

/* ============ ACCOUNT / PASSWORD / MESSAGES ============ */
.okd-account { margin-top:26px; padding-top:22px; border-top:1px dashed var(--okd-line); }
.okd-account__meta { color:var(--okd-muted); font-size:14px; margin:0 0 12px; }
.okd-account__msg { font-size:14px; border-radius:8px; padding:9px 12px; margin:0 0 12px; }
.okd-account__msg--ok { background:#dcfce7; color:#14532d; }
.okd-account__msg--err { background:#fee2e2; color:#991b1b; }
.okd-account__form input[type=password] {
	width:100%; box-sizing:border-box; font-family:var(--okd-body); font-size:15px; color:var(--okd-ink);
	border:1px solid #cfd8d7; border-radius:10px; padding:10px 13px; background:#fff;
}
.okd-account__form input[type=password]:focus { outline:none; border-color:var(--okd-primary); box-shadow:0 0 0 3px rgba(14,107,104,.15); }

/* ============ SAVE TOAST ============ */
.okd-toast {
	position:fixed; bottom:26px; left:50%; transform:translateX(-50%);
	background:var(--okd-ink); color:#fff; padding:14px 24px; border-radius:12px;
	font-family:var(--okd-body); font-weight:600; box-shadow:0 12px 32px rgba(0,28,39,.35);
	z-index:100000; transition:opacity .4s ease, transform .4s ease;
}
.okd-toast.is-hiding { opacity:0; transform:translateX(-50%) translateY(12px); }
