/*
Theme Name: ERVARC
Template: twentytwentyfive
Description: Child theme for the Elk River Valley Amateur Radio Club.
Version: 1.15.4
Text Domain: ervarc
*/

.ervarc-topbar { font-size: 0.85rem; }
.ervarc-topbar a { color: inherit; }

.ervarc-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--base);
	border: 0;
	border-top: 3px solid var(--wp--preset--color--gold);
	min-width: 230px;
}
.ervarc-header .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--gold); }

/* Desktop menu: keep it on the logo's row, pushed to the right. If a narrow window
   still forces a wrap, margin-left:auto keeps the menu right-aligned on its own line. */
.ervarc-header > .wp-block-group > .wp-block-navigation { margin-left: auto; }
@media (min-width: 782px) {
	.ervarc-header .wp-block-navigation,
	.ervarc-header .wp-block-navigation__container { gap: 0.85rem; }
}
@media (min-width: 1280px) {
	.ervarc-header > .wp-block-group { flex-wrap: nowrap !important; gap: 1rem; }
	.ervarc-header > .wp-block-group > .wp-block-group { flex-shrink: 0; }
	.ervarc-header .wp-block-navigation,
	.ervarc-header .wp-block-navigation__container { flex-wrap: nowrap; white-space: nowrap; }
}

.ervarc-meeting {
	border-left: 6px solid var(--wp--preset--color--gold);
	border-radius: 10px;
	box-shadow: 0 4px 18px rgba(18, 53, 91, 0.12);
}

.ervarc-card {
	height: 100%;
	border-radius: 10px;
	border-top: 4px solid var(--wp--preset--color--forest);
	box-shadow: 0 2px 10px rgba(18, 53, 91, 0.08);
	display: flex;
	flex-direction: column;
}
.ervarc-card .wp-block-buttons { margin-top: auto; }

.ervarc-freq td:first-child { font-family: var(--wp--preset--font-family--fira-code, monospace); font-weight: 700; }
.wp-block-table thead { background: var(--wp--preset--color--navy); color: var(--wp--preset--color--base); }

.tbd { background: #fff3cd; padding: 0 0.25em; border-radius: 3px; }

/* Band Conditions page */
.bc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.bc-card { background: #fff; border-radius: 10px; padding: 1rem; border-top: 4px solid #9aa3ad; box-shadow: 0 2px 10px rgba(18, 53, 91, 0.08); }
.bc-card[data-level="good"] { border-top-color: #2f8a3e; }
.bc-card[data-level="fair"] { border-top-color: #e0a526; }
.bc-card[data-level="poor"] { border-top-color: #c0392b; }
.bc-label { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--wp--preset--color--navy); }
.bc-value { font-size: 1.8rem; font-weight: 800; line-height: 1.2; margin: 0.25rem 0; font-variant-numeric: tabular-nums; }
.bc-note { font-size: 0.85rem; color: #555; }
.bc-updated { font-size: 0.8rem; color: #555; }
.bc-img img { max-width: 100%; height: auto; display: block; margin: 0 auto; border-radius: 6px; }

.ervarc-emblem { display: block; width: 180px; height: auto; margin: 0 auto 1rem; filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.35)); }
@media (max-width: 600px) { .ervarc-emblem { width: 130px; } }

/* Phones: keep logo, name and menu button on one row; shorten the top bar */
@media (max-width: 781px) {
	.ervarc-header > .wp-block-group { flex-wrap: nowrap !important; gap: 0.75rem; }
	.ervarc-header > .wp-block-group > .wp-block-group { min-width: 0; }
	.ervarc-header .wp-block-site-tagline { display: none; }
	.ervarc-header .wp-block-site-title { font-size: 1.05rem !important; line-height: 1.2; }
	.ervarc-header img[src*="mark.svg"] { width: 48px; height: 48px; }
	.ervarc-topbar p { text-align: center !important; }
	.ervarc-topbar .tb-extra { display: none; }
}

/* Mobile menu overlay: navy panel, grouped sections */
.ervarc-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--navy) !important;
	color: #fff !important;
	padding: 1.25rem 1.5rem 2rem;
}
.ervarc-header .is-menu-open .wp-block-navigation__responsive-container-content,
.ervarc-header .is-menu-open .wp-block-navigation__container {
	align-items: stretch !important;
	width: 100%;
	gap: 0 !important;
}
.ervarc-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	width: 100%;
	align-items: flex-start !important;
	padding: 0.7rem 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}
.ervarc-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-size: 1.15rem;
	font-weight: 700;
}
.ervarc-header .is-menu-open .has-child > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--gold);
	font-size: 0.85rem !important;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.ervarc-header .is-menu-open .wp-block-navigation__submenu-container {
	gap: 0 !important;
	margin-top: 0.35rem;
	padding: 0 0 0 0.9rem !important;
	border-left: 2px solid var(--wp--preset--color--gold);
}
.ervarc-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.35rem 0 !important;
	font-size: 1rem;
	font-weight: 500;
}
.ervarc-header .is-menu-open .wp-block-navigation-item__content:hover,
.ervarc-header .is-menu-open .wp-block-navigation-item__content:focus { color: var(--wp--preset--color--gold); }
.ervarc-header .is-menu-open .wp-block-navigation__submenu-container,
.ervarc-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
	width: 100%;
	align-items: flex-start !important;
	justify-content: flex-start !important;
	text-align: left;
}

/* Membership application form */
.join-form { background: #fff; border-radius: 10px; border-top: 4px solid var(--wp--preset--color--gold); box-shadow: 0 4px 18px rgba(18, 53, 91, 0.12); padding: clamp(1.25rem, 4vw, 2rem); }
.join-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem 1.25rem; }
.join-field--full { grid-column: 1 / -1; }
@media (max-width: 640px) { .join-grid { grid-template-columns: 1fr; } }
.join-field label { display: block; font-weight: 600; margin-bottom: 0.3rem; color: var(--wp--preset--color--navy); }
.join-field input[type="text"], .join-field input[type="email"], .join-field input[type="tel"], .join-field select {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem; padding: 0.65rem 0.75rem;
	border: 1.5px solid #b9c2cc; border-radius: 6px; background: #fff; color: var(--wp--preset--color--contrast);
}
.join-field input:focus, .join-field select:focus { outline: 3px solid rgba(224, 165, 38, 0.45); border-color: var(--wp--preset--color--navy); }
.join-field input:disabled { background: #eef1f4; color: #6b7480; }
.join-field [aria-invalid="true"] { border-color: #c0392b; }
#join-call { text-transform: uppercase; letter-spacing: 0.05em; }
.join-check { display: flex !important; align-items: center; gap: 0.5rem; font-weight: 600; cursor: pointer; }
.join-check--inline { font-weight: 400 !important; font-size: 0.92rem; margin-top: 0.4rem; }
.join-check input { width: 1.15rem; height: 1.15rem; accent-color: var(--wp--preset--color--navy); }
.join-hint { font-size: 0.85rem; color: #555; margin: 0.3rem 0 0; }
.join-error { color: #b03a2e; font-size: 0.88rem; font-weight: 600; min-height: 1.2em; margin: 0.25rem 0 0.5rem; }
.req { color: #b03a2e; }
.opt { font-weight: 400; color: #666; font-size: 0.9rem; }
.join-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.join-submit { display: inline-flex; align-items: center; gap: 0.6rem; margin-top: 1rem; border: 0; cursor: pointer; font-size: 1.05rem; padding: 0.8rem 1.6rem; }
.join-submit:disabled { opacity: 0.75; cursor: wait; }
.join-spinner { display: none; width: 1em; height: 1em; border: 2.5px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: join-spin 0.8s linear infinite; }
.join-submit.is-busy .join-spinner { display: inline-block; }
@keyframes join-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .join-spinner { animation-duration: 2.5s; } }
.join-banner { border-radius: 8px; padding: 0.85rem 1rem; margin-bottom: 1.25rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; }
.join-banner[hidden] { display: none; }
.join-banner--error { background: #fdecea; border: 1.5px solid #e6a49c; color: #7d2318; }
.join-banner--info { background: #fff3cd; border: 1.5px solid #e9cf7d; }
.join-retry { font: inherit; font-weight: 700; background: #7d2318; color: #fff; border: 0; border-radius: 6px; padding: 0.45rem 0.9rem; cursor: pointer; }
.join-success { background: #eaf5ec; border-left: 6px solid var(--wp--preset--color--forest); border-radius: 10px; padding: 1.5rem 1.75rem; }
.join-success:focus { outline: none; }

/* Let long email addresses wrap instead of widening the page on phones */
a[href^="mailto:"] { overflow-wrap: anywhere; }

/* Tighter tables on phones */
@media (max-width: 600px) {
	.wp-block-table { font-size: 0.88rem; }
	.wp-block-table td, .wp-block-table th { padding: 0.4em 0.45em; }
}

/* Members page */
.member-grid { list-style: none; padding: 0; margin: 1.5rem 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 1rem; }
.member-card { background: #fff; border-radius: 10px; border-top: 4px solid var(--wp--preset--color--forest); box-shadow: 0 2px 10px rgba(18, 53, 91, 0.08); padding: 1rem 1.1rem; display: flex; flex-direction: column; gap: 0.25rem; }
.member-card--officer { border-top-color: var(--wp--preset--color--gold); }
.member-call { font-family: var(--wp--preset--font-family--fira-code, ui-monospace, monospace); font-size: 1.35rem; font-weight: 800; letter-spacing: 0.04em; color: var(--wp--preset--color--navy); text-decoration: none; }
.member-call:hover, .member-call:focus { text-decoration: underline; color: var(--wp--preset--color--forest); }
.member-call::after { content: " ↗"; font-size: 0.75em; opacity: 0.55; }
.member-class { font-size: 0.9rem; color: #555; }
.member-role { align-self: flex-start; margin-top: 0.3rem; font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; background: var(--wp--preset--color--gold); color: var(--wp--preset--color--contrast); border-radius: 999px; padding: 0.15rem 0.6rem; }
.member-count { font-size: 0.95rem; }

/* For Sale single listing (/listing/?id=...) */
.ld-msg { padding: 2rem 0; color: #555; }
.ld-back { margin: 0 0 1rem; }
.ld-wrap { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 2rem; align-items: start; }
@media (max-width: 760px) { .ld-wrap { grid-template-columns: minmax(0, 1fr); } }
.ld-main-wrap { position: relative; }
.ld-main { display: block; width: 100%; height: 320px; object-fit: contain; background: #f2f2f2; border-radius: 8px; cursor: zoom-in; }
@media (max-width: 760px) { .ld-main { height: 240px; } }
.ld-zoom { position: absolute; right: 0.6rem; bottom: 0.6rem; padding: 0.4rem 0.8rem; border: 0; border-radius: 6px; background: rgba(0,0,0,0.7); color: #fff; font: inherit; font-size: 0.9rem; font-weight: 600; cursor: pointer; }
.ld-zoom:hover, .ld-zoom:focus-visible { background: #0073aa; }
.ld-lightbox { position: fixed; inset: 0; z-index: 9999; background: rgba(0,0,0,0.92); display: flex; flex-direction: column; }
.ld-lightbox[hidden] { display: none; }
.ld-lb-stage { flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; padding: 3.5rem 3.5rem 0; overflow: auto; }
.ld-lb-img { max-width: 100%; max-height: 100%; object-fit: contain; cursor: zoom-in; }
.ld-lightbox.is-full .ld-lb-stage { display: block; padding: 3.5rem 1rem 0; }
.ld-lightbox.is-full .ld-lb-img { max-width: none; max-height: none; cursor: zoom-out; }
.ld-lb-hint { margin: 0; padding: 0.75rem; text-align: center; color: #ccc; font-size: 0.875rem; }
.ld-lb-close, .ld-lb-prev, .ld-lb-next { position: absolute; z-index: 1; border: 0; background: rgba(255,255,255,0.15); color: #fff; cursor: pointer; border-radius: 50%; width: 2.75rem; height: 2.75rem; font-size: 1.75rem; line-height: 1; }
.ld-lb-close:hover, .ld-lb-prev:hover, .ld-lb-next:hover { background: rgba(255,255,255,0.3); }
.ld-lb-close { top: 0.75rem; right: 0.75rem; }
.ld-lb-prev { left: 0.5rem; top: 50%; transform: translateY(-50%); }
.ld-lb-next { right: 0.5rem; top: 50%; transform: translateY(-50%); }
.ld-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 0.5rem; margin-top: 0.75rem; }
.ld-thumb { padding: 0; border: 2px solid transparent; border-radius: 6px; background: none; cursor: pointer; overflow: hidden; }
.ld-thumb.is-active { border-color: #0073aa; }
.ld-thumb img { display: block; width: 100%; height: 72px; object-fit: cover; }
.ld-nophoto { display: grid; place-items: center; min-height: 220px; background: #f2f2f2; border-radius: 8px; color: #777; }
.ld-cat { display: inline-block; background: #0073aa; color: #fff; padding: 0.25rem 0.75rem; border-radius: 20px; font-size: 0.875rem; font-weight: 600; }
.ld-title { margin: 0.75rem 0 0.25rem; }
.ld-price { margin: 0 0 1rem; font-size: 1.5rem; font-weight: 700; color: #0073aa; }
.ld-desc { line-height: 1.6; color: #444; overflow-wrap: anywhere; }
.ld-contact { border-top: 1px solid #ddd; margin-top: 1.25rem; padding-top: 1rem; }
.ld-contact p { margin: 0.3rem 0; }
.ld-date { color: #888; font-size: 0.875rem; }

/* AllStar node page */
.asl-node-number { font-size: clamp(2.5rem, 8vw, 4.5rem); font-weight: 800; letter-spacing: 0.04em; line-height: 1; margin: 0.5rem 0; }
.asl-status { background: #fff; border: 1px solid #ddd; border-radius: 8px; padding: 1.5rem; }
.asl-state { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 1rem; font-size: 1.15rem; }
.asl-dot { width: 0.85rem; height: 0.85rem; border-radius: 50%; background: #999; flex: none; }
.asl-state--online .asl-dot { background: #2f6b3a; }
.asl-state--keyed .asl-dot { background: #e0a526; box-shadow: 0 0 0 4px rgba(224,165,38,0.3); }
.asl-state--offline .asl-dot { background: #b3261e; }
.asl-status h3 { margin: 0 0 0.5rem; font-size: 1rem; }
.asl-table-wrap { overflow-x: auto; }
.asl-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.asl-table th, .asl-table td { text-align: left; padding: 0.5rem 0.6rem; border-bottom: 1px solid #eee; white-space: nowrap; }
.asl-table th { background: #f5f3ee; }
.asl-updated { margin: 1rem 0 0; color: #777; font-size: 0.85rem; }
.asl-code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; background: #f5f3ee; padding: 0.1rem 0.4rem; border-radius: 4px; font-weight: 700; }
.asl-live { margin: 1rem 0 0; font-weight: 600; }

/* Next-meeting countdown */
.mtg-countdown { margin: 0.5rem 0 1.25rem; }
.mtg-cd-units { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.mtg-cd-units[hidden] { display: none; }
.mtg-cd-units > div { min-width: 4.5rem; padding: 0.6rem 0.5rem; text-align: center; background: #12355b; color: #fff; border-radius: 8px; }
.mtg-cd-units span { display: block; font-size: 1.9rem; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.mtg-cd-units small { display: block; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em; opacity: 0.85; }
.mtg-cd-msg { margin: 0; padding: 0.75rem 1rem; background: #e0a526; color: #1f2328; font-weight: 700; border-radius: 8px; }

/* Projects tables */
.ervarc-projects table { font-size: 0.95rem; }
.ervarc-projects th:nth-child(1) { width: 55%; }
.ervarc-projects th:nth-child(2) { width: 15%; }
@media (max-width: 640px) {
	.ervarc-projects table, .ervarc-projects tbody, .ervarc-projects tr, .ervarc-projects td { display: block; width: 100% !important; }
	.ervarc-projects thead { display: none; }
	.ervarc-projects tr { border-bottom: 2px solid #ddd; padding: 0.5rem 0; }
	.ervarc-projects td { border: 0; padding: 0.2rem 0; }
	.ervarc-projects td:nth-child(2)::before { content: "Level: "; font-weight: 700; }
	.ervarc-projects td:nth-child(3)::before { content: "Learn: "; font-weight: 700; }
}
.asl-mini { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.9rem; white-space: nowrap; }
.asl-mini .asl-dot { width: 0.65rem; height: 0.65rem; }
.ervarc-nodes td { vertical-align: middle; }

/* Live nets (QSO One activity) */
.ln-total { font-size: 1.15rem; margin: 0 0 0.75rem; }
.ln-total strong { font-size: 1.6rem; color: #12355b; }
.ln-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 1rem; }
.ln-chip { border: 1px solid #c9d3de; background: #fff; color: #12355b; border-radius: 999px; padding: 0.3rem 0.8rem; font: inherit; font-size: 0.9rem; cursor: pointer; }
.ln-chip b { margin-left: 0.25rem; }
.ln-chip.is-active { background: #12355b; border-color: #12355b; color: #fff; }
.ln-table-wrap { overflow-x: auto; background: #fff; border: 1px solid #ddd; border-radius: 8px; }
.ln-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.ln-table th, .ln-table td { text-align: left; padding: 0.55rem 0.7rem; border-bottom: 1px solid #eee; vertical-align: top; }
.ln-table th { background: #f5f3ee; white-space: nowrap; }
.ln-table tr.is-ours { background: #fdf6e3; }
.ln-count { font-weight: 800; font-size: 1.1rem; color: #12355b; text-align: center !important; }
.ln-desc { display: block; color: #666; font-size: 0.85rem; }
.ln-badge { display: inline-block; margin-top: 0.25rem; background: #e0a526; color: #1f2328; font-size: 0.75rem; font-weight: 700; padding: 0.1rem 0.5rem; border-radius: 999px; }
.ln-net { display: inline-block; font-size: 0.78rem; font-weight: 700; padding: 0.15rem 0.5rem; border-radius: 4px; background: #eef2f6; color: #12355b; white-space: nowrap; }
.ln-net--allstarlink { background: #12355b; color: #fff; }
.ln-net--echolink { background: #2f6b3a; color: #fff; }
.ln-net--dmr { background: #dce8f3; }
.ln-net--ysf { background: #e7f0e3; color: #2f6b3a; }
.ln-updated, .ln-stale, .ln-msg { color: #777; font-size: 0.85rem; margin-top: 0.75rem; }
.ln-stale { color: #8a5a00; }
.ln-how { white-space: nowrap; }
.ln-join { display: inline-block; background: #2f6b3a; color: #fff !important; text-decoration: none; font-weight: 700; font-size: 0.85rem; padding: 0.3rem 0.8rem; border-radius: 6px; white-space: nowrap; }
.ln-join:hover, .ln-join:focus-visible { background: #12355b; }
.ln-join-note { display: block; margin-top: 0.3rem; font-size: 0.78rem; color: #555; max-width: 14rem; white-space: normal; }

/* Project vote */
.pv-box { background: #fff; border: 1px solid #ddd; border-top: 4px solid #e0a526; border-radius: 8px; padding: 1.5rem; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 2rem; }
.pv-box > .pv-kicker, .pv-box > .pv-closed { grid-column: 1 / -1; }
@media (max-width: 760px) { .pv-box { grid-template-columns: minmax(0, 1fr); } }
.pv-kicker { margin: 0 0 1rem; font-weight: 700; color: #2f6b3a; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.85rem; }
.pv-row { margin-bottom: 0.9rem; }
.pv-row label { display: block; font-weight: 600; margin-bottom: 0.3rem; }
.pv-opt { font-weight: 400; color: #777; }
.pv-row input, .pv-row select { width: 100%; padding: 0.6rem 0.7rem; border: 1px solid #bbb; border-radius: 6px; font: inherit; background: #fff; }
#pv-call { text-transform: uppercase; max-width: 12rem; }
.pv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.pv-submit { background: #12355b; color: #fff; border: 0; border-radius: 6px; padding: 0.7rem 1.4rem; font: inherit; font-weight: 700; cursor: pointer; }
.pv-submit:hover, .pv-submit:focus-visible { background: #2f6b3a; }
.pv-submit[disabled] { opacity: 0.6; cursor: wait; }
.pv-msg { margin: 0.75rem 0 0; padding: 0.5rem 0.75rem; border-radius: 6px; background: #e7f0e3; color: #1f4a28; font-weight: 600; }
.pv-msg.is-error { background: #fbe9e7; color: #8a1c12; }
.pv-fine { margin: 0.6rem 0 0; font-size: 0.85rem; color: #777; }
.pv-results { min-width: 0; }
.pv-total { margin: 0 0 0.6rem; }
.pv-total strong { font-size: 1.4rem; color: #12355b; }
.pv-list { list-style: none; margin: 0; padding: 0; }
.pv-list li { margin-bottom: 0.7rem; }
.pv-label { display: flex; justify-content: space-between; gap: 0.75rem; font-size: 0.95rem; }
.pv-n { white-space: nowrap; color: #555; font-variant-numeric: tabular-nums; }
.pv-bar { height: 0.6rem; background: #eef2f6; border-radius: 999px; overflow: hidden; margin-top: 0.25rem; }
.pv-bar span { display: block; height: 100%; background: #1f4f7a; border-radius: 999px; }
.pv-list li.is-lead .pv-bar span { background: #e0a526; }
.pv-list li.is-lead .pv-label span:first-child { font-weight: 700; }
.pv-you { display: inline-block; margin-left: 0.35rem; font-size: 0.72rem; font-weight: 700; background: #2f6b3a; color: #fff; padding: 0.05rem 0.45rem; border-radius: 999px; vertical-align: middle; }
.pv-empty, .pv-loading { color: #777; }
.pv-closed { margin: 0 0 1rem; }

/* Live nets: phone layout (cards instead of a wide table) */
.ln-count-l, .ln-how-l { display: none; }
@media (max-width: 680px) {
	.ln-total { font-size: 1rem; }
	.ln-total strong { font-size: 1.4rem; }
	.ln-chips { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; padding-bottom: 0.4rem; margin-right: -1rem; padding-right: 1rem; scrollbar-width: none; }
	.ln-chips::-webkit-scrollbar { display: none; }
	.ln-chip { flex: none; scroll-snap-align: start; padding: 0.45rem 0.9rem; min-height: 2.5rem; }
	.ln-table-wrap { overflow: visible; background: none; border: 0; border-radius: 0; }
	.ln-table, .ln-table tbody { display: block; }
	.ln-table thead { display: none; }
	.ln-table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "net count" "where where" "join join" "how how"; gap: 0.35rem 0.75rem; align-items: center; background: #fff; border: 1px solid #ddd; border-radius: 10px; padding: 0.8rem 0.9rem; margin-bottom: 0.65rem; }
	.ln-table tr[hidden] { display: none; }
	.ln-table tr.is-ours { background: #fdf6e3; border-color: #e0a526; }
	.ln-table td { display: block; padding: 0; border: 0; }
	.ln-net-cell { grid-area: net; }
	.ln-count { grid-area: count; text-align: right !important; font-size: 1rem; white-space: nowrap; }
	.ln-count-n { font-size: 1.25rem; }
	.ln-count-l { display: inline; font-size: 0.75rem; font-weight: 400; color: #666; }
	.ln-where { grid-area: where; font-size: 1.05rem; overflow-wrap: anywhere; }
	.ln-join-cell { grid-area: join; }
	.ln-join-cell:empty { display: none; }
	.ln-join { display: block; text-align: center; font-size: 1rem; padding: 0.7rem 1rem; min-height: 2.75rem; border-radius: 8px; }
	.ln-join-note { max-width: none; text-align: center; }
	.ln-how { grid-area: how; white-space: normal; font-size: 0.85rem; color: #555; }
	.ln-how:empty { display: none; }
	.ln-how-l { display: inline; }
	.ln-how .asl-code { font-size: 0.85rem; }
	.ln-updated { text-align: center; }
}

/* Online meetings page */
.meet-join .wp-block-button__link { font-size: 1.2rem; padding: 0.9rem 2rem; }
.meet-code { margin-top: 0.75rem !important; opacity: 0.9; letter-spacing: 0.02em; }

/* Donor recognition board */
.donor-board { background: #fff; border-radius: 10px; border-top: 4px solid var(--wp--preset--color--forest); box-shadow: 0 4px 18px rgba(18, 53, 91, 0.12); padding: clamp(1.25rem, 4vw, 2rem); }
.donor-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1.5rem; margin-bottom: 2rem; }
.donor-stat { text-align: center; }
.donor-stat-value { font-size: clamp(1.8rem, 5vw, 2.5rem); font-weight: 800; color: var(--wp--preset--color--navy); line-height: 1.2; }
.donor-stat-label { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.08em; color: #666; margin-top: 0.4rem; font-weight: 600; }
.donor-board-section h3 { margin: 1.5rem 0 0.75rem; color: var(--wp--preset--color--navy); }
.donor-intro { color: #555; line-height: 1.6; margin: 0 0 1rem; }
.donor-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important; gap: 1.25rem !important; margin: 1.5rem 0 !important; width: 100% !important; }
.donor-card { background: #fff !important; border: 2px solid #e8e8e8 !important; border-radius: 12px !important; padding: 1.75rem 1.5rem !important; display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center !important; transition: all 0.3s ease !important; position: relative !important; width: 100% !important; min-height: 150px !important; justify-content: center !important; box-sizing: border-box !important; }
.donor-card:hover { transform: translateY(-4px) !important; box-shadow: 0 8px 20px rgba(18, 53, 91, 0.15) !important; }
.donor-card-content { display: flex !important; flex-direction: column !important; align-items: center !important; width: 100% !important; }
.donor-callsign { font-family: var(--wp--preset--font-family--fira-code, ui-monospace, monospace) !important; font-size: 1.4rem !important; font-weight: 800 !important; letter-spacing: 0.06em !important; color: var(--wp--preset--color--navy) !important; margin-bottom: 0.5rem !important; }
.donor-contribution { font-size: 1.6rem !important; font-weight: 800 !important; color: var(--wp--preset--color--forest) !important; margin-bottom: 0.75rem !important; }
.donor-badge { font-size: 0.85rem !important; font-weight: 700 !important; padding: 0.5rem 0.75rem !important; border-radius: 6px !important; background: #f0f0f0 !important; color: #333 !important; margin-top: auto !important; }

/* Donor tiers */
.donor-card--gold { border-color: #d4af37 !important; border-top-width: 4px !important; border-top-color: #d4af37 !important; background: linear-gradient(135deg, #fffef7 0%, #fff 100%) !important; }
.donor-card--gold .donor-badge { background: linear-gradient(135deg, #d4af37 0%, #f4e4a6 100%) !important; color: #333 !important; font-weight: 800 !important; }
.donor-card--gold:hover { box-shadow: 0 8px 25px rgba(212, 175, 55, 0.2) !important; }

.donor-card--silver { border-color: #c0c0c0 !important; border-top-width: 4px !important; border-top-color: #c0c0c0 !important; background: linear-gradient(135deg, #fafafa 0%, #f5f5f5 100%) !important; }
.donor-card--silver .donor-badge { background: linear-gradient(135deg, #c0c0c0 0%, #e8e8e8 100%) !important; color: #333 !important; font-weight: 800 !important; }
.donor-card--silver:hover { box-shadow: 0 8px 25px rgba(192, 192, 192, 0.2) !important; }

.donor-card--bronze { border-color: #cd7f32 !important; border-top-width: 4px !important; border-top-color: #cd7f32 !important; background: linear-gradient(135deg, #fffaf5 0%, #fff 100%) !important; }
.donor-card--bronze .donor-badge { background: linear-gradient(135deg, #cd7f32 0%, #e8b47b 100%) !important; color: #fff !important; font-weight: 800 !important; }
.donor-card--bronze:hover { box-shadow: 0 8px 25px rgba(205, 127, 50, 0.2) !important; }

@media (max-width: 640px) { .donor-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important; gap: 1rem !important; } .donor-callsign { font-size: 1.2rem !important; } .donor-contribution { font-size: 1.4rem !important; } }
.donor-box { border-radius: 8px; padding: 1rem 1.25rem; background: #fff3cd; border: 1.5px solid #e9cf7d; }
.donor-box--info { background: #fff3cd; border-color: #e9cf7d; }

/* Expense transparency board */
.expense-board { background: #fff; border-radius: 10px; border-top: 4px solid var(--wp--preset--color--gold); box-shadow: 0 4px 18px rgba(18, 53, 91, 0.12); padding: clamp(1.25rem, 4vw, 2rem); margin-top: 2rem; }
.expense-header { margin-bottom: 1.5rem; }
.expense-header h3 { margin: 0 0 0.5rem; }
.expense-header p { margin: 0; color: #555; line-height: 1.6; }
.expense-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1.5rem; margin-bottom: 2rem; padding: 1.5rem; background: #f5f5f5; border-radius: 8px; }
.expense-summary-item { text-align: center; }
.expense-summary-label { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.08em; color: #666; margin-bottom: 0.5rem; font-weight: 600; }
.expense-summary-value { font-size: clamp(1.4rem, 4vw, 2rem); font-weight: 800; color: #12355b; line-height: 1.2; }
.expense-table-wrap { overflow-x: auto; margin: 1.5rem 0; }
.expense-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.expense-table th, .expense-table td { text-align: left; padding: 0.75rem; border-bottom: 1px solid #eee; }
.expense-table th { background: #f5f3ee; font-weight: 700; color: var(--wp--preset--color--navy); }
.expense-table tbody tr:hover { background: #f9f9f9; }
.expense-date { font-weight: 600; color: var(--wp--preset--color--navy); white-space: nowrap; }
.expense-cat { font-size: 0.85rem; color: #666; }
.expense-amt { font-weight: 700; color: var(--wp--preset--color--forest); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.expense-footer { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid #eee; }
.expense-note { margin: 0; font-size: 0.9rem; color: #666; line-height: 1.6; }
@media (max-width: 640px) {
	.expense-table, .expense-table tbody, .expense-table tr, .expense-table td { display: block; width: 100% !important; }
	.expense-table thead { display: none; }
	.expense-table tr { border-bottom: 2px solid #ddd; padding: 0.5rem 0; margin-bottom: 0.75rem; }
	.expense-table td { border: 0; padding: 0.35rem 0; }
	.expense-table td:first-child { border-top: 1px solid #ddd; padding-top: 0.5rem; }
	.expense-date::before { content: "Date: "; font-weight: 700; }
	.expense-desc::before { content: "Description: "; font-weight: 700; }
	.expense-cat::before { content: "Category: "; font-weight: 700; }
	.expense-amt::before { content: "Amount: "; font-weight: 700; }
}

/* Admin summary views */
.admin-donor-summary { background: #f9f9f9; border: 1px solid #ddd; border-radius: 8px; padding: 1.5rem; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.admin-table th, .admin-table td { text-align: left; padding: 0.65rem; border-bottom: 1px solid #eee; }
.admin-table th { background: #f0f0f0; font-weight: 700; }
.admin-table tbody tr:hover { background: #f5f5f5; }
.admin-note { margin: 1rem 0 0; font-size: 0.85rem; color: #666; }
.admin-box { border-radius: 8px; padding: 1rem 1.25rem; }
.admin-box--warning { background: #fff8e1; border: 1.5px solid #f9e79f; }

/* Treasurer Dashboard */
.treasurer-dashboard { background: #fff; border-radius: 10px; border-top: 4px solid var(--wp--preset--color--navy); box-shadow: 0 4px 18px rgba(18, 53, 91, 0.12); padding: clamp(1.25rem, 4vw, 2rem); }

.treasurer-login { text-align: center; padding: 2rem 1rem; }
.treasurer-login h3 { margin-bottom: 1.5rem; }
.treasurer-login-form { display: flex; gap: 0.75rem; flex-wrap: wrap; justify-content: center; align-items: center; max-width: 400px; margin: 0 auto; }
.treasurer-login-form input { flex: 1; min-width: 200px; padding: 0.75rem 1rem; border: 1px solid #ddd; border-radius: 6px; font-size: 1rem; }
.treasurer-login-form button { padding: 0.75rem 1.5rem; }

.treasurer-authenticated { padding: 0; }
.treasurer-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; gap: 1rem; }
.treasurer-header h3 { margin: 0; }
.treasurer-header button { margin: 0; }

.treasurer-section { margin-bottom: 3rem; padding-bottom: 2rem; border-bottom: 1px solid #eee; }
.treasurer-section:last-of-type { border-bottom: 0; margin-bottom: 1rem; }
.treasurer-section h4 { margin: 0 0 1.5rem; color: var(--wp--preset--color--navy); }

.treasurer-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; }
.form-row { display: flex; flex-direction: column; }
.form-row label { font-weight: 600; margin-bottom: 0.5rem; color: var(--wp--preset--color--navy); font-size: 0.95rem; }
.form-row .required { color: #e74c3c; }
.form-row input, .form-row select, .form-row textarea { padding: 0.75rem 1rem; border: 1px solid #ddd; border-radius: 6px; font-size: 1rem; font-family: inherit; }
.form-row textarea { resize: vertical; min-height: 80px; }
.form-row input:focus, .form-row select:focus, .form-row textarea:focus { outline: none; border-color: var(--wp--preset--color--navy); box-shadow: 0 0 0 3px rgba(18, 53, 91, 0.1); }

.treasurer-form button { grid-column: 1 / -1; max-width: 200px; }

.treasurer-info { background: #f5f5f5; border: 1px solid #ddd; border-radius: 8px; padding: 1rem 1.25rem; margin-top: 2rem; }
.treasurer-info p { margin: 0; font-size: 0.9rem; color: #555; }

.admin-banner { border-radius: 8px; padding: 1rem 1.25rem; margin-bottom: 1.5rem; }
.admin-banner--success { background: #d4edda; border: 1px solid #c3e6cb; color: #155724; }
.admin-banner--error { background: #f8d7da; border: 1px solid #f5c6cb; color: #721c24; }
.admin-banner--warning { background: #fff3cd; border: 1px solid #ffeaa7; color: #856404; }

.wp-element-button--secondary { background: #6c757d; color: #fff; text-decoration: none; }
.wp-element-button--secondary:hover { background: #5a6268; }

/* Audit log */
.treasurer-note { font-size: 0.9rem; color: #666; margin: 0.5rem 0 1rem; }

.audit-log-table-wrap { overflow-x: auto; margin-top: 1rem; border-radius: 8px; border: 1px solid #ddd; }
.audit-log-table { width: 100%; border-collapse: collapse; background: #fff; }
.audit-log-table th { background: #f0f0f0; font-weight: 700; text-align: left; padding: 0.75rem 1rem; border-bottom: 2px solid #ddd; font-size: 0.9rem; }
.audit-log-table td { padding: 0.75rem 1rem; border-bottom: 1px solid #eee; font-size: 0.9rem; }
.audit-log-table tbody tr:hover { background: #f9f9f9; }
.audit-badge { display: inline-block; padding: 0.25rem 0.75rem; border-radius: 4px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.audit-badge--contribution { background: #d4edda; color: #155724; }
.audit-badge--expense { background: #f8d7da; color: #721c24; }
.audit-amount { font-weight: 600; text-align: right; font-family: var(--wp--preset--font-family--fira-code, monospace); }
.audit-timestamp { font-size: 0.85rem; color: #888; }
.audit-btn-delete { background: #dc3545; color: #fff; border: none; padding: 0.4rem 0.75rem; border-radius: 4px; font-size: 0.85rem; cursor: pointer; transition: background 0.2s; }
.audit-btn-delete:hover { background: #c82333; }

@media (max-width: 640px) {
	.treasurer-header { flex-direction: column; align-items: flex-start; }
	.treasurer-form { grid-template-columns: 1fr; }
	.treasurer-form button { max-width: 100%; }
	.treasurer-login-form { flex-direction: column; }
	.treasurer-login-form input { width: 100%; }
	.audit-log-table th, .audit-log-table td { padding: 0.5rem 0.75rem; font-size: 0.85rem; }
}


