/* BrightBolt Grant Directory – front end. Everything scoped under .bbgd. Fonts inherit from the theme. */
.bbgd {
	--bbgd-accent: #007C89;
	--bbgd-on-accent: #fff;
	--bbgd-ink: #14232C;
	--bbgd-muted: #51626C;
	--bbgd-line: #D9E2E6;
	--bbgd-soft: #EEF4F6;
	--bbgd-ok: #1E7B45;
	--bbgd-ok-bg: #E4F4EA;
	--bbgd-warn: #8A5A00;
	--bbgd-warn-bg: #FFF4D6;
	--bbgd-no: #9B2C2C;
	--bbgd-no-bg: #FBE7E7;
	--bbgd-electric: #F5C400;
	--bbgd-r: 8px;
	color: var(--bbgd-ink);
	line-height: 1.55;
}
.bbgd *, .bbgd *::before, .bbgd *::after { box-sizing: border-box; }
.bbgd h2 { margin: 0 0 8px; line-height: 1.2; }
.bbgd h3 { margin: 0 0 4px; line-height: 1.25; }
.bbgd p { margin: 0 0 12px; }
.bbgd[hidden], .bbgd [hidden] { display: none !important; }
.bbgd .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.bbgd a { color: var(--bbgd-accent); }
.bbgd :focus-visible { outline: 3px solid var(--bbgd-accent); outline-offset: 2px; }

/* Buttons */
.bbgd-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 10px 20px; border-radius: 12px; border: 2px solid var(--bbgd-accent);
	background: var(--bbgd-accent); color: var(--bbgd-on-accent) !important; font: inherit; font-weight: 700;
	text-decoration: none !important; cursor: pointer; line-height: 1.2;
}
.bbgd-btn:hover { filter: brightness(1.08); }
.bbgd-btn[disabled] { opacity: .6; cursor: wait; }
.bbgd-btn--ghost { background: transparent; color: var(--bbgd-accent) !important; }
.bbgd-btn--small { min-height: 40px; padding: 6px 14px; font-size: .92em; }
.bbgd-link { background: none; border: 0; padding: 8px 0; color: var(--bbgd-accent); text-decoration: underline; cursor: pointer; font: inherit; }
.bbgd-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 16px 0; }
.bbgd-small { font-size: .9em; color: var(--bbgd-muted); }

/* Intro */
.bbgd-intro { margin: 0 0 40px; }
.bbgd-eyebrow { text-transform: uppercase; letter-spacing: .08em; font-size: .8em; font-weight: 700; color: var(--bbgd-accent); margin-bottom: 4px; }
.bbgd-intro__title { font-size: clamp(1.6rem, 3.5vw, 2.4rem); }
.bbgd-intro__lead { font-size: 1.08em; max-width: 70ch; }
.bbgd-stats { display: flex; flex-wrap: wrap; gap: 12px; list-style: none; padding: 0; margin: 16px 0; }
.bbgd-stats li { background: var(--bbgd-soft); border-radius: var(--bbgd-r); padding: 12px 16px; min-width: 150px; }
.bbgd-stats strong { display: block; font-size: 1.8em; line-height: 1.1; color: var(--bbgd-accent); }
.bbgd-offer { border: 2px solid var(--bbgd-accent); border-radius: 12px; padding: 20px 24px; margin-top: 24px; }
.bbgd-ticks { padding-left: 0; list-style: none; margin: 0 0 16px; }
.bbgd-ticks li { padding-left: 28px; position: relative; margin-bottom: 6px; }
.bbgd-ticks li::before { content: "✓"; position: absolute; left: 0; font-weight: 700; color: var(--bbgd-accent); }

/* Panels and forms */
.bbgd-panel { background: var(--bbgd-soft); border-radius: 12px; padding: 24px; margin: 0 0 40px; }
.bbgd-section { margin: 0 0 40px; }
.bbgd-form label { display: block; font-weight: 600; font-size: .95em; }
.bbgd-form input[type=text], .bbgd-form input[type=email], .bbgd-form input[type=tel], .bbgd-form input[type=date], .bbgd-form input[type=password],
.bbgd-form select, .bbgd-form textarea, .bbgd-filters input[type=search], .bbgd-filters select {
	display: block; width: 100%; min-height: 48px; margin-top: 4px; padding: 10px 12px;
	border: 1px solid #9AA9B2; border-radius: var(--bbgd-r); background: #fff; color: var(--bbgd-ink); font: inherit; font-weight: 400;
}
.bbgd-form textarea { min-height: 80px; }
.bbgd-form input[type=file] { display: block; margin-top: 6px; font-weight: 400; }
.bbgd-form fieldset { border: 0; padding: 0; margin: 0 0 16px; }
.bbgd-form legend { font-weight: 700; margin-bottom: 8px; padding: 0; }
.bbgd-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-bottom: 16px; }
.bbgd-check { display: flex !important; gap: 10px; align-items: flex-start; font-weight: 400 !important; margin: 8px 0; cursor: pointer; }
.bbgd-check input { width: 20px; height: 20px; margin-top: 2px; flex: none; accent-color: var(--bbgd-accent); }
.bbgd-chips { display: flex; flex-wrap: wrap; gap: 8px; border: 0; padding: 0; margin: 0 0 16px; }
.bbgd-chips legend { width: 100%; font-weight: 700; margin-bottom: 8px; }
.bbgd-chip { display: inline-flex !important; align-items: center; gap: 8px; min-height: 40px; padding: 6px 14px; border: 1px solid var(--bbgd-line); border-radius: 999px; background: #fff; font-weight: 500 !important; cursor: pointer; }
.bbgd-chip input { accent-color: var(--bbgd-accent); width: 18px; height: 18px; margin: 0; }
.bbgd-chip:has(input:checked) { border-color: var(--bbgd-accent); background: color-mix(in srgb, var(--bbgd-accent) 10%, #fff); }
.bbgd-status { min-height: 1.5em; font-weight: 600; }
.bbgd-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bbgd-form.is-sent .bbgd-status { color: var(--bbgd-ok); }

/* Filters */
.bbgd-filters { display: grid; gap: 12px 16px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); background: var(--bbgd-soft); padding: 16px; border-radius: 12px; margin: 16px 0; }
.bbgd-filters label { font-weight: 600; font-size: .92em; }
.bbgd-filters__search { grid-column: 1 / -1; }
.bbgd-filters .bbgd-chips, .bbgd-filters__toggles { grid-column: 1 / -1; margin: 0; }
.bbgd-filters__toggles { display: flex; flex-wrap: wrap; gap: 4px 20px; align-items: center; }
.bbgd-count { font-weight: 700; }

/* Cards */
.bbgd-cards { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.bbgd-card { display: flex; flex-direction: column; gap: 10px; background: #fff; border: 1px solid var(--bbgd-line); border-radius: 12px; padding: 18px; }
.bbgd-card.is-applied { border-color: var(--bbgd-accent); box-shadow: inset 4px 0 0 var(--bbgd-accent); }
.bbgd-card.is-won { box-shadow: inset 4px 0 0 var(--bbgd-ok); border-color: var(--bbgd-ok); }
.bbgd-card__meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.bbgd-card__title { font-size: 1.12em; }
.bbgd-card__prog { color: var(--bbgd-muted); margin-bottom: 4px; }
.bbgd-card__max { font-weight: 700; margin: 0; }
.bbgd-badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: .78em; font-weight: 700; background: var(--bbgd-accent); color: var(--bbgd-on-accent); }
.bbgd-badge--soft { background: var(--bbgd-soft); color: var(--bbgd-ink); }
.bbgd-badge--electric { background: var(--bbgd-electric); color: var(--bbgd-ink); }
.bbgd-status--open { background: var(--bbgd-ok-bg); color: var(--bbgd-ok); }
.bbgd-status--closed { background: var(--bbgd-warn-bg); color: var(--bbgd-warn); }
.bbgd-status--none { background: var(--bbgd-no-bg); color: var(--bbgd-no); }
.bbgd-status--check { background: var(--bbgd-soft); color: var(--bbgd-muted); }
.bbgd-tags { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 0; }
.bbgd-tags li { font-size: .8em; border: 1px solid var(--bbgd-line); border-radius: 999px; padding: 1px 10px; color: var(--bbgd-muted); }
.bbgd-card__more summary { cursor: pointer; font-weight: 600; color: var(--bbgd-accent); min-height: 32px; }
.bbgd-card__more dl { margin: 8px 0 0; font-size: .93em; }
.bbgd-card__more dt { font-weight: 700; margin-top: 8px; }
.bbgd-card__more dd { margin: 0; overflow-wrap: anywhere; }
.bbgd-card__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.bbgd-track { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; border-top: 1px dashed var(--bbgd-line); padding-top: 10px; }
.bbgd-track select, .bbgd-track input[type=text] { min-height: 40px; padding: 6px 8px; border: 1px solid #9AA9B2; border-radius: var(--bbgd-r); font: inherit; }
.bbgd-track__amount { display: inline-flex; gap: 6px; align-items: center; }
.bbgd-empty { padding: 24px; text-align: center; background: var(--bbgd-soft); border-radius: 12px; }

/* Tracker bar */
.bbgd-trackbar { position: sticky; bottom: 12px; z-index: 50; display: flex; gap: 16px; align-items: center; justify-content: space-between; max-width: 520px; margin: 24px auto 0; padding: 10px 12px 10px 18px; background: var(--bbgd-ink); color: #fff; border-radius: 12px; font-weight: 700; }

/* Report */
.bbgd-report-out { background: #fff; border-radius: 12px; padding: 20px; margin-top: 16px; }
.bbgd-report__meta { color: var(--bbgd-muted); }
.bbgd-report__band { margin: 0 0 20px; padding-left: 14px; border-left: 6px solid var(--bbgd-line); }
.bbgd-report__band--high { border-color: var(--bbgd-ok); }
.bbgd-report__band--medium { border-color: var(--bbgd-electric); }
.bbgd-report__band > summary { cursor: pointer; list-style: revert; }
.bbgd-report__band > summary h3 { display: inline; }
.bbgd-report__band h3 span { color: var(--bbgd-muted); font-weight: 400; }
.bbgd-report__band ol { padding-left: 20px; }
.bbgd-report__band ol > li { margin-bottom: 12px; }
.bbgd-report__why, .bbgd-report__flags { list-style: none; padding: 0; margin: 4px 0; font-size: .92em; }
.bbgd-report__why { color: var(--bbgd-ok); }
.bbgd-report__flags { color: var(--bbgd-warn); }
.bbgd-pill { display: inline-block; margin-left: 6px; padding: 0 8px; border-radius: 999px; background: var(--bbgd-soft); font-size: .82em; font-weight: 700; }
.bbgd-pill--muted { font-weight: 400; color: var(--bbgd-muted); }
.bbgd-report__note { font-size: .88em; color: var(--bbgd-muted); }

/* Table */
.bbgd-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.bbgd-table { width: 100%; border-collapse: collapse; font-size: .93em; min-width: 640px; }
.bbgd-table th, .bbgd-table td { text-align: left; vertical-align: top; padding: 10px; border-bottom: 1px solid var(--bbgd-line); }
.bbgd-table th { background: var(--bbgd-soft); }

/* Modal */
html.bbgd-lock { overflow: hidden; }
.bbgd-modal { position: fixed; inset: 0; max-width: none !important; width: auto !important; margin: 0 !important; z-index: 100000; display: flex; align-items: flex-start; justify-content: center; padding: 24px 16px; background: rgba(16, 32, 43, .6); overflow-y: auto; }
.bbgd-modal__panel { position: relative; width: 100%; max-width: 760px; background: #fff; border-radius: 12px; padding: 28px 24px; box-shadow: 0 20px 60px rgba(0, 0, 0, .25); }
.bbgd-modal__close { position: absolute; top: 8px; right: 8px; width: 44px; height: 44px; border: 0; background: none; font-size: 28px; line-height: 1; cursor: pointer; color: var(--bbgd-ink); }
.bbgd-funder-chosen { font-weight: 700; padding: 10px 14px; background: var(--bbgd-soft); border-radius: var(--bbgd-r); }
.bbgd-tracklist { margin: 0 0 16px; padding-left: 20px; }

@media (max-width: 600px) {
	.bbgd-modal { padding: 0; }
	.bbgd-modal__panel { min-height: 100vh; border-radius: 0; padding: 56px 16px 24px; }
	.bbgd-panel, .bbgd-offer { padding: 16px; }
	.bbgd-cards { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .bbgd * { transition: none !important; scroll-behavior: auto !important; } }

/* Print only the report when "Print" is used */
@media print {
	html.bbgd-printing body * { visibility: hidden; }
	html.bbgd-printing .bbgd-report, html.bbgd-printing .bbgd-report * { visibility: visible; }
	html.bbgd-printing .bbgd-report { position: absolute; left: 0; top: 0; width: 100%; }
}

/* ---------- 0.2.0: members ---------- */
.bbgd-tabs { display: flex; gap: 4px; border-bottom: 2px solid var(--bbgd-line); margin-bottom: 20px; }
.bbgd-tab { min-height: 44px; padding: 10px 18px; border: 0; border-bottom: 3px solid transparent; margin-bottom: -2px; background: none; font: inherit; font-weight: 700; color: var(--bbgd-muted); cursor: pointer; }
.bbgd-tab.is-active { color: var(--bbgd-accent); border-bottom-color: var(--bbgd-accent); }
.bbgd-member { background: #fff; border: 1px solid var(--bbgd-line); border-radius: 12px; padding: 20px 24px; }
.bbgd-chips--types .bbgd-chip { min-height: 44px; }
.bbgd-check--strong { background: var(--bbgd-soft); border-radius: var(--bbgd-r); padding: 10px 12px; font-weight: 600 !important; }
.bbgd-member #bbgd-loginform p { margin: 0 0 14px; }
.bbgd-member #bbgd-loginform label { display: block; font-weight: 600; }
.bbgd-member #bbgd-loginform input[type=text], .bbgd-member #bbgd-loginform input[type=password] { display: block; width: 100%; max-width: 420px; min-height: 48px; margin-top: 4px; padding: 10px 12px; border: 1px solid #9AA9B2; border-radius: var(--bbgd-r); font: inherit; }
.bbgd-member #bbgd-loginform .login-remember label { display: flex; gap: 8px; align-items: center; font-weight: 400; }
.bbgd-member #bbgd-loginform input[type=submit] { min-height: 44px; padding: 10px 22px; border-radius: 12px; border: 2px solid var(--bbgd-accent); background: var(--bbgd-accent); color: var(--bbgd-on-accent); font: inherit; font-weight: 700; cursor: pointer; }
.bbgd-locked { background: var(--bbgd-soft); border-radius: 12px; padding: 24px; }
.bbgd-locked__head { display: flex; gap: 16px; align-items: flex-start; }
.bbgd-locked__icon { font-size: 32px; line-height: 1; }
.bbgd-locked__regions { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0 0 24px; }
.bbgd-locked__regions li { display: inline-flex; gap: 8px; align-items: center; background: #fff; border: 1px solid var(--bbgd-line); border-radius: 999px; padding: 4px 12px; font-size: .92em; }
.bbgd-locked__regions strong { color: var(--bbgd-accent); }
.bbgd-preview { margin: 8px 0 24px; }
.bbgd-preview__label { margin-bottom: 8px; }
.bbgd-cards--preview { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.bbgd-cards--preview .bbgd-card__title { font-size: 1.02em; }
.bbgd-account { display: block; background: var(--bbgd-soft); border-radius: 12px; padding: 12px 18px; margin: 0 0 24px; }
.bbgd-account__hello { margin: 0; }
.bbgd-account__hello a { margin-left: 8px; }
.bbgd-account__prefs summary { cursor: pointer; font-weight: 600; color: var(--bbgd-accent); min-height: 36px; padding-top: 8px; }
@media (max-width: 600px) { .bbgd-member, .bbgd-locked { padding: 16px; } .bbgd-tab { padding: 10px 12px; } }

/* ---------- 0.3.0: multiple clubs ---------- */
.bbgd-orgs { border: 1px solid var(--bbgd-line); border-radius: var(--bbgd-r); padding: 14px 16px 16px; margin: 0 0 16px; }
.bbgd-orgs legend { padding: 0 6px; }
.bbgd-org-row { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) auto; gap: 8px 12px; align-items: end; margin-bottom: 10px; }
.bbgd-org-row__remove { min-height: 48px; }
@media (max-width: 600px) { .bbgd-org-row { grid-template-columns: 1fr; padding-bottom: 10px; border-bottom: 1px dashed var(--bbgd-line); } .bbgd-org-row__remove { min-height: 32px; justify-self: start; } }
