/*
 * Florida Division plugin styles.
 * Colors, fonts and spacing come from the theme (theme.json presets), so the
 * forms and lists follow whatever design the site uses.
 */

.fldiv-box {
	max-width: 36rem;
	padding: var(--wp--preset--spacing--40, 1.5rem);
	border: 1px solid color-mix(in srgb, currentColor 15%, transparent);
	border-radius: 6px;
}

.fldiv-box input[type="text"],
.fldiv-box input[type="email"],
.fldiv-box input[type="password"],
.fldiv-box select {
	width: 100%;
	box-sizing: border-box;
	padding: 0.55em 0.7em;
	font: inherit;
	border: 1px solid color-mix(in srgb, currentColor 30%, transparent);
	border-radius: 4px;
	background: var(--wp--preset--color--base, #fff);
	color: inherit;
}

.fldiv-box label { display: block; font-weight: 600; }
.fldiv-box fieldset { border: 0; padding: 0; margin: 1.5em 0 0; }
.fldiv-box legend { font-weight: 600; margin-bottom: 0.5em; }

.fldiv-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 600px) { .fldiv-row { grid-template-columns: 1fr; } }

.fldiv-button,
.fldiv-box input[type="submit"] {
	display: inline-block;
	padding: 0.65em 1.4em;
	font: inherit;
	font-weight: 600;
	border: 0;
	border-radius: 4px;
	cursor: pointer;
	text-decoration: none;
	background: var(--leaf, #7b1f24);
	color: var(--wp--preset--color--base, #fff);
}
.fldiv-button:hover,
.fldiv-box input[type="submit"]:hover { background: var(--leaf2, #9e2a2b); }

.fldiv-small { font-size: 0.9em; opacity: 0.8; font-weight: normal; }
.fldiv-signout { margin-left: 1em; }
/* A button that reads as a link (My Account: "Cancel the change"). */
.fldiv-linkbutton { background: none; border: 0; padding: 0; font: inherit; color: var(--leaf, #7b1f24); text-decoration: underline; cursor: pointer; }
/* Outline twin of .fldiv-button: a second choice beside it (Sign out, Back to sign in) or a back link (Back to Officer Forms).
   An inset ring instead of a border keeps it the same height as the filled button. */
.fldiv-button.fldiv-button-outline { background: transparent; color: var(--leaf, #7b1f24); box-shadow: inset 0 0 0 2px var(--leaf, #7b1f24); }
.fldiv-button.fldiv-button-outline:hover, .fldiv-button.fldiv-button-outline:focus-visible { background: var(--leaf, #7b1f24); color: #fff; }

/*
 * Messages: no colored fill, just a bar on the left. Final colors come with
 * the site design (Phase 5); the bar uses the theme's text color for now.
 */
.fldiv-notice,
.fldiv-success {
	padding: 0.25em 0 0.25em 1em;
	margin: 0 0 1.25em;
	border-left: 4px solid var(--leaf, #7b1f24);
}
.fldiv-notice { border-left-color: #8b1e1e; }
.fldiv-notice p, .fldiv-success p { margin: 0.25em 0; }
/* A whole confirmation box (request sent, check your email) keeps the normal box. */
.fldiv-box.fldiv-success { padding: var(--wp--preset--spacing--40, 1.5rem); border: 1px solid color-mix(in srgb, currentColor 15%, transparent); }

/* Spam trap: hidden from people, visible to bots that fill every field. */
.fldiv-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* WordPress login form inside our box */
.fldiv-login .login-remember label { font-weight: normal; }

/* ---------- Document Library and Report Kit ---------- */

/* The library page: groups on the left, documents on the right. */
.fldiv-lib { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 36px; align-items: start; }
.fldiv-lib-nav { position: sticky; top: calc(var(--site-stick, 0px) + var(--site-stuck-height, 0px) + 16px); padding-right: 14px; border-right: 1px solid var(--line, #e4d6cb); font-size: 19px; line-height: 1.25; }
.fldiv-lib-nav ul { margin: 0; padding: 0; list-style: none; }
.fldiv-lib-link { display: flex; justify-content: space-between; gap: 8px; padding: 7px 10px; border-radius: 4px; color: inherit; text-decoration: none; }
.fldiv-lib-link:hover { background: var(--linen, #f4ece4); }
.fldiv-lib-link[aria-current] { background: var(--leaf, #7b1f24); color: #fff; }
.fldiv-lib-count { color: var(--mute, #6e625c); font-size: 17px; }
.fldiv-lib-link[aria-current] .fldiv-lib-count { color: #eadcd2; }
.fldiv-lib-kid { padding: 4px 10px 4px 24px; font-size: 18px; }
.fldiv-lib-choose { display: none; }
.wp-block-post-content .fldiv-lib-pane > .fldiv-lib-title { margin-top: 0; }

/* Minutes, one era at a time */
.fldiv-eras { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 12px; }
.fldiv-era { padding: 5px 14px; border: 1.5px solid var(--gold, #e0a526); border-radius: 99px; color: var(--leaf, #7b1f24); font-size: 18px; text-decoration: none; }
.fldiv-era:hover, .fldiv-era:focus-visible { background: color-mix(in srgb, var(--gold, #e0a526) 60%, #fff); color: var(--leaf, #7b1f24); }
.fldiv-era[aria-current] { background: var(--pale, #ffe7ae); font-weight: 600; }

/* Document rows: year, what it is, file buttons. The whole row opens the main file. */
.fldiv-rows { margin: 0 0 1.5em; padding: 0; list-style: none; line-height: 1.3; }
.fldiv-doc-row { position: relative; display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; gap: 14px; align-items: baseline; padding: 10px 6px; border-bottom: 1px solid var(--line, #e4d6cb); }
.fldiv-rows-noyear .fldiv-doc-row { grid-template-columns: minmax(0, 1fr) auto; }
.fldiv-rows-noyear .fldiv-row-year { display: none; }
.fldiv-doc-row:hover { background: var(--linen, #f4ece4); }
.fldiv-row-year { font: 400 19px "Libre Caslon Text", Georgia, serif; white-space: nowrap; }
.fldiv-row-link { color: inherit; text-decoration: none; }
.fldiv-row-link::after { content: ""; position: absolute; inset: 0; }
.fldiv-doc-row:hover .fldiv-row-link { text-decoration: underline; text-underline-offset: 4px; }
.fldiv-row-who { display: block; margin-top: 2px; color: var(--mute, #6e625c); font-size: 17px; }
.fldiv-row-files { position: relative; z-index: 1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.fldiv-rows-inline { margin: 0; }
.fldiv-rows-inline .fldiv-doc-row { border: 0; }
.fldiv-file-item { display: inline-flex; align-items: baseline; gap: 6px; }
.fldiv-row-files .fldiv-size { order: -1; }
.fldiv-file { padding: 1px 9px; border: 1px solid var(--leaf2, #9e2a2b); border-radius: 4px; background: #fff; color: var(--leaf2, #9e2a2b); font-size: 16px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.fldiv-file:hover { background: var(--leaf2, #9e2a2b); color: #fff; }
.fldiv-size { color: var(--mute, #6e625c); font-size: 16px; white-space: nowrap; }
.fldiv-sep { opacity: 0.7; }
.fldiv-doc-desc { display: block; font-size: 0.9em; margin-top: 0.2em; }
.fldiv-crumbs { font-size: 0.9em; margin-bottom: 0.25em; }

/* Phones: the list of groups becomes a menu above the documents. */
@media (max-width: 860px) {
	.fldiv-lib { display: block; }
	.fldiv-lib-nav { display: none; }
	.fldiv-lib-choose { display: block; margin-bottom: 20px; }
	.fldiv-lib-choose label { display: block; margin-bottom: 4px; font-weight: 700; }
	.fldiv-lib-choose-row { display: flex; gap: 8px; }
	.fldiv-lib-choose select { flex: 1; min-width: 0; min-height: 48px; padding: 8px 10px; border: 1px solid #8a7d76; border-radius: 5px; background: #fff; color: inherit; font: inherit; }
	.fldiv-lib-choose, .fldiv-rows { font-size: 19px; }
	.fldiv-lib-choose select { font-size: 19px; }
	.fldiv-doc-row { grid-template-columns: 76px minmax(0, 1fr) auto; gap: 10px; padding: 12px 2px; }
	.fldiv-rows-noyear .fldiv-doc-row { grid-template-columns: minmax(0, 1fr) auto; }
	.fldiv-row-year { font-size: 17px; white-space: normal; }
	.fldiv-row-who { font-size: 16px; }
	.fldiv-row-files { max-width: 76px; }
	.fldiv-file { padding: 5px 10px; }
	.fldiv-file-item { flex-direction: column; align-items: flex-end; gap: 2px; }
	.fldiv-row-files .fldiv-size { order: 1; font-size: 14px; }
}

.fldiv-new {
	display: inline-block; font-size: 0.7em; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
	padding: 0.1em 0.5em; border-radius: 3px; vertical-align: 0.15em;
	background: var(--pale, #ffe7ae); color: var(--ink, #2b2422);
}

/* ---------- Tables: Chapters and Report Kit ---------- */

.fldiv-table { width: 100%; border-collapse: collapse; margin: 0 0 2em; font-size: 0.95em; }
.fldiv-table th, .fldiv-table td { text-align: left; padding: 0.55em 0.75em; border-bottom: 1px solid color-mix(in srgb, currentColor 12%, transparent); vertical-align: top; }
.fldiv-table thead th { font-size: 0.85em; text-transform: uppercase; letter-spacing: 0.04em; border-bottom: 2px solid currentColor; }
.fldiv-table tbody tr:nth-child(even) td { background: color-mix(in srgb, currentColor 3%, transparent); }
.fldiv-district-title {
	display: flex; align-items: center; gap: 0.4em; margin: 1.5em 0 0.6em;
	font-size: var(--wp--preset--font-size--large, 1.6rem); font-weight: 400; line-height: 1.2;
}
.fldiv-icon { width: 1em; height: 1em; fill: currentColor; flex: none; }
.fldiv-icon-ribbon { width: 1.1em; height: 1.1em; }
.fldiv-icon-ribbon .r-red { fill: var(--leaf2, #9e2a2b); }
.fldiv-icon-ribbon .r-white { fill: #fff; }
.fldiv-icon-ribbon .r-edge { fill: none; stroke: var(--leaf2, #9e2a2b); stroke-width: 1; stroke-linejoin: round; }
.fldiv-icon-link { display: inline-block; margin-right: 0.5em; }
/* Heading icons: red-white-red ribbon on the Board and Past Presidents pages, quill on Officer Forms and Report Kit. */
.fldiv-board-page .entry-content h2, .fldiv-quill-page .entry-content h2 { display: flex; align-items: center; gap: 0.4em; }
.fldiv-board-page .entry-content h2::before, .fldiv-quill-page .entry-content h2::before { content: ""; flex: none; width: 1.1em; height: 1.1em; background: center / contain no-repeat; }
.fldiv-quill-page .entry-content h2::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%239e2a2b' d='M21 2.5C14.5 3.3 8.8 7.8 6.6 15.2L6 18l2.2-.6c1-1.6 2.6-3 4.6-4l-2.3-.5c2.6-1 5-2.1 6.6-3.7l-2.2-.4C17.6 7.3 19.8 5.3 21 2.5z'/%3E%3Cpath fill='none' stroke='%23fff' stroke-width='.9' stroke-linecap='round' d='M19.4 4.1C14.6 7.4 10 11.8 7 17'/%3E%3Cpath fill='none' stroke='%239e2a2b' stroke-width='1.5' stroke-linecap='round' d='M6.6 17.6 5 21'/%3E%3Cpath fill='none' stroke='%239e2a2b' stroke-width='1.2' stroke-linecap='round' d='M8.5 21.5h9'/%3E%3C/svg%3E"); }
.fldiv-board-page .entry-content h2::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%239e2a2b' d='M6 2h12a1 1 0 0 1 1 1v19l-7-5-7 5V3a1 1 0 0 1 1-1z'/%3E%3Cpath fill='%23fff' d='M9.67 2h4.66v16.67L12 17l-2.33 1.67z'/%3E%3Cpath fill='none' stroke='%239e2a2b' stroke-linejoin='round' d='M6 2h12a1 1 0 0 1 1 1v19l-7-5-7 5V3a1 1 0 0 1 1-1z'/%3E%3C/svg%3E"); }
.fldiv-director-email { white-space: nowrap; }
.fldiv-view { display: inline-flex; align-items: center; gap: 0.3em; white-space: nowrap; }
.fldiv-view .fldiv-icon { width: 1.15em; height: 1.15em; }
.fldiv-icon-link .fldiv-icon { width: 1.4em; height: 1.4em; vertical-align: middle; }

/*
 * Accent tables (Chapters): colored header row, tinted alternate rows,
 * accent-colored links. The theme sets the color.
 */
:root { --fldiv-accent: #9e2a2b; }
.fldiv-accent-table thead th {
	background: var(--fldiv-accent); color: #fff; border: 0;
	text-transform: none; letter-spacing: 0; font-size: 1em; font-weight: 500;
}
.fldiv-accent-table td { border: 0; border-bottom: 1px solid var(--line, #e4d6cb); }
.fldiv-accent-table tbody tr:nth-child(odd) td { background: transparent; }
.fldiv-accent-table tbody tr:nth-child(even) td { background: var(--linen, #f4ece4); }
.fldiv-accent-table tbody tr:nth-child(n):hover td { background: var(--hover, #ece1d7); }
.fldiv-accent-table a { color: var(--fldiv-accent); text-decoration: none; }
.fldiv-accent-table a:hover { text-decoration: underline; }

/* Chapters: wider than the text column, so names and cities stay on one line. */
/* The theme limits page content to a narrow column; this one block may be wider, centered. */
.fldiv-chapters {
	max-width: none !important;
	width: min(72rem, calc(100vw - 2rem));
	margin-left: auto !important;
	margin-right: auto !important;
}
/* Same column widths in every district's table, so the columns line up down the page. */
@media (min-width: 701px) {
	.fldiv-chapters .fldiv-table { table-layout: fixed; }
	.fldiv-chapters .fldiv-table td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.fldiv-chapters .fldiv-table th:nth-child(1) { width: 7%; }
	.fldiv-chapters .fldiv-table th:nth-child(2) { width: 26%; }
	.fldiv-chapters .fldiv-table th:nth-child(3) { width: 15%; }
	.fldiv-chapters .fldiv-table th:nth-child(4) { width: 20%; }
	.fldiv-chapters .fldiv-table th:nth-child(5) { width: 8%; }
	.fldiv-chapters .fldiv-table th:nth-child(6) { width: 11%; }
	.fldiv-chapters .fldiv-table th:nth-child(7) { width: 13%; }
}

/* Phones: each chapter becomes a small card instead of a wide table. */
@media (max-width: 700px) {
	.fldiv-chapters .fldiv-table thead { display: none; }
	.fldiv-chapters .fldiv-table tr { display: block; padding: 0.6em 0; border-bottom: 1px solid color-mix(in srgb, currentColor 15%, transparent); }
	.fldiv-chapters .fldiv-table td { display: block; border: 0; padding: 0.1em 0; background: none !important; }
	.fldiv-chapters .fldiv-table td:empty { display: none; }
	.fldiv-chapters .fldiv-table td::before { content: attr(data-label) ": "; font-weight: 600; opacity: 0.7; }
}

/* ---------- Report Kit tables: garnet header, alternating rows; a row opens its form ---------- */

.fldiv-kit .fldiv-eras { margin-bottom: 20px; }
.fldiv-kit-table { font-size: 1em; }
.fldiv-kit-table thead th { padding: 10px 14px; background: var(--leaf2, #9e2a2b); font-size: 19px; font-weight: 700; }
.fldiv-kit-table thead th:not(:first-child), .fldiv-kit-file { width: 5.5em; text-align: center !important; white-space: nowrap; }
.fldiv-kit-table tbody tr:nth-child(n) td { padding: 10px 14px; border-bottom: 1px solid var(--line, #e4d6cb); background: transparent; vertical-align: middle; }
.fldiv-kit-table tbody tr.fldiv-kit-even:nth-child(n) td { background: var(--linen, #f4ece4); }
.fldiv-kit-row { position: relative; }
.fldiv-kit-table tbody tr.fldiv-kit-row:hover td { background: var(--hover, #ece1d7); }
.fldiv-kit-table a.fldiv-kit-link { color: inherit; text-decoration: none; }
.fldiv-kit-link::after { content: ""; position: absolute; inset: 0; }
.fldiv-kit-row:hover .fldiv-kit-link { text-decoration: underline !important; text-underline-offset: 4px; }
.fldiv-kit-file a { position: relative; z-index: 1; }
.fldiv-kit-file .fldiv-file-item { display: flex; flex-direction: column; align-items: center; gap: 1px; }
.fldiv-kit-file .fldiv-size { font-size: 13px; }
.fldiv-lib-pane .fldiv-table { margin-bottom: 1.5em; }
.fldiv-kit-table .fldiv-doc-desc { margin-top: 1px; color: var(--mute, #6e625c); font-size: 16px; font-style: italic; line-height: 1.3; }
.fldiv-kit-table .fldiv-kit-section th { padding: 18px 14px 6px; font: 700 22px/1.2 "Libre Caslon Text", Georgia, serif; }
@media (max-width: 640px) {
	.fldiv-kit-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.fldiv-kit-table, .fldiv-kit-table tbody { display: block; }
	.fldiv-kit-table tr.fldiv-kit-row { display: flex; align-items: center; }
	.fldiv-kit-table tr.fldiv-kit-row td:first-child { flex: 1; min-width: 0; }
	.fldiv-kit-table tr.fldiv-kit-row td { display: block; padding: 12px 6px; }
	.fldiv-kit-table tr.fldiv-kit-row td:first-child { padding-left: 10px; }
	.fldiv-kit-table tr.fldiv-kit-row:nth-child(n) td { border-bottom: 0; }
	.fldiv-kit-table tr.fldiv-kit-row { border-bottom: 1px solid var(--line, #e4d6cb); background: transparent; }
	.fldiv-kit-table tr.fldiv-kit-even { background: var(--linen, #f4ece4); }
	.fldiv-kit-table tr.fldiv-kit-even:nth-child(n) td, .fldiv-kit-table tbody tr.fldiv-kit-row:hover td { background: transparent; }
	.fldiv-kit-file { width: auto; }
	.fldiv-kit-file:empty { display: none !important; }
	.fldiv-kit-table .fldiv-kit-section { display: block; }
	.fldiv-kit-table .fldiv-kit-section th { display: block; padding-left: 10px; }
}

/* ---------- A group on its own page: Officer Forms, Clubs ---------- */

.fldiv-group-page { margin-top: 1em; }
.fldiv-group-section { margin-top: 2em; }
.site-main .wp-block-post-content .fldiv-group-section h2 { margin: 0 0 8px; }
.fldiv-group-note { max-width: 46em; margin-bottom: 10px; }
.fldiv-group-note p { margin: 0 0 0.7em; }
.fldiv-group-note ul { margin: 0 0 0.7em; padding-left: 1.2em; }
@media (min-width: 861px) { .fldiv-note-columns { columns: 2; } }
.fldiv-group-body.has-image { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 28px; align-items: start; margin-top: 14px; }
.fldiv-group-image { display: block; width: 100%; height: auto; mix-blend-mode: multiply; }
.fldiv-group-tables .fldiv-table { margin-bottom: 18px; }
.fldiv-group-tables .fldiv-table:last-child { margin-bottom: 0; }
.fldiv-group-tables .fldiv-group-note .fldiv-table:last-child { margin-bottom: 18px; }
.fldiv-officers-table thead th:nth-child(2) { width: auto; text-align: left !important; }
.fldiv-officers-table thead th:first-child { width: 42%; }
.fldiv-officers-table .fldiv-icon-link { display: inline-block; margin: 0; vertical-align: middle; }
.fldiv-group-tables .fldiv-group-note { max-width: none; margin: 0; }
.fldiv-group-tables .fldiv-group-note p { margin: 0 0 6px; }
@media (max-width: 640px) {
	.fldiv-group-body.has-image { display: block; }
	.fldiv-group-image { width: 110px; margin: 0 0 12px; }
	.fldiv-kit-table.fldiv-officers-table tr.fldiv-kit-row { display: grid; grid-template-columns: 42% minmax(0, 1fr) auto; }
}

.fldiv-map { display: block; width: 100%; height: min(70vh, 640px); margin: 0 0 1em; border: 1px solid var(--line, #e4d6cb); }
.fldiv-map-link { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 0 0 1.25em; }
.fldiv-map-link .fldiv-new { font-size: 0.8em; vertical-align: 0; }
.fldiv-map-note { color: var(--mute, #6e625c); }
/* Chapter Locations map ([fldiv_chapter_map]) */
.fldiv-map-filter button.fldiv-era { display: inline-flex; align-items: center; gap: 7px; background: #fff; font: inherit; font-size: 17px; cursor: pointer; }
.fldiv-map-filter button.fldiv-era:hover, .fldiv-map-filter button.fldiv-era:focus-visible { background: color-mix(in srgb, var(--gold, #e0a526) 60%, #fff); }
.fldiv-map-filter button.fldiv-era[aria-pressed="true"] { background: var(--pale, #ffe7ae); font-weight: 600; }
.fldiv-pin-swatch { width: 12px; height: 12px; border-radius: 50%; flex: none; }
.fldiv-map-live { z-index: 0; border-radius: 6px; background: var(--linen, #f4ece4); }
.fldiv-pin-wrap { background: none; border: 0; }
.fldiv-pin { display: block; width: 20px; height: 20px; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 1px 4px rgb(0 0 0 / .45); }
.fldiv-pin-wrap:hover .fldiv-pin, .fldiv-pin-wrap:focus .fldiv-pin { box-shadow: 0 0 0 3px var(--gold, #e0a526); }
.fldiv-map-live .leaflet-popup-content { margin: 12px 14px; font: 16px/1.4 "Alegreya Sans", sans-serif; color: var(--ink, #2b2422); }
.fldiv-pin-name { display: block; font-size: 18px; }
.fldiv-pin-meta { color: var(--mute, #6e625c); }
.fldiv-pin-pres { margin-top: 4px; }
.fldiv-pin-links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.fldiv-map-live .fldiv-pin-links a { padding: 2px 10px; border-radius: 4px; background: var(--linen, #f4ece4); color: var(--fldiv-accent); text-decoration: none; }
.fldiv-map-live .fldiv-pin-links a:first-child { background: var(--fldiv-accent); color: #fff; }
.fldiv-map-live .fldiv-pin-links a:hover { text-decoration: underline; }

/* ---------- Search results ---------- */

.fldiv-results-for { margin: 0 0 1em; }
.fldiv-results h2 { margin: 1.25em 0 0.25em; }
.fldiv-results h2 .fldiv-small { font-family: inherit; font-size: 0.55em; }
.fldiv-results-list { list-style: none; margin: 0 0 1.5em; padding: 0; }
.fldiv-hit { padding: 0.8em 0; border-bottom: 1px solid color-mix(in srgb, currentColor 15%, transparent); }
.fldiv-hit-title { display: block; font-weight: 700; }
.fldiv-hit-meta, .fldiv-hit-text { display: block; margin-top: 0.15em; font-size: 0.9em; }
.fldiv-hit-meta { color: var(--mute, #6e625c); }
.fldiv-results mark { padding: 0 0.1em; background: var(--pale, #ffe7ae); color: inherit; }
.fldiv-results-pages { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5em 1em; }

/* ---------- Announcements ---------- */

.site-main .fldiv-welcome { margin: 0 0 0.3em; font-size: clamp(38px, 5vw, 60px); line-height: 1.05; }
/* Two columns (laptops, tablets): every box on the left, posts on the right. */
.fldiv-board { display: grid; grid-template-columns: 340px minmax(0, 1fr); grid-template-areas: "left main" "right main"; grid-template-rows: auto 1fr; gap: 0 48px; align-items: start; }
.fldiv-board-main { grid-area: main; }
.fldiv-board-left { grid-area: left; }
.fldiv-board-right { grid-area: right; margin-top: 26px; }
/* Three columns on large screens: posts in the middle. */
@media (min-width: 1200px) {
	.fldiv-board { grid-template-columns: 290px minmax(0, 1fr) 290px; grid-template-areas: "left main right"; grid-template-rows: auto; gap: 0 44px; }
	.fldiv-board-right { margin-top: 0; }
}
/* Wider than the usual page column on larger screens, so the posts get the extra room. */
@media (min-width: 861px) {
	.fldiv-board { --board-width: min(1440px, calc(100vw - 2 * var(--gutter, 56px))); width: var(--board-width); max-width: none !important; margin-left: calc((100% - var(--board-width)) / 2) !important; margin-right: calc((100% - var(--board-width)) / 2) !important; }
}
.fldiv-board-jump { display: none; }
.site-main .wp-block-post-content .fldiv-board-side h2 { margin: 0 0 6px; font-size: 28px; }
.fldiv-board-side .fldiv-rows { margin: 0; font-size: 19px; }
.fldiv-board-side .fldiv-doc-row { grid-template-columns: minmax(0, 1fr) auto; gap: 0 10px; padding: 9px 2px; }
.fldiv-board-side .fldiv-row-year { grid-column: 1 / -1; color: var(--mute, #6e625c); font-size: 16px; }
.fldiv-board-side .fldiv-row-year:empty { display: none; }
.fldiv-president { display: grid; grid-template-columns: 96px minmax(0, 1fr); grid-auto-rows: min-content; column-gap: 16px; align-content: center; margin-bottom: 22px; }
.fldiv-president-photo { grid-row: 1 / span 4; width: 96px; height: auto; border-radius: 4px; }
.fldiv-president p { margin: 0; }
.fldiv-president-name { font: 700 22px/1.25 "Libre Caslon Text", Georgia, serif; }
.fldiv-president-term { color: var(--mute, #6e625c); font-size: 18px; }
.fldiv-president-theme { margin-top: 4px !important; font: italic 400 20px/1.3 "Libre Caslon Text", Georgia, serif; }
.fldiv-board-note + #new-in-library { margin-top: 26px; }
.fldiv-board-note { padding: 16px 18px; border-left: 4px solid var(--gold, currentColor); background: var(--linen, #f4ece4); font-size: 19px; }
.site-main .wp-block-post-content .fldiv-board-note h2 { margin: 0 0 10px; border: 0; padding: 0; color: var(--leaf, #7b1f24); font: 700 28px/1.15 "Libre Caslon Text", Georgia, serif; }
.site-main .wp-block-post-content .fldiv-board-note h3 { margin: 14px 0 2px; font: 700 19px/1.25 "Alegreya Sans", sans-serif; }
.fldiv-board-note p { margin: 0 0 6px; line-height: 1.35; }
.fldiv-board-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; }
.fldiv-board-actions .fldiv-button { padding: 0.35em 1em; }
form.fldiv-board-actions { margin: 0 0 6px; }
.fldiv-button-fb { display: inline-flex; align-items: center; gap: 0.45em; }
.fldiv-button-fb .fldiv-icon { width: 1.15em; height: 1.15em; }
.fldiv-board-who { color: var(--mute, #6e625c); font-size: 17px; overflow-wrap: anywhere; }
.site-main .wp-block-post-content .fldiv-news-post h2 { margin-top: 0; }
.site-main .wp-block-post-content .fldiv-board-main > .fldiv-news, .site-main .wp-block-post-content .fldiv-board-main > .fldiv-board-jump { margin-top: 48px; }
.fldiv-news-post h2 a { color: inherit; text-decoration: none; }
.fldiv-news-post h2 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.fldiv-news-summary { margin: 0.4em 0; }
.fldiv-news-full > p { margin: 0.4em 0 0.8em; }
.fldiv-news-full > p:last-child { margin-bottom: 0; }
.fldiv-news-post { display: flex; align-items: flex-start; gap: 24px; }
.fldiv-news-body { flex: 1; min-width: 0; }
.fldiv-news-thumb { display: block; flex: none; width: 110px; }
.fldiv-news-thumb img { display: block; width: 100%; height: auto; border: 1px solid var(--line, #e4d6cb); border-radius: 3px; }
.fldiv-news-thumb-doc { display: flex; align-items: center; justify-content: center; aspect-ratio: 8.5 / 11; border: 1px solid var(--line, #e4d6cb); border-radius: 3px; background: var(--linen, #f4ece4); color: var(--leaf, #7b1f24); font-size: 16px; font-weight: 700; }
@media (max-width: 600px) {
	.fldiv-news-post { gap: 14px; }
	.fldiv-news-thumb { width: 72px; }
}
.fldiv-news-more { margin: 0; }
.fldiv-news-back { margin: 0 0 12px; }
.fldiv-news-back-end { margin: 2em 0 0; }
.fldiv-news-pin { display: inline-block; margin-left: 0.4em; color: var(--fldiv-accent); vertical-align: -2px; }
.site-main .wp-block-post-content h1.fldiv-news-title { margin: 0 0 0.25em; font-size: clamp(32px, 3.6vw, 44px); line-height: 1.1; }
.fldiv-news-gone { padding: 12px 16px; background: var(--linen, #f4ece4); }
.fldiv-news-post:last-of-type { margin-bottom: 1em; }
@media (max-width: 860px) {
	.fldiv-board { display: block; margin-top: 16px; }
	.fldiv-board-jump { display: block; margin: 0 0 20px; }
	.fldiv-board-side { margin-top: 32px; }
	.fldiv-board-side .fldiv-doc-row { grid-template-columns: minmax(0, 1fr) auto; }
}

.fldiv-news-post { padding-bottom: 2em; margin-bottom: 2em; border-bottom: 1px solid color-mix(in srgb, currentColor 15%, transparent); }
.fldiv-news-post h2 { margin: 0 0 0.1em; }
/* A pinned post sits on a light tint of the accent colour, with no label. */
.fldiv-news-post.fldiv-news-pinned { background: color-mix(in srgb, var(--fldiv-accent) 7%, #fff); padding: 1.4em 1.5em; border-radius: 6px; border-bottom: 0; }
.fldiv-news-image { display: block; width: 100%; max-width: 420px; height: auto; margin: 0.75em 0; }
.fldiv-news-zoom { cursor: zoom-in; }
/* A post's picture shown large over the page; the ✕, Esc or a click outside closes it. */
.fldiv-zoom { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 56px 16px 16px; background: rgba(0, 0, 0, 0.9); cursor: zoom-out; }
.fldiv-zoom[hidden] { display: none; }
.fldiv-zoom img { display: block; max-width: calc(100vw - 32px); max-height: calc(100vh - 72px); width: auto; height: auto; box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5); cursor: default; }
.fldiv-zoom-close { position: absolute; top: 8px; right: 12px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, 0.15); color: #fff; font-size: 34px; line-height: 44px; cursor: pointer; }
.fldiv-zoom-close:hover, .fldiv-zoom-close:focus-visible { background: rgba(255, 255, 255, 0.3); outline: 2px solid #fff; outline-offset: 2px; }
.fldiv-news-files { margin: 0.75em 0 0; padding-left: 1.1em; }
.fldiv-news-files .fldiv-size { font-size: 0.9em; opacity: 0.7; }
.fldiv-news-pages { display: flex; justify-content: space-between; gap: 1em; }

/* ---------- Gallery ---------- */

/* Like Chapters, this block may be wider than the theme's text column. */
.fldiv-gallery {
	max-width: none !important;
	width: min(72rem, calc(100vw - 2rem));
	margin-left: auto !important;
	margin-right: auto !important;
}
.fldiv-gallery-bar { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0.75rem 1.25rem; margin-bottom: 1.5em; }
.fldiv-album-filter {
	flex: 1 1 14rem; max-width: 28rem; padding: 0.55em 0.7em; font: inherit;
	border: 1px solid color-mix(in srgb, currentColor 30%, transparent); border-radius: 4px;
	background: var(--wp--preset--color--base, #fff); color: inherit;
}
.fldiv-gallery-add summary { list-style: none; }
.fldiv-gallery-add summary::-webkit-details-marker { display: none; }
.fldiv-gallery-add form { margin-top: 0.75rem; width: min(32rem, calc(100vw - 2rem)); box-sizing: border-box; }
.fldiv-gallery-add input[type="text"] { width: 100%; box-sizing: border-box; }
.fldiv-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.25rem; }
/* Cancel is an outline button; it stays hidden until the script can fold the form back up. */
.fldiv-cancel[hidden] { display: none; }
/* The memo code for a check (INS 5602): a box that stands out from the text around it. */
.fldiv-memo { display: inline-block; padding: 0 0.45em; border: 2px solid var(--leaf, #7b1f24); border-radius: 4px; background: #fff; color: var(--leaf, #7b1f24); font-size: 1.05em; letter-spacing: 0.03em; white-space: nowrap; }
/* A date: Month and Day dropdowns, then the Year typed in (Safari's date box won't take a typed year). The online forms restyle it below. */
.fldiv-date-picker { display: flex; flex-wrap: wrap; gap: 8px; }
.fldiv-date-picker select, .fldiv-date-picker input[type="text"] { width: auto; min-height: 2.5em; box-sizing: border-box; padding: 0.45em 0.6em; font: inherit; color: inherit; background: #fff; border: 1px solid color-mix(in srgb, currentColor 30%, transparent); border-radius: 4px; }
.fldiv-date-picker input[type="text"] { width: 4.6em; }
.fldiv-gallery input[type="date"], .fldiv-gallery textarea {
	width: 100%; box-sizing: border-box; padding: 0.55em 0.7em; font: inherit; color: inherit;
	border: 1px solid color-mix(in srgb, currentColor 30%, transparent); border-radius: 4px;
	background: var(--wp--preset--color--base, #fff);
}
.fldiv-albums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.6rem; }
.fldiv-album { position: relative; display: block; overflow: hidden; text-decoration: none; color: #fff; }
.fldiv-album[hidden] { display: none; }
.fldiv-album img, .fldiv-album-empty {
	display: block; width: 100%; height: auto; aspect-ratio: 10 / 7; object-fit: cover;
	background: color-mix(in srgb, currentColor 8%, #777); transition: transform 0.25s ease;
}
.fldiv-album:hover img { transform: scale(1.04); }
.fldiv-album-name {
	position: absolute; left: 0; right: 0; bottom: 0; padding: 0.55em 0.8em;
	font-size: 1.2rem; line-height: 1.3; color: #fff; background: rgb(0 0 0 / 0.5);
}
.fldiv-album:focus-visible { outline: 3px solid currentColor; outline-offset: 2px; }
.fldiv-zip { align-self: center; font-size: 0.95em; }
.fldiv-zip a { margin-left: 0.35em; white-space: nowrap; }

.fldiv-photos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.6rem; margin-bottom: 2em; }
.fldiv-photo { display: block; overflow: hidden; }
.fldiv-photo img {
	display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover;
	background: color-mix(in srgb, currentColor 8%, transparent); transition: transform 0.25s ease;
}
.fldiv-photo:hover img { transform: scale(1.05); }
@media (max-width: 900px) {
	.fldiv-albums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fldiv-photos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.fldiv-albums { grid-template-columns: minmax(0, 1fr); }
	.fldiv-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.35rem; }
}

.fldiv-upload { max-width: 40rem; margin-bottom: 2em; }
.fldiv-upload[hidden], .fldiv-upload-status[hidden], .fldiv-upload-actions[hidden] { display: none; }
.fldiv-drop {
	display: block; padding: 2em 1em; text-align: center; cursor: pointer; border-radius: 6px;
	border: 2px dashed color-mix(in srgb, currentColor 30%, transparent);
}
.fldiv-drop.is-over, .fldiv-drop:hover { border-color: currentColor; }
.fldiv-drop:focus-within { outline: 2px solid currentColor; outline-offset: 2px; }
.fldiv-upload-input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.fldiv-upload-bar { display: block; width: 100%; height: 0.75em; margin-top: 1em; }
.fldiv-upload-failed { margin: 0.5em 0; padding-left: 1.1em; font-size: 0.95em; color: #8b1e1e; }
.fldiv-upload-failed:empty { display: none; }
.fldiv-upload-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1em; }
.fldiv-upload-retry[hidden] { display: none; }

.fldiv-album-edit { margin: 2em 0; max-width: 36rem; }
.fldiv-album-edit summary { cursor: pointer; }
.fldiv-album-edit form { margin-top: 0.75rem; }

.fldiv-gallery:focus { outline: 0; }

/* The photo viewer: black, photo in the middle, thumbnails along the bottom. */
html.fldiv-viewer-open { overflow: hidden; }
.fldiv-viewer {
	position: fixed; inset: 0; z-index: 100000; display: flex; flex-direction: column;
	background: #000; color: #eee; outline: 0;
}
.fldiv-viewer[hidden] { display: none; }
.fldiv-viewer button { color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
.fldiv-viewer-stage { position: relative; flex: 1; min-height: 0; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.fldiv-viewer-frame { position: relative; display: block; background: #222 center / 100% 100% no-repeat; }
.fldiv-viewer-frame img { display: block; width: 100%; height: 100%; opacity: 0; transition: opacity 0.12s linear; }
.fldiv-viewer-frame img.is-loaded { opacity: 1; }
.fldiv-viewer-caption {
	position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 0.5em 1em; text-align: center;
	font-size: 0.95rem; color: #fff; background: rgb(60 60 60 / 0.75);
}
.fldiv-viewer-caption[hidden] { display: none; }
.fldiv-viewer-bar {
	position: absolute; top: 0; right: 0; z-index: 2; display: flex; align-items: center; gap: 0.15rem; padding: 0.25rem 0.5rem;
	font-size: 0.875rem; background: rgb(0 0 0 / 0.55); border-bottom-left-radius: 4px;
}
.fldiv-viewer-count { margin-right: 0.5rem; white-space: nowrap; }
.fldiv-viewer-bar button, .fldiv-viewer-bar a {
	display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; color: #ddd; border-radius: 4px;
}
.fldiv-viewer-bar button:hover, .fldiv-viewer-bar a:hover { color: #fff; background: rgb(255 255 255 / 0.15); }
.fldiv-viewer-bar svg { width: 1.2rem; height: 1.2rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.fldiv-viewer-bar [hidden] { display: none; }
.fldiv-viewer-nav {
	position: absolute; top: 50%; z-index: 2; width: 3.25rem; height: 6rem; margin-top: -3rem;
	display: flex; align-items: center; justify-content: center; color: #ccc; opacity: 0.85;
}
.fldiv-viewer-nav:hover { color: #fff; opacity: 1; }
.fldiv-viewer-nav svg { width: 2.25rem; height: 2.25rem; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.fldiv-viewer-prev { left: 0; }
.fldiv-viewer-next { right: 0; }
.fldiv-viewer-strip {
	flex: none; display: flex; gap: 0.5rem; padding: 0.5rem; overflow-x: auto; scrollbar-width: none; background: #000;
}
.fldiv-viewer-strip::-webkit-scrollbar { display: none; }
.fldiv-viewer-strip button { flex: none; width: 7.25rem; height: 5.4rem; opacity: 0.6; }
.fldiv-viewer-strip button:hover, .fldiv-viewer-strip button:focus-visible { opacity: 1; }
.fldiv-viewer-strip button.is-current { opacity: 1; outline: 2px solid #fff; outline-offset: -2px; }
.fldiv-viewer-strip img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 600px), (max-height: 500px) {
	.fldiv-viewer-strip { display: none; }
	.fldiv-viewer-nav { width: 2.5rem; }
}
@media (prefers-reduced-motion: reduce) {
	.fldiv-album img, .fldiv-photo img, .fldiv-viewer-frame img { transition: none; }
}

/* ---------- Manage Photos (dashboard) ---------- */

.fldiv-manage .fldiv-upload { max-width: none; margin: 1em 0; }
.fldiv-manage .fldiv-drop { padding: 1.25em 1em; background: #fff; }
.fldiv-manage-links { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; }
.fldiv-manage-hidden { color: #8b1e1e; }
.fldiv-manage-picker li { margin-bottom: 0.4em; }
.fldiv-manage-bar {
	position: sticky; top: 32px; z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem;
	padding: 0.6rem 0.75rem; background: #fff; border: 1px solid #c3c4c7; border-bottom: 0;
}
.fldiv-manage-count { min-width: 6.5em; font-weight: 600; }
.fldiv-manage-group { display: inline-flex; align-items: center; gap: 0.25rem; }
.fldiv-manage-find { width: 13rem; }
#fldiv-manage-caption { width: 12rem; }
#fldiv-manage-target { max-width: 14rem; }
.fldiv-manage-table tr[hidden] { display: none; }
.fldiv-manage-table td { vertical-align: middle; }
.fldiv-manage-table .is-dragging { opacity: 0.4; }
.fldiv-m-drag { width: 1.5rem; padding-right: 0 !important; color: #787c82; cursor: grab; font-size: 1.1rem; user-select: none; }
.fldiv-m-check { width: 1.75rem; }
.fldiv-m-cover { width: 3rem; text-align: center; }
.fldiv-m-thumb { width: 7rem; }
.fldiv-m-thumb img { display: block; width: 6.5rem; height: 4.875rem; object-fit: cover; background: #dcdcde; }
.fldiv-m-name { word-break: break-all; }
.fldiv-m-caption { width: 100%; }
.fldiv-m-turn { width: 4.5rem; white-space: nowrap; }
.fldiv-m-turn button { padding: 0.15em 0.25em; font-size: 1.3rem; line-height: 1; text-decoration: none; }
.fldiv-m-star { padding: 0.2em; font-size: 1.3rem; line-height: 1; color: #c3c4c7; cursor: pointer; background: none; border: 0; }
.fldiv-m-star:hover { color: #996800; }
.fldiv-m-star.is-cover { color: #dba617; }
@media (max-width: 782px) { .fldiv-manage-bar { position: static; } }

/* Contact form */
.fldiv-contact label { display: block; margin-bottom: 0.25em; font-weight: 600; }
.fldiv-contact input[type="text"], .fldiv-contact input[type="email"], .fldiv-contact input[type="tel"], .fldiv-contact select, .fldiv-contact textarea { width: 100%; box-sizing: border-box; padding: 0.55em 0.65em; font: inherit; color: inherit; background: #fff; border: 1px solid #8a7d76; border-radius: 4px; }
/* The "Who would you like to reach?" list as tall as the boxes under it. */
.fldiv-contact select { min-height: calc(1.6em + 1.1em + 2px); }
.fldiv-contact-trap { position: absolute; left: -9999px; }
.fldiv-contact-note { margin-top: 0.75em; color: var(--mute, #6e625c); font-size: 16px; font-style: italic; line-height: 1.35; }
.fldiv-contact-errors, .fldiv-contact-done { padding: 0.8em 1em; border-left: 4px solid var(--fldiv-accent); background: var(--linen, #f4ece4); }
.fldiv-contact-errors ul { margin: 0; padding-left: 1.2em; }

/* Facebook invitation request, in the Stay Connected box */
.fldiv-fb-request { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid #e2d3c8; }
.fldiv-fb-request p { margin: 0 0 4px; }
.fldiv-fb-request label { display: block; font-size: 17px; color: var(--mute, #6e625c); margin-bottom: 3px; }
.fldiv-fb-request input[type="text"] { display: block; width: 100%; box-sizing: border-box; padding: 0.35em 0.5em; font: inherit; font-size: 17px; border: 1px solid #d2bfb3; border-radius: 4px; background: #fff; }
.fldiv-fb-request .fldiv-button { margin-top: 8px; padding: 0.35em 1em; }
.fldiv-fb-sent { margin-top: 12px; padding: 8px 10px; background: #fff; border-left: 3px solid var(--leaf, #7b1f24); }
.fldiv-fb-error { margin-top: 12px; padding: 8px 10px; background: #fff; border-left: 3px solid #a23a2a; color: #7a2a1e; }

/* ---------- Calendar (list first, month grid on request; phones always get the list) ---------- */
/* Words for screen readers only (link details, counts). Shown again if one ever gets keyboard focus. */
.screen-reader-text:not(:focus) { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.fldiv-cal-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; margin-bottom: 1em; }
.fldiv-cal-add { flex-basis: auto; }
.fldiv-cal-add[open] { flex-basis: 100%; }
.fldiv-cal-add summary { list-style: none; display: inline-block; }
.fldiv-cal-add summary::-webkit-details-marker { display: none; }
.fldiv-cal-add form { margin-top: 0.75rem; }
.fldiv-cal-form { max-width: 40rem; background: #fff; }
.fldiv-cal-form p { margin: 0 0 0.9em; }
.fldiv-cal-form input[type="date"], .fldiv-cal-form input[type="time"], .fldiv-cal-form textarea, .fldiv-cal-form input[type="file"] {
	width: 100%; box-sizing: border-box; padding: 0.5em 0.65em; font: inherit; color: inherit; background: #fff; border: 1px solid color-mix(in srgb, currentColor 30%, transparent); border-radius: 4px;
}
.fldiv-cal-form input[type="file"] { padding: 0.35em; }
.fldiv-cal-form .fldiv-check { font-weight: normal; }
.fldiv-cal-row { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 0 1rem; }
@media (max-width: 600px) { .fldiv-cal-row { grid-template-columns: 1fr 1fr; } .fldiv-cal-row p:first-child { grid-column: 1 / -1; } }
.fldiv-cal-switch { display: inline-flex; border: 2px solid var(--leaf2, #9e2a2b); border-radius: 5px; overflow: hidden; }
.fldiv-cal-switch a { padding: 0.3em 1em; color: var(--leaf2, #9e2a2b); text-decoration: none; font-weight: 600; }
.fldiv-cal-switch a.is-on { background: var(--leaf2, #9e2a2b); color: #fff; }
.fldiv-cal-switch a:not(.is-on):hover { background: var(--linen, #f4ece4); }
.fldiv-cal-pastlink a { color: var(--leaf2, #9e2a2b); text-underline-offset: 3px; }
@media (max-width: 700px) { .fldiv-cal-switch { display: none; } }

.site-main .wp-block-post-content .fldiv-cal h2.fldiv-cal-month,
.site-main .wp-block-post-content .fldiv-cal h2.fldiv-cal-heading { margin: 1.1em 0 0.2em; padding-bottom: 6px; border-bottom: 2px solid var(--gold, #e0a526); font-size: clamp(25px, 2.6vw, 30px); }
.fldiv-cal-list { list-style: none; margin: 0; padding: 0; }
.fldiv-cal-item { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line, #e4d6cb); }
.fldiv-cal-day { display: block; box-sizing: border-box; width: 64px; padding: 3px 0 5px; text-align: center; line-height: 1.05; border: 1px solid var(--line, #e4d6cb); border-top: 4px solid var(--gold, #e0a526); border-radius: 4px; background: #fff; color: var(--leaf, #7b1f24); }
.fldiv-cal-day small { display: block; font-size: 14px; color: var(--mute, #6e625c); text-transform: uppercase; letter-spacing: 0.06em; }
.fldiv-cal-day strong { font: 400 28px/1.1 "Libre Caslon Text", Georgia, serif; }
.site-main .wp-block-post-content .fldiv-cal-body h3 { margin: 0; font: 700 21px/1.25 "Alegreya Sans", sans-serif; }
.fldiv-cal-body h3 a { color: inherit; text-decoration: none; }
.fldiv-cal-body h3 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.fldiv-cal-body p { margin: 2px 0 0; }
.fldiv-cal-meta { color: var(--mute, #6e625c); font-size: 17px; }
.fldiv-cal-extra { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; font-size: 16px; }
.fldiv-cal-host { display: inline-block; padding: 0 8px; border-radius: 4px; background: var(--linen, #f4ece4); color: var(--leaf2, #9e2a2b); font-weight: 700; }
.fldiv-cal-host.is-observance { background: var(--pale, #ffe7ae); color: #5c4300; }
.fldiv-cal-chip.is-observance { border-left-color: var(--gold, #e0a526); background: #fff6dd; }
.fldiv-cal-extra a { color: var(--leaf2, #9e2a2b); text-underline-offset: 3px; }
.fldiv-cal-empty { margin: 1.5em 0; }

.fldiv-cal-monthbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0.5em 0 10px; }
.site-main .wp-block-post-content .fldiv-cal-monthbar h2 { margin: 0; min-width: 9em; text-align: center; font-size: clamp(25px, 2.6vw, 30px); }
.fldiv-cal-arrow { display: inline-grid; place-items: center; width: 2em; height: 1.7em; border: 1px solid #d0bdb2; border-radius: 4px; background: #fff; color: var(--leaf, #7b1f24); text-decoration: none; font-size: 22px; line-height: 1; }
.fldiv-cal-arrow:hover { background: var(--linen, #f4ece4); }
.fldiv-cal-today { color: var(--leaf2, #9e2a2b); text-underline-offset: 3px; }
.fldiv-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-left: 1px solid var(--line, #e4d6cb); border-top: 1px solid var(--line, #e4d6cb); background: #fff; }
.fldiv-cal-wd { padding: 4px; background: var(--leaf2, #9e2a2b); color: #fff; text-align: center; font-weight: 700; font-size: 16px; border-right: 1px solid var(--line, #e4d6cb); }
.fldiv-cal-cell { min-height: 104px; padding: 4px 5px 6px; border-right: 1px solid var(--line, #e4d6cb); border-bottom: 1px solid var(--line, #e4d6cb); font-size: 15px; line-height: 1.2; }
.fldiv-cal-cell.is-off { background: #f7f2ec; }
.fldiv-cal-cell.is-today { box-shadow: inset 0 0 0 2px var(--gold, #e0a526); }
.fldiv-cal-n { display: block; color: var(--mute, #6e625c); font-weight: 700; }
.fldiv-cal-chip { display: block; margin-top: 3px; padding: 2px 5px; border-left: 3px solid var(--leaf2, #9e2a2b); border-radius: 3px; background: var(--linen, #f4ece4); color: var(--leaf, #7b1f24); text-decoration: none; overflow-wrap: anywhere; }
.fldiv-cal-chip:hover { background: var(--pale, #ffe7ae); }
/* Federal holidays (holidays.php): plain gray words, not links, so they don't look like events. */
.fldiv-cal-holiday { display: block; margin-top: 3px; color: var(--mute, #6e625c); font-size: 0.85em; font-style: italic; line-height: 1.2; }
.fldiv-cal-holidays { margin: 12px 0 0; color: var(--mute, #6e625c); font-size: 0.95em; font-style: italic; }
.fldiv-cal-chip-time { font-weight: 700; }
.fldiv-cal-monthlist { display: none; }
@media (max-width: 700px) {
	.site-main .wp-block-post-content .fldiv-cal-monthbar h2 { order: 0; min-width: 0; flex: 1; font-size: 24px; }
	.fldiv-cal-monthbar .fldiv-cal-arrow:last-of-type { order: 1; }
	.fldiv-cal-today { order: 2; flex-basis: 100%; }
	.fldiv-cal-grid { display: none; }
	.fldiv-cal-monthlist { display: block; }
}

.fldiv-cal-event { max-width: 46rem; }
.fldiv-cal-event-head { display: flex; gap: 18px; align-items: flex-start; margin: 0.5em 0 1em; }
.site-main .wp-block-post-content .fldiv-cal-event-head h2 { margin: 0; }
.fldiv-cal-when { margin: 4px 0 0; font-size: 19px; font-weight: 600; }
.fldiv-cal-facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 18px; margin: 0 0 1em; }
.fldiv-cal-facts dt { font-weight: 700; }
.fldiv-cal-facts dd { margin: 0; }
.fldiv-cal-about p { margin: 0 0 0.8em; }
.fldiv-cal-flyerbox a { display: inline-flex; align-items: center; gap: 14px; color: var(--leaf2, #9e2a2b); text-underline-offset: 3px; }
.fldiv-cal-flyerbox img { width: 140px; height: auto; border: 1px solid var(--line, #e4d6cb); border-radius: 3px; background: #fff; }
.fldiv-cal-by { margin-top: 1.25em; }
.fldiv-cal-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin-top: 1em; }
.fldiv-cal-actions form { margin: 0; }

/* "Coming Up" on Announcements */
.fldiv-coming + .fldiv-board-note, .fldiv-board-note + .fldiv-coming { margin-top: 26px; }
.fldiv-president + .fldiv-coming { margin-top: 0; }
.fldiv-coming ul { list-style: none; margin: 0 0 6px; padding: 0; }
.fldiv-coming li a { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 12px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line, #e4d6cb); color: inherit; text-decoration: none; line-height: 1.25; }
.fldiv-coming li:last-child a { border-bottom: 0; }
.fldiv-coming li a:hover .fldiv-coming-title { text-decoration: underline; text-underline-offset: 3px; }
.fldiv-coming .fldiv-cal-day { width: 52px; }
.fldiv-coming .fldiv-cal-day strong { font-size: 22px; }
.fldiv-coming-title { display: block; font-weight: 700; }
.fldiv-coming-place { display: block; color: var(--mute, #6e625c); font-size: 17px; }
.fldiv-coming p a { color: var(--leaf2, #9e2a2b); text-underline-offset: 3px; }

/* ---------- Online forms: Deceased Member Form ---------- */

.fldiv-kit-table thead th.fldiv-online-head, .fldiv-online-cell { width: 8.5em; }
.fldiv-file.fldiv-file-online { background: var(--leaf2, #9e2a2b); color: #fff; }
.fldiv-file.fldiv-file-online:hover { background: var(--leaf, #7b1f24); border-color: var(--leaf, #7b1f24); }
.fldiv-oform-intro { max-width: 46em; }
.fldiv-oform-points { padding-left: 1.3em; }
.fldiv-oform-points li { margin: 0.25em 0; }
.fldiv-oform { max-width: 46em; }
.fldiv-oform fieldset { margin: 0 0 18px; padding: 10px 20px 14px; border: 1px solid var(--line, #e4d6cb); border-radius: 6px; background: #fff; }
.fldiv-oform legend { padding: 0 6px; font: 400 23px/1.2 "Libre Caslon Text", Georgia, serif; color: var(--leaf, #7b1f24); }
/* No gap between grid lines: a browser add-on (password manager etc.) may slip an empty piece into the focused row, and a gap would make the row grow and the labels below jump. */
.fldiv-oform-row { display: grid; grid-template-columns: 15em minmax(0, 1fr); gap: 0 14px; align-items: start; margin: 8px 0; }
/* Each label lines up with the text in its box, even when a long label wraps to two lines. */
.fldiv-oform-row > label, .fldiv-oform-row > .fldiv-oform-label { padding-top: 0.42em; }
.fldiv-oform-row > select { min-height: 2.5em; }
.fldiv-oform label { font-weight: 600; }
.fldiv-oform-req { font-weight: 400; font-size: 16px; color: var(--mute, #6e625c); }
.fldiv-oform input[type="text"], .fldiv-oform input[type="email"], .fldiv-oform input[type="tel"], .fldiv-oform input[type="date"], .fldiv-oform input[type="number"], .fldiv-oform select, .fldiv-oform textarea { width: 100%; box-sizing: border-box; padding: 0.4em 0.6em; font: inherit; color: inherit; background: #fff; border: 1px solid #8a7d76; border-radius: 4px; }
.fldiv-oform input.fldiv-oform-short { max-width: 11em; }
/* Boxes that need fixing: the site's own check, one style on every online form. */
.fldiv-oform [aria-invalid="true"]:is(input, select, textarea), .fldiv-oform .fldiv-pagepin-when[aria-invalid="true"] select { border: 2px solid var(--fldiv-accent); background-color: #fdf6f5; }
.fldiv-oform-error { display: block; margin-top: 4px; color: var(--fldiv-accent); font-size: 16px; font-weight: 600; }
.fldiv-oform-row > .fldiv-oform-error { grid-column: -2 / -1; margin-top: 4px; } /* under the box, not the label */
.fldiv-oform-error::before { content: "\25B2\00a0"; font-size: 11px; vertical-align: 2px; }
.fldiv-oform-errors { margin-bottom: 1.2em; scroll-margin-top: 90px; }
.fldiv-oform-errors:focus { outline: none; }
.fldiv-oform-errors > p { margin: 0 0 0.3em; }
.fldiv-oform-errors a { color: inherit; }
.fldiv-oform-check { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin: 8px 0; }
.fldiv-oform-check > label:first-child { font-weight: 400; }
/* Every checkbox lines up the same way on every form: same size, same gap, level with the first line of its words. */
.fldiv-oform-check input[type="checkbox"] { flex: none; font-size: inherit; width: 1.1em; height: 1.1em; margin: 0.2em 0 0; accent-color: var(--leaf, #7b1f24); }
label.fldiv-oform-check:has(> input[type="checkbox"]) { align-items: flex-start; gap: 8px; }
.fldiv-oform-check > label:has(> input[type="checkbox"]) { display: inline-flex; align-items: flex-start; gap: 8px; }
/* Deceased Member Form status rows: the same height whether or not a Years of term box follows, so they are evenly spaced. */
div.fldiv-oform-check:has(> label > input[type="checkbox"]) { min-height: calc(2.4em + 2px); margin: 4px 0; }
div.fldiv-oform-check:has(.fldiv-oform-years) > label:first-child { min-width: 15em; } /* the Years of term boxes line up in a column */
.fldiv-oform-years { display: inline-flex; align-items: center; gap: 8px; font-weight: 400 !important; color: var(--mute, #6e625c); }
.fldiv-oform-years input[type="text"] { width: 9em; }
.fldiv-oform-sendto { color: var(--mute, #6e625c); font-size: 17px; }
.fldiv-report-back, .fldiv-report-received-link { margin-top: 1.5em; }
@media (max-width: 640px) {
	.fldiv-oform fieldset { padding: 8px 12px 12px; }
	.fldiv-oform-row { grid-template-columns: 1fr; }
	.fldiv-oform-row > label, .fldiv-oform-row > .fldiv-oform-label { padding-top: 0; margin-bottom: 4px; }
}

/* A sent form, laid out like the paper form; prints on one Letter page */
.fldiv-report-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; }
.fldiv-report-meta { max-width: 52em; font-size: 17px; color: var(--mute, #6e625c); }
.fldiv-paper { max-width: 52em; box-sizing: border-box; padding: 0.6in 0.65in; border: 1px solid var(--line, #e4d6cb); background: #fff; box-shadow: 0 2px 10px rgb(60 20 20 / 0.08); color: #111; font: 15px/1.35 "Times New Roman", Times, Georgia, serif; }
.fldiv-paper p { margin: 0; }
.fldiv-paper-org { text-align: center; font-size: 16px; }
.fldiv-paper-title { text-align: center; font-size: 19px; font-weight: 700; letter-spacing: 0.02em; }
.fldiv-paper-period { text-align: center; margin-bottom: 10px !important; }
.fldiv-paper-intro { margin-bottom: 14px !important; font-size: 14px; }
.fldiv-paper-line, .fldiv-paper-status { display: flex; align-items: flex-end; gap: 8px; margin-top: 7px; }
.fldiv-paper-label { flex: none; white-space: nowrap; }
.fldiv-paper-line .fldiv-paper-label:empty { width: 0; }
.fldiv-paper-fill { flex: 1; min-width: 0; min-height: 1.3em; padding: 0 4px; border-bottom: 1px solid #111; font-family: "Alegreya Sans", Arial, sans-serif; font-size: 15px; color: #1a2b5e; }
.fldiv-paper-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.fldiv-paper-head { margin-top: 14px !important; font-weight: 700; }
.fldiv-paper-status { margin-top: 5px; padding-left: 18px; }
.fldiv-paper-box { flex: none; display: inline-grid; place-items: center; width: 13px; height: 13px; margin-bottom: 3px; border: 1px solid #111; font: 700 11px/1 Arial, sans-serif; }
.fldiv-paper-nobox { border-color: transparent; }
.fldiv-paper-status .fldiv-paper-label { flex: 1; }
.fldiv-paper-short { flex: 0 0 13em; }
.fldiv-paper-gap { margin-top: 14px; }
.fldiv-paper-officer { margin-top: 18px !important; padding-top: 8px; border-top: 1px dashed #111; font-size: 14px; }
@media print {
	.fldiv-paper-officer { margin-top: 12px !important; padding-top: 5px; }
	.fldiv-paper-insignia .fldiv-paper-item { margin-top: 10px; }
	.fldiv-paper-insignia .fldiv-paper-mail { margin-top: 12px !important; }
}
.fldiv-paper-foot { display: flex; justify-content: space-between; gap: 20px; margin-top: 18px; font-size: 12px; color: #444; }
.fldiv-report-received td:nth-child(2) { white-space: normal; }
.fldiv-report-received thead th:nth-child(2) { width: auto; text-align: left !important; }
/* Deceased Member Form laid out like General's official form, revised March 2026 (0.48.0): Old English heading, Arial, answers lined up in columns, a blank space between groups. */
@font-face { font-family: "UnifrakturMaguntia"; src: url(fonts/unifrakturmaguntia.woff2) format("woff2"); font-display: swap; }
.fldiv-paper-deceased { font-family: Arial, Helvetica, sans-serif; font-size: 14px; }
.fldiv-paper-deceased .fldiv-paper-blackletter { font: 22px/1.2 "UnifrakturMaguntia", "Old English Text MT", "Old English", serif; }
.fldiv-paper-deceased .fldiv-paper-reg { font: 10px Arial, sans-serif; vertical-align: 0.9em; margin-left: 1px; }
.fldiv-paper-deceased .fldiv-paper-title { font-size: 19px; letter-spacing: 0; }
.fldiv-paper-deceased .fldiv-paper-period { font-weight: 700; font-size: 14px; margin-bottom: 12px !important; }
.fldiv-paper-deceased .fldiv-paper-intro { padding: 0 0.1in; font-size: 13.5px; }
.fldiv-paper-deceased .fldiv-paper-line .fldiv-paper-label { min-width: 0; }
.fldiv-paper-deceased .fldiv-paper-col-a .fldiv-paper-label { min-width: 1.5in; }
.fldiv-paper-deceased .fldiv-paper-col-b .fldiv-paper-label { min-width: 2.4in; }
.fldiv-paper-deceased .fldiv-paper-col-c .fldiv-paper-label { min-width: 0.9in; }
.fldiv-paper-deceased .fldiv-paper-col-d .fldiv-paper-label { min-width: 0.65in; }
.fldiv-paper-deceased .fldiv-paper-half .fldiv-paper-fill { flex: 0 0 3.3in; }
.fldiv-paper-space { height: 13px; }
.fldiv-paper-deceased .fldiv-paper-head { margin-top: 0 !important; font-weight: 400; }
.fldiv-paper-deceased .fldiv-paper-status { padding-left: 0.08in; margin-top: 7px; }
.fldiv-paper-deceased .fldiv-paper-status .fldiv-paper-label { flex: 0 0 3.35in; }
.fldiv-paper-deceased .fldiv-paper-short { flex: 0 0 2.1in; }
.fldiv-paper-sendto { display: flex; gap: 12px; margin-top: 14px; }
.fldiv-paper-sendto > span { flex: none; }
.fldiv-paper-useonly { flex: 1; min-width: 0; margin-left: 12px; }
.fldiv-paper-use-head { margin: 0 0 4px !important; font-weight: 700; }
.fldiv-paper-useonly .fldiv-paper-use:first-of-type { margin-top: 0; }
.fldiv-paper-deceased .fldiv-paper-foot { color: #222; }
@media (max-width: 640px) {
	.fldiv-paper { padding: 18px 16px; font-size: 14px; }
	.fldiv-paper-deceased .fldiv-paper-label, .fldiv-paper-deceased .fldiv-paper-status .fldiv-paper-label { min-width: 0 !important; flex: 1 1 auto; }
	.fldiv-paper-deceased .fldiv-paper-half .fldiv-paper-fill, .fldiv-paper-deceased .fldiv-paper-short { flex: 1 1 100%; }
	.fldiv-paper-deceased .fldiv-paper-more .fldiv-paper-label { display: none; }
	.fldiv-paper-sendto { flex-wrap: wrap; }
	.fldiv-paper-useonly { flex-basis: 100%; margin-left: 0; }
	.fldiv-paper-line, .fldiv-paper-status { flex-wrap: wrap; }
	.fldiv-paper-label { white-space: normal; }
	.fldiv-paper-fill { flex-basis: 100%; }
	.fldiv-paper-status .fldiv-paper-fill { flex-basis: 100%; margin-left: 21px; }
	.fldiv-paper-pair { grid-template-columns: 1fr; }
}
@page { size: letter; margin: 0.5in; }
@media print {
	.wp-block-template-part, .fldiv-report-actions, .fldiv-report-back, .fldiv-report-meta { display: none !important; }
	body:has(.fldiv-paper) .wp-block-post-title { display: none; }
	body:has(.fldiv-paper), body:has(.fldiv-paper) .wp-site-blocks, body:has(.fldiv-paper) main, body:has(.fldiv-paper) .wp-block-post-content { margin: 0 !important; padding: 0 !important; background: #fff !important; }
	.fldiv-paper { max-width: none; padding: 0; border: 0; box-shadow: none; font-size: 11.5pt; }
	.fldiv-paper-fill { color: #000; font-size: 11.5pt; }
	.fldiv-paper-line, .fldiv-paper-status { margin-top: 5px; }
	.fldiv-paper-gap, .fldiv-paper-head { margin-top: 10px !important; }
	.fldiv-paper-deceased { font-size: 10.5pt; line-height: 1.2; }
	.fldiv-paper-deceased .fldiv-paper-fill { font-size: 10.5pt; min-height: 1.2em; }
	.fldiv-paper-deceased .fldiv-paper-head { margin-top: 0 !important; }
	.fldiv-paper-deceased .fldiv-paper-line, .fldiv-paper-deceased .fldiv-paper-status { margin-top: 3px; }
	.fldiv-paper-deceased .fldiv-paper-box { width: 11px; height: 11px; margin-bottom: 2px; }
	.fldiv-paper-deceased .fldiv-paper-intro { margin-bottom: 8px !important; }
	.fldiv-paper-deceased .fldiv-paper-period { margin-bottom: 8px !important; }
	.fldiv-paper-space { height: 11px; }
	/* The footer sits near the bottom of the printed page, as on the paper form. 9.25in, not the full 10in, leaves room for Safari's own margins and header/footer lines so it stays on one page. */
	.fldiv-paper { position: relative; box-sizing: border-box; min-height: 9.25in; padding-bottom: 0.35in; }
	.fldiv-paper-foot { position: absolute; left: 0; right: 0; bottom: 0; margin-top: 0; }
	.fldiv-report-view ~ *, .fldiv-report-back { display: none !important; }
	body:has(.fldiv-paper) .site-main > *, .fldiv-report-view, .fldiv-paper { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
}

/* My Forms, corrections */
.fldiv-myforms-intro { max-width: 46em; }
.fldiv-myforms-year { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; }
.fldiv-myforms-year label { font-weight: 600; }
.fldiv-myforms-year select { padding: 0.3em 0.5em; font: inherit; border: 1px solid #8a7d76; border-radius: 4px; background: #fff; }
.fldiv-myforms-section { margin-top: 1.6em; }
.site-main .wp-block-post-content .fldiv-myforms-section h2 { margin: 0 0 8px; }
/* Forms Received: the officer's user guides, one line of links under the title. */
.fldiv-guide-links { margin: -0.4em 0 1.2em; font-size: 0.95em; }
.fldiv-guide-links .fldiv-icon-book { width: 1.25em; height: 1.25em; margin-right: 6px; vertical-align: -0.28em; fill: var(--leaf, #7b1f24); }
.fldiv-guide-links .fldiv-sep { margin: 0 6px; color: var(--mute, #6e625c); }
.fldiv-guide-date { color: var(--mute, #6e625c); font-size: 0.92em; white-space: nowrap; }
@media print { .fldiv-guide-links { display: none; } }
/* Forms Received: tabs for each kind of form, and jump links to each officer's section. */
.fldiv-received-tabs { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 1.2em; border-bottom: 2px solid var(--leaf, #7b1f24); }
.fldiv-received-tabs a { padding: 6px 14px; border: 1px solid var(--line, #e4d6cb); border-bottom: 0; border-radius: 5px 5px 0 0; background: var(--linen, #f4ece4); color: var(--leaf, #7b1f24); text-decoration: none; }
.fldiv-received-tabs a.is-current { background: var(--leaf, #7b1f24); border-color: var(--leaf, #7b1f24); color: #fff; }
.fldiv-received-jump { margin: 0.6em 0 0; }
.fldiv-received .fldiv-myforms-section { scroll-margin-top: 80px; }
.fldiv-myforms-table thead th:nth-child(2), .fldiv-myforms-table thead th:nth-child(3):not(:last-child) { width: auto; text-align: left !important; }
.fldiv-corrected { margin-left: 4px; }

/* Page Pin application: approval step */
.fldiv-status { margin-left: 4px; }
.fldiv-status-pending { background: var(--pale, #ffe7ae); color: var(--ink, #2b2422); }
.fldiv-status-approved { background: #d8ead8; color: #1e4620; }
.fldiv-status-returned { background: #f4d6d6; color: #6b1a1a; }
.fldiv-status-paid { background: #3d7a40; color: #ffffff; }
.fldiv-status-tosend { background: #fff; color: var(--leaf, #7b1f24); box-shadow: inset 0 0 0 1.5px var(--leaf, #7b1f24); } /* Waiting to send: paid, still a to-do (0.47.8) */
.fldiv-pagepin-pay-box { max-width: 52em; margin: 0 0 1.5em; }
.fldiv-pagepin-pay-row .fldiv-oform-row { grid-template-columns: 1fr; }
/* Boxes side by side; a date (Month, Day, Year) takes the room it needs, and the row wraps on a narrow screen. */
.fldiv-pagepin-pay-row { display: flex; flex-wrap: wrap; gap: 0 14px; }
.fldiv-pagepin-pay-row > * { flex: 1 1 10em; min-width: 0; }
.fldiv-pagepin-pay-row > :has(.fldiv-date-picker) { flex: 0 1 auto; }
/* Expense Form: a check number is short, so its box need not fill the row. */
.fldiv-expense-check-row > :first-child { flex: 0 1 11em; }
.fldiv-pagepin-pay-edit { max-width: 52em; margin: 0 0 1.5em; }
.fldiv-pagepin-pay-edit summary { cursor: pointer; color: var(--leaf, #7b1f24); }
.fldiv-pagepin-status { max-width: 52em; margin: 0 0 1em; padding: 10px 14px; border-left: 4px solid var(--line, #e4d6cb); background: var(--linen, #f4ece4); }
.fldiv-pagepin-status p { margin: 0.3em 0; }
.fldiv-pagepin-status.is-pending { border-color: var(--gold, #c79a2b); }
.fldiv-pagepin-status.is-approved { border-color: #3d7a40; background: #f1f8f1; }
.fldiv-pagepin-status.is-returned { border-color: var(--leaf, #7b1f24); }
.fldiv-pagepin-decide { max-width: 52em; margin-bottom: 1.5em; }
.fldiv-pagepin-conv { padding: 6px 0 12px; border-top: 1px solid var(--line, #e4d6cb); }
.fldiv-pagepin-conv:first-of-type { border-top: 0; }
.fldiv-pagepin-conv[hidden] { display: none; }
.fldiv-pagepin-add { margin: 8px 0 0; }
.fldiv-pagepin-remove { margin: 8px 0 0; text-align: right; }
.fldiv-pagepin [hidden], .fldiv-insignia [hidden] { display: none !important; }
.fldiv-pagepin-fns .fldiv-oform-check, .fldiv-insignia .fldiv-insignia-item .fldiv-oform-check { flex-wrap: nowrap; align-items: flex-start; gap: 8px; }
.fldiv-pagepin-fns .fldiv-oform-check input, .fldiv-insignia .fldiv-insignia-item .fldiv-oform-check input { flex: none; margin-top: 0.2em; }
.fldiv-pagepin-conv h3 { margin: 0.4em 0; font-size: 1.05em; }
/* "Convention 1, 2…" are h2 for the outline under the page title, but keep the look they had as h3. */
.site-main .wp-block-post-content .fldiv-pagepin-conv .fldiv-pagepin-conv-title { margin: 1.3em 0 0.4em; font-family: "Libre Caslon Text", Georgia, serif; font-size: 22px; line-height: 1.25; }
.fldiv-pagepin-when { display: flex; flex-wrap: wrap; gap: 10px; }
.fldiv-oform .fldiv-pagepin-when select { width: auto; min-width: 9em; min-height: 2.5em; }
/* Date: Month and Day dropdowns, then the Year typed in. */
.fldiv-oform .fldiv-oform-date { gap: 8px; }
.fldiv-oform .fldiv-oform-date select { min-width: 0; }
.fldiv-oform .fldiv-oform-date input { width: 4.6em; min-height: 2.5em; }
.fldiv-oform .fldiv-oform-date[aria-invalid="true"] input { border: 2px solid var(--fldiv-accent); background-color: #fdf6f5; }
.fldiv-oform-label { font-weight: 600; }
/* Functions read down each column, in program order */
.fldiv-pagepin-fns { columns: 2 18em; column-gap: 18px; margin-top: 6px; }
.fldiv-pagepin-fns-label { display: block; column-span: all; margin-bottom: 2px; font-weight: 600; }
.fldiv-pagepin-fns .fldiv-oform-check { margin: 0 0 2px; font-weight: 400; break-inside: avoid; }
.fldiv-pagepin-count { margin: 10px 0 0; padding: 6px 10px; background: var(--linen, #f4ece4); font-weight: 600; }
.fldiv-pagepin-count.is-ok { background: #f1f8f1; color: #1e4620; }
.fldiv-waiting h2 { color: var(--leaf, #7b1f24); }
.fldiv-paper-center { text-align: center; }
.fldiv-paper-three { display: grid; grid-template-columns: 2fr 1fr 1.6fr; gap: 0 18px; }
.fldiv-paper-checks { grid-template-columns: 1fr 1fr 1fr; }
.fldiv-paper-conv { margin-top: 6px; }
.fldiv-paper-fns { display: flex; gap: 8px; margin-top: 4px; }
.fldiv-paper-fns ol { flex: 1; margin: 0; padding-left: 1.4em; columns: 2; column-gap: 24px; }
.fldiv-paper-fns li { break-inside: avoid; }
.fldiv-paper-fns .fldiv-paper-fill { display: block; }
.fldiv-paper-small { font-size: 12.5px; margin-top: 10px !important; }
.fldiv-paper-sign { display: grid; grid-template-columns: 2.2fr 1fr; gap: 0 18px; margin-top: 4px; }
.fldiv-paper-note { font-size: 12.5px; padding-left: 5.5em; }
@media (max-width: 640px) {
	.fldiv-paper-three, .fldiv-paper-sign { grid-template-columns: 1fr; }
	.fldiv-paper-fns { flex-wrap: wrap; }
	.fldiv-paper-fns ol { columns: 1; }
}
@media print {
	.fldiv-pagepin-status, .fldiv-pagepin-decide, .fldiv-pagepin-pay-box, .fldiv-pagepin-pay-edit, .fldiv-contact-done { display: none !important; }
	.fldiv-paper-pagepin { font-size: 10.5pt; }
	.fldiv-paper-pagepin .fldiv-paper-fill { font-size: 10.5pt; }
	.fldiv-paper-pagepin .fldiv-paper-line { margin-top: 3px; }
}
/* Insignia Order Form */
.fldiv-insignia-items { display: grid; gap: 0; max-width: 46em; }
.fldiv-insignia-item { display: grid; grid-template-columns: minmax(0, 1fr) auto 6.5em; align-items: center; gap: 6px 18px; padding: 10px 0; border-top: 1px solid var(--line, #e4d6cb); }
.fldiv-insignia-item:first-child { border-top: 0; }
.fldiv-insignia-name { font-weight: 600; }
.fldiv-insignia-each { display: block; font-weight: 400; color: var(--mute, #6e625c); font-size: 0.92em; }
.fldiv-insignia-qty { display: flex; align-items: center; gap: 8px; }
.fldiv-oform .fldiv-insignia-qty input { width: 5em; }
.fldiv-insignia-item .fldiv-oform-check { margin: 0; font-weight: 400; }
.fldiv-insignia-note { font-size: 0.95em; color: var(--mute, #6e625c); }
.fldiv-insignia-sum { text-align: right; font-weight: 600; }
.fldiv-insignia-pagepin { grid-template-columns: minmax(0, 1fr) 6.5em; }
.fldiv-insignia-pagepin > :not(.fldiv-insignia-sum) { grid-column: 1; }
.fldiv-insignia-pagepin .fldiv-insignia-sum { grid-column: 2; grid-row: 1; }
.fldiv-insignia-img { width: 96px; height: 96px; object-fit: contain; border-radius: 6px; background: #fff; border: 1px solid var(--line, #e4d6cb); }
.fldiv-insignia-item.has-image { grid-template-columns: 96px minmax(0, 1fr) auto 6.5em; }
.fldiv-insignia-pagepin.has-image { grid-template-columns: 96px minmax(0, 1fr) 6.5em; }
.fldiv-insignia-pagepin.has-image > :not(.fldiv-insignia-sum):not(.fldiv-insignia-img) { grid-column: 2; }
.fldiv-insignia-pagepin.has-image .fldiv-insignia-img { grid-column: 1; grid-row: 1 / span 3; }
.fldiv-insignia-pagepin.has-image .fldiv-insignia-sum { grid-column: 3; }
.fldiv-insignia-replace { display: grid; gap: 4px; margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--line, #e4d6cb); }
.fldiv-insignia-earned { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.fldiv-oform .fldiv-insignia-earned select { width: auto; min-width: 7em; }
.fldiv-insignia-replace:not(:has(input[name="replacement"]:checked)) .fldiv-insignia-earned:not([aria-invalid]) { display: none; }
.fldiv-insignia-ship { margin: 10px 0 0; color: var(--mute, #6e625c); max-width: 46em; text-align: right; }
/* Totals sit at the far right, under the amounts */
.fldiv-insignia-total { max-width: 46em; box-sizing: border-box; text-align: right; }
.fldiv-reinstate-total { max-width: 52em; box-sizing: border-box; text-align: right; }
@media (max-width: 600px) {
	.fldiv-insignia-item:not(.fldiv-insignia-pagepin):not(.has-image) { grid-template-columns: minmax(0, 1fr) auto; }
	.fldiv-insignia-item:not(.fldiv-insignia-pagepin):not(.has-image) .fldiv-insignia-name { grid-column: 1 / -1; }
	.fldiv-insignia-item.has-image:not(.fldiv-insignia-pagepin) { grid-template-columns: 64px minmax(0, 1fr) auto; }
	.fldiv-insignia-item.has-image:not(.fldiv-insignia-pagepin) .fldiv-insignia-img { grid-row: 1 / span 2; }
	.fldiv-insignia-item.has-image:not(.fldiv-insignia-pagepin) .fldiv-insignia-name { grid-column: 2 / -1; }
	.fldiv-insignia-img { width: 64px; height: 64px; }
	.fldiv-insignia-pagepin.has-image { grid-template-columns: 64px minmax(0, 1fr) auto; }
}
.fldiv-paper-insignia .fldiv-paper-title { margin-bottom: 4px !important; }
.fldiv-paper-insignia-who { max-width: 34em; }
/* Reinstatement Form */
.fldiv-reinstate [hidden] { display: none !important; }
.fldiv-reinstate-help, .fldiv-reinstate-fees { max-width: 46em; color: var(--mute, #6e625c); font-size: 0.95em; }
.fldiv-reinstate-members { display: grid; gap: 6px; max-width: 52em; }
.fldiv-reinstate-head, .fldiv-reinstate-row { display: grid; grid-template-columns: 2em minmax(0, 1.4fr) minmax(0, 1fr) 5.5em; gap: 6px 12px; align-items: center; }
.fldiv-reinstate-head { font-weight: 600; font-size: 0.92em; }
.fldiv-reinstate-num { text-align: right; color: var(--mute, #6e625c); }
.fldiv-reinstate-fee { text-align: right; font-weight: 600; }
.fldiv-reinstate-members > .fldiv-oform-error { margin: -2px 0 4px 2.8em; }
@media (max-width: 640px) {
	.fldiv-reinstate-head { display: none; }
	.fldiv-reinstate-row { grid-template-columns: 1.6em minmax(0, 1fr) 4.5em; padding-bottom: 8px; border-bottom: 1px solid var(--line, #e4d6cb); }
	.fldiv-reinstate-row input[name="married[]"] { grid-column: 2; grid-row: 2; }
}
.fldiv-paper-notice { margin: 10px auto 0 !important; max-width: 30em; padding: 4px 10px; border: 2px double #111; background: #ececec; text-align: center; font-weight: 700; font-size: 14px; }
.fldiv-paper-fees { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; font-size: 14px; }
.fldiv-paper-members { width: 100%; margin-top: 14px; border-collapse: collapse; }
.fldiv-paper-members th { text-align: left; font-weight: 700; text-decoration: underline; padding: 0 6px 4px 0; font-size: 14px; }
.fldiv-paper-members th:last-child { text-align: right; }
.fldiv-paper-members td { padding: 6px 10px 0 0; vertical-align: bottom; }
.fldiv-paper-members td > * { vertical-align: bottom; }
.fldiv-paper-members td { white-space: nowrap; }
.fldiv-paper-members td:first-child { width: 48%; }
.fldiv-paper-members td:last-child { width: 8em; padding-right: 0; }
.fldiv-paper-members .fldiv-paper-fill { display: inline-block; box-sizing: border-box; width: calc(100% - 2.2em); }
.fldiv-paper-members td:nth-child(2) .fldiv-paper-fill { width: 100%; }
.fldiv-paper-members .fldiv-paper-num { display: inline-block; width: 2em; }
.fldiv-paper-members td:last-child .fldiv-paper-num { width: 1em; }
.fldiv-paper-members .fldiv-paper-sum { width: calc(100% - 1.2em); text-align: right; }
.fldiv-paper-reinstate .fldiv-paper-grand { padding-left: 0; }
@media (max-width: 640px) { .fldiv-paper-fees { grid-template-columns: 1fr; } .fldiv-paper-members td { white-space: normal; } }
.fldiv-paper-item { margin-top: 18px; padding-left: 4.5em; }
.fldiv-paper-item-row { display: flex; align-items: flex-end; gap: 8px; margin-top: 4px; }
.fldiv-paper-item-row .fldiv-paper-qty { flex: 0 0 3.5em; text-align: center; }
.fldiv-paper-item-row .fldiv-paper-sum { flex: 0 0 6em; text-align: right; }
.fldiv-paper-dollar { margin-left: auto; }
.fldiv-paper-shiprow { margin-top: 16px; padding-left: 4.5em; font-weight: 700; }
.fldiv-paper-grand { margin-top: 16px; padding-left: 4.5em; font-weight: 700; }
.fldiv-paper-grand .fldiv-paper-label:first-child { margin-left: auto; }
.fldiv-paper-grand .fldiv-paper-dollar { margin-left: 0; }
.fldiv-paper-mail { display: grid; grid-template-columns: max-content 1fr; gap: 10px 18px; margin-top: 22px !important; }
@media (max-width: 640px) { .fldiv-paper-item, .fldiv-paper-grand { padding-left: 0; } .fldiv-paper-mail { grid-template-columns: 1fr; gap: 2px; } }
.fldiv-report-note { max-width: 46em; padding: 0.7em 1em; border-left: 4px solid var(--leaf, #7b1f24); background: var(--linen, #f4ece4); }
@media print { .fldiv-report-note { display: none !important; } }
@media (max-width: 640px) {
	.fldiv-kit-table.fldiv-myforms-table tr.fldiv-kit-row { flex-wrap: wrap; align-items: baseline; padding-bottom: 8px; }
	.fldiv-kit-table.fldiv-myforms-table tr.fldiv-kit-row td:first-child { flex: 1 1 100%; padding-bottom: 2px; }
	.fldiv-kit-table.fldiv-myforms-table tr.fldiv-kit-row td:not(:first-child) { padding: 0 0 0 10px; font-size: 16px; color: var(--mute, #6e625c); text-align: left !important; }
	.fldiv-kit-table.fldiv-myforms-table tr.fldiv-kit-row td:not(:first-child):not(:last-child)::after { content: " ·"; }
}
.fldiv-sent-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 16px 0 0; }
.fldiv-sent-buttons a { margin: 0; text-decoration: none; }
.fldiv-sent-buttons .wp-element-button { color: #fff; }
.fldiv-map-skip { margin: 0; }

/* Safari ignores the height of its own dropdowns, so the lists on the forms get a plain box with a drawn arrow, in every browser. */
.fldiv-contact select, .fldiv-oform select {
	-webkit-appearance: none; appearance: none;
	padding-right: 2.2em;
	background-image: linear-gradient(45deg, transparent 50%, var(--ink, #2b2422) 50%), linear-gradient(135deg, var(--ink, #2b2422) 50%, transparent 50%);
	background-position: calc(100% - 1.05em) 55%, calc(100% - 0.7em) 55%;
	background-size: 0.35em 0.35em, 0.35em 0.35em;
	background-repeat: no-repeat;
}

/* Every one-line box on the online forms is the same height in every browser (date and number boxes run taller in Safari otherwise). */
.fldiv-oform input:is([type="text"], [type="email"], [type="tel"], [type="date"], [type="number"]), .fldiv-oform select { height: calc(1.6em + 0.8em + 2px); }
.fldiv-oform input[type="date"] { line-height: 1.6; }
/* Minutes Book Preorder Form */
.fldiv-minutes-ways { display: flex; flex-wrap: wrap; gap: 6px 24px; padding-top: 0.42em; }
.fldiv-minutes-ways .fldiv-oform-check, .fldiv-minutes-ways > label { margin: 0; font-weight: 400; display: inline-flex; align-items: center; gap: 8px; }
.fldiv-oform input[type="radio"] { font-size: inherit; width: 1.1em; height: 1.1em; margin: 0; accent-color: var(--leaf, #7b1f24); }
.fldiv-minutes:not(:has(input[name="how"][value="pickup"]:checked)) .fldiv-minutes-pickup { display: none; }
.fldiv-minutes-total { max-width: 46em; box-sizing: border-box; text-align: right; }
.fldiv-minutes-deliver .fldiv-minutes-ways { padding-top: 0; margin-bottom: 4px; }
.fldiv-paper-minutes .fldiv-paper-title { margin-bottom: 4px !important; }
.fldiv-paper-minutes .fldiv-paper-item-row { margin-top: 10px; }
.fldiv-paper-minutes .fldiv-paper-grand { padding-left: 0; }
.fldiv-minutes-qty { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; }
.fldiv-oform .fldiv-minutes-qty input { flex: 0 0 auto; width: 7em; }
.fldiv-minutes-each { color: var(--mute, #6e625c); white-space: nowrap; }
.fldiv-minutes-qty .fldiv-oform-error { order: 3; flex-basis: 100%; } /* under the box and its price */
.fldiv-minutes-how { font-weight: 600; color: var(--ink, #2b2422); }
.fldiv-minutes-summary { margin: 0 0 10px; }

/* A date box needs only room for the date, not the whole row (0.42.6). */
.fldiv-oform input[type="date"], .fldiv-cal-form input[type="date"], .fldiv-gallery input[type="date"] { max-width: 13em; }

/* The Chaplain's two Reported dates sit side by side, close together, above one Save Dates button (0.42.8). */
.fldiv-reported .fldiv-pagepin-pay-row { gap: 0 2em; }
.fldiv-reported .fldiv-pagepin-pay-row > * { flex: 0 1 auto; }

/* Check instructions as numbered steps (0.43.0): make it payable, memo line, mail it. */
.fldiv-check-head { margin: 1em 0 0.3em; }
.fldiv-check-head strong { color: var(--leaf, #7b1f24); font-size: 1.05em; }
.fldiv-check-steps { margin: 0 0 0.7em; padding-left: 1.7em; }
.fldiv-check-steps li { margin: 0.5em 0; padding-left: 0.2em; }
.fldiv-check-steps li::marker { color: var(--leaf, #7b1f24); font-weight: 700; }
.fldiv-check-address { display: block; max-width: 30em; margin: 0.5em 0 0.2em; padding: 0.6em 0.9em; background: #fff; border-left: 4px solid var(--leaf, #7b1f24); line-height: 1.5; }

/* Insignia Totals by Chapter, for the Division Vice President on Forms Received (0.47.0) */
.fldiv-insignia-totals { margin: 0 0 1.6em; padding: 14px 16px 4px; border: 1px solid var(--line, #e4d6cb); border-radius: 6px; background: #fff; }
.fldiv-insignia-totals-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.fldiv-insignia-totals-head h3 { margin: 0; }
.fldiv-insignia-totals-note { margin: 6px 0 10px; color: var(--mute, #6e625c); font-size: 0.95em; }
.fldiv-insignia-totals-scroll { overflow-x: auto; }
.fldiv-insignia-totals-scroll:focus-visible { outline: 3px solid var(--leaf, #7b1f24); outline-offset: 2px; }
.fldiv-insignia-totals-table { margin: 0; }
.fldiv-insignia-totals-table th, .fldiv-insignia-totals-table td { padding: 0.45em 0.6em; }
.fldiv-insignia-totals-table thead th { vertical-align: bottom; line-height: 1.25; }
.fldiv-insignia-totals-table tbody th { font-weight: 400; border: 0; border-bottom: 1px solid var(--line, #e4d6cb); }
.fldiv-insignia-totals-table tbody tr:nth-child(even) th { background: var(--linen, #f4ece4); }
.fldiv-insignia-totals-table tbody tr:nth-child(n):hover th { background: var(--hover, #ece1d7); }
.fldiv-insignia-totals-table .fldiv-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.fldiv-insignia-totals-table thead .fldiv-num { white-space: normal; }
.fldiv-insignia-totals-table tfoot th, .fldiv-insignia-totals-table tfoot td { border-top: 2px solid var(--leaf, #7b1f24); border-bottom: 0; font-weight: 700; text-align: left; }
.fldiv-insignia-totals-table tfoot .fldiv-num { text-align: right; }
.fldiv-insignia-totals-sheet { max-width: 52em; }
.fldiv-insignia-totals-sheet .fldiv-paper-org { margin: 0; }
.fldiv-insignia-totals-title { margin: 4px 0 0; text-align: center; font: 700 1.25em/1.3 "Libre Caslon Text", Georgia, serif; }
.fldiv-insignia-totals-dates { margin: 2px 0 14px; text-align: center; }
@media (max-width: 640px) {
	.fldiv-insignia-totals { padding: 12px 10px 2px; }
	.fldiv-insignia-totals-table { font-size: 0.85em; }
	.fldiv-insignia-totals-table tbody th, .fldiv-insignia-totals-table tfoot th { min-width: 9em; }
}
@media print {
	body:has(.fldiv-insignia-totals-print) .wp-block-post-title { display: none; }
	body:has(.fldiv-insignia-totals-print), body:has(.fldiv-insignia-totals-print) .wp-site-blocks, body:has(.fldiv-insignia-totals-print) main, body:has(.fldiv-insignia-totals-print) .wp-block-post-content { margin: 0 !important; padding: 0 !important; background: #fff !important; }
	body:has(.fldiv-insignia-totals-print) .site-main > *, .fldiv-insignia-totals-sheet { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
	.fldiv-insignia-totals-sheet { color: #000; font-size: 11pt; }
	.fldiv-insignia-totals-table thead th { background: #fff !important; color: #000 !important; border-bottom: 2px solid #000 !important; }
	.fldiv-insignia-totals-table tbody tr:nth-child(n) td, .fldiv-insignia-totals-table tbody tr:nth-child(n) th { background: transparent !important; border-bottom: 1px solid #999; }
	.fldiv-insignia-totals-table tfoot th, .fldiv-insignia-totals-table tfoot td { border-top: 2px solid #000; }
	.fldiv-insignia-totals-table tr { break-inside: avoid; }
	.fldiv-insignia-totals-note { color: #333; }
}
/* Expense Form (0.49.0) */
.fldiv-expense [hidden] { display: none !important; }
.fldiv-expense-lines { display: grid; gap: 6px; max-width: 52em; }
.fldiv-expense-head, .fldiv-expense-row { display: grid; grid-template-columns: 1.6em 9.5em minmax(0, 1fr) 6.5em 5.5em 5em; gap: 6px 8px; align-items: center; }
.fldiv-expense-line-total { text-align: right; font-weight: 600; white-space: nowrap; }
/* The labels sit over the middle of their boxes. The font size goes on the labels, not the row, so the em-sized columns match the boxes below (0.49.6). */
.fldiv-expense-head { font-weight: 600; align-items: end; }
.fldiv-expense-head span { font-size: 0.92em; text-align: center; }
.fldiv-expense-head span:nth-child(4), .fldiv-expense-head span:nth-child(5) { padding-left: 0.9em; } /* past the $ */
.fldiv-expense-head span:nth-child(6) { text-align: right; }
.fldiv-expense-row input { width: 100%; box-sizing: border-box; min-width: 0; }
.fldiv-expense-money { display: flex; align-items: center; gap: 4px; }
.fldiv-expense-money input { text-align: right; }
.fldiv-expense-lines > .fldiv-oform-error { margin: -2px 0 4px 2.8em; }
.fldiv-expense-total { max-width: 52em; }
.fldiv-expense-held { margin: 0 0 12px; padding-left: 1.2em; max-width: 46em; }
.fldiv-expense-held li { display: flex; flex-wrap: wrap; gap: 4px 16px; align-items: baseline; margin-bottom: 4px; }
.fldiv-expense-held .fldiv-oform-check { margin: 0; }
.fldiv-expense input[type="file"] { max-width: 100%; }
@media (max-width: 640px) {
	.fldiv-expense-head { display: none; }
	.fldiv-expense-row { grid-template-columns: 1.6em minmax(0, 1fr) minmax(0, 1fr) minmax(0, 0.8fr); padding-bottom: 8px; border-bottom: 1px solid var(--line, #e4d6cb); }
	.fldiv-expense-row .fldiv-expense-line-total { grid-column: 4; grid-row: 3; align-self: end; padding-bottom: 6px; }
	.fldiv-expense-row .fldiv-expense-line-total:not(:empty)::before { content: "= "; font-weight: 400; }
	.fldiv-expense-row .fldiv-expense-money { flex-wrap: wrap; column-gap: 4px; row-gap: 0; }
	.fldiv-expense-row .fldiv-expense-money input { flex: 1 1 0; width: auto; }
	.fldiv-expense-row input[name="line_date[]"] { grid-column: 2 / -1; grid-row: 1; }
	.fldiv-expense-row input[name="line_what[]"] { grid-column: 2 / -1; grid-row: 2; }
	.fldiv-expense-row .fldiv-expense-amt { grid-column: 2; grid-row: 3; }
	.fldiv-expense-row .fldiv-expense-tax { grid-column: 3; grid-row: 3; }
	.fldiv-expense-row .fldiv-expense-amt::before { content: "Subtotal"; flex-basis: 100%; font-size: 0.85em; color: var(--mute, #6e625c); }
	.fldiv-expense-row .fldiv-expense-tax::before { content: "Tax"; flex-basis: 100%; font-size: 0.85em; color: var(--mute, #6e625c); }
}
.fldiv-expense-receipts { max-width: 52em; margin: 0 0 1.2em; }
.fldiv-expense-receipts h2 { font-size: 1.15em; margin: 0 0 0.3em; }
.fldiv-expense-receipts ul { margin: 0 0 0.4em; }
.fldiv-paper-expenses { width: 100%; margin-top: 12px; border-collapse: collapse; font-size: 14px; }
.fldiv-paper-expenses th { text-align: left; font-weight: 700; background: #e6e6e6; padding: 3px 6px; }
.fldiv-paper-expenses th:nth-child(n+3) { text-align: right; width: 6.5em; }
.fldiv-paper-expenses th:first-child { width: 6.5em; }
.fldiv-paper-expenses td { border: 1px solid #111; padding: 3px 6px; height: 1.35em; }
.fldiv-paper-expenses td.fldiv-paper-money { text-align: right; white-space: nowrap; }
.fldiv-paper-expense .fldiv-paper-grand { padding-left: 0; margin-top: 6px; }
.fldiv-paper-expense .fldiv-paper-grand.fldiv-paper-tax { margin-top: 10px; font-weight: 400; }
.fldiv-paper-expense .fldiv-paper-receipts { margin-top: 10px; font-size: 14px; }
@media print { .fldiv-expense-receipts { display: none !important; } }
.fldiv-paper-expense .fldiv-paper-grand.fldiv-paper-tax2 { margin-top: 4px; }
.fldiv-paper-expenses th:nth-child(n+3) { width: 5.5em; white-space: nowrap; }
/* Expense Form: the "I will mail my receipts" box sits under the photo help. */
.fldiv-expense-mail { margin: 1em 0 0.2em; }
.fldiv-expense-mail .fldiv-oform-check { font-weight: 700; }
/* A sent-back note in a white box of its own, so it is easy to find (0.52.0). */
.fldiv-note-box { margin: 0.6em 0; padding: 12px 16px; background: #fff; border: 1px solid var(--line, #e4d6cb); border-radius: 4px; }
.fldiv-note-box .fldiv-note-label { margin: 0 0 0.3em; font-size: 0.85em; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--leaf, #7b1f24); }
.fldiv-note-box .fldiv-note-text { margin: 0; font-size: 1.2em; line-height: 1.45; }
.fldiv-note-box .fldiv-note-icon { vertical-align: -0.28em; margin-right: 6px; }
/* What the badge colors mean, under the forms on My Forms and Forms Received (0.53.0). */
.fldiv-badge-key { max-width: 52em; margin: 1.2em 0 0; font-size: 0.95em; }
.fldiv-badge-key summary { cursor: pointer; color: var(--leaf, #7b1f24); font-weight: 700; }
.fldiv-badge-key dl { margin: 0.6em 0 0; padding: 10px 14px; background: #fff; border: 1px solid var(--line, #e4d6cb); border-radius: 4px; }
.fldiv-badge-key dl > div { display: flex; align-items: baseline; gap: 12px; margin: 0.35em 0; }
.fldiv-badge-key dt { flex: 0 0 8.5em; margin: 0; }
.fldiv-badge-key dt .fldiv-status { margin-left: 0; }
.fldiv-badge-key dd { margin: 0; }
@media print { .fldiv-badge-key { display: none; } }
