Soft launch: Soldier biographies and research notes vary in completeness. Prefer class-roster, NARA, newspapers, and other cited sources for contested facts — treat Research notes as leads, not settled history. Anyone can correct a page; contact us with questions.

MediaWiki:Common.css: Difference between revisions

From Ritchie Boys Wiki
Jump to navigation Jump to search
Collapse empty paragraphs beside soldier infobox (remove top gap)
Styles for Internet Archive interview embeds
 
(64 intermediate revisions by 2 users not shown)
Line 79: Line 79:
}
}


/* Vector 2010 sidebar logo: source file is 1024px, so scale it into the 160px slot. */
/*
#p-logo {
* Slightly wider left sidebar (default Vector is 10em) so labels like
* "Congressional Gold Medal" fit on one line.
* IMPORTANT: scope to Vector only — these rules wreck Minerva mobile layout.
*/
.skin-vector #mw-panel,
.skin-vector-legacy #mw-panel {
width: 15em !important;
}
.skin-vector .mw-body,
.skin-vector #mw-head-base,
.skin-vector #left-navigation,
.skin-vector #mw-data-after-content,
.skin-vector .mw-footer,
.skin-vector-legacy .mw-body,
.skin-vector-legacy #mw-head-base,
.skin-vector-legacy #left-navigation,
.skin-vector-legacy #mw-data-after-content,
.skin-vector-legacy .mw-footer {
margin-left: 15em !important;
}
.skin-vector #p-personal ul,
.skin-vector-legacy #p-personal ul {
padding-left: 15em !important;
}
@media screen and (min-width: 982px) {
.skin-vector .mw-body,
.skin-vector #mw-head-base,
.skin-vector #left-navigation,
.skin-vector #mw-data-after-content,
.skin-vector .mw-footer,
.skin-vector-legacy .mw-body,
.skin-vector-legacy #mw-head-base,
.skin-vector-legacy #left-navigation,
.skin-vector-legacy #mw-data-after-content,
.skin-vector-legacy .mw-footer {
margin-left: 16em !important;
}
.skin-vector #p-personal ul,
.skin-vector-legacy #p-personal ul {
padding-left: 16em !important;
}
}
 
/* Vector 2010 sidebar logo: source file is 1024px; keep badge size, center in wider slot. */
.skin-vector #p-logo,
.skin-vector-legacy #p-logo {
height: 160px !important;
height: 160px !important;
width: 160px !important;
width: 15em !important;
margin: 0 auto 0.6em auto;
margin: 0 auto 0.6em auto;
}
}
#p-logo a,
.skin-vector #p-logo a,
#p-logo a.mw-wiki-logo,
.skin-vector #p-logo a.mw-wiki-logo,
.mw-wiki-logo {
.skin-vector .mw-wiki-logo,
.skin-vector-legacy #p-logo a,
.skin-vector-legacy #p-logo a.mw-wiki-logo,
.skin-vector-legacy .mw-wiki-logo {
height: 160px !important;
height: 160px !important;
width: 160px !important;
width: 160px !important;
margin-left: auto !important;
margin-right: auto !important;
background-size: contain !important;
background-size: contain !important;
background-position: center center !important;
background-position: center center !important;
Line 99: Line 149:
height: 120px !important;
height: 120px !important;
width: 120px !important;
width: 120px !important;
}
/* Minerva / MobileFrontend: undo any leftover desktop chrome and keep content full-width. */
.skin-minerva .mw-body,
.skin-minerva #content,
.skin-minerva .mw-content-container,
.skin-minerva .mf-page-content {
margin-left: 0 !important;
margin-right: 0 !important;
max-width: 100% !important;
}
.skin-minerva table.infobox,
.skin-minerva table.soldier-infobox,
.skin-minerva .infobox.soldier-infobox {
float: none !important;
width: 100% !important;
max-width: 100% !important;
margin: 0.5em 0 1em 0 !important;
}
.skin-minerva .home-feature-thumbs,
.skin-minerva .home-hero-photo,
.skin-minerva .home-start-here {
max-width: 100% !important;
}
.skin-minerva .home-feature-thumbs {
flex-wrap: wrap;
justify-content: center;
}
/* Soft-launch sitenotice: align with mobile content column */
.skin-minerva .sitenotice-softlaunch,
.skin-minerva #siteNotice,
.skin-minerva .mw-site-notice {
max-width: 100%;
margin-left: auto;
margin-right: auto;
text-align: left;
padding-left: 0.25em;
padding-right: 0.25em;
box-sizing: border-box;
}
.sitenotice-softlaunch {
font-size: 95%;
line-height: 1.45;
margin: 0.35em 0 0.75em 0;
}
/* Find-a-soldier: compact field on phones (never a tall flex-grown square) */
.skin-minerva .home-find {
max-width: 22em !important;
width: 100%;
margin-left: auto;
margin-right: auto;
box-sizing: border-box;
}
.skin-minerva .home-find-row {
display: flex !important;
flex-direction: row !important;
flex-wrap: nowrap !important;
gap: 0.4em;
align-items: center !important;
}
.skin-minerva .home-find-suggest-wrap {
flex: 1 1 auto;
min-width: 0;
max-width: none;
width: 100%;
}
.skin-minerva .home-find-input,
.skin-minerva .soldier-find-form input[type="search"],
.skin-minerva .soldier-find-form input[type="text"],
.skin-minerva .home-find input[type="search"],
.skin-minerva .home-find input[type="text"] {
flex: 1 1 auto !important;
width: auto !important;
min-width: 0 !important;
max-width: none !important;
height: 2.25em !important;
min-height: 2.25em !important;
max-height: 2.5em !important;
padding: 0.25em 0.5em !important;
line-height: 1.2 !important;
font-size: 16px !important; /* avoid iOS zoom-on-focus */
box-sizing: border-box !important;
}
.skin-minerva .home-find-button {
flex: 0 0 auto !important;
height: 2.25em !important;
min-height: 2.25em !important;
padding: 0 0.85em !important;
margin-top: 0 !important;
box-sizing: border-box !important;
}
/* Hide find-a-soldier noscript fallback when JS will build the real form (Mobile polish cachebust) */
.client-js .home-find-fallback {
display: none;
}
/* Soldier edit strip: keep tools, drop long help copy on phones */
.skin-minerva .soldier-facts-box {
margin: 0.25em 0 0.55em !important;
padding: 0.45em 0.65em !important;
background: transparent !important;
border: none !important;
border-bottom: 1px solid #eaecf0 !important;
max-width: 100% !important;
}
.skin-minerva .soldier-facts-intro,
.skin-minerva .soldier-summary-bar {
display: flex;
flex-wrap: wrap;
gap: 0.35em 0.5em;
align-items: center;
font-size: 90%;
line-height: 1.35;
}
.skin-minerva .soldier-facts-label,
.skin-minerva .soldier-facts-help,
.skin-minerva .soldier-summary-help {
display: none !important;
}
.skin-minerva .soldier-summary-bar {
margin: 0.4em 0 0 !important;
padding-top: 0.4em !important;
border-top: 1px solid #eaecf0 !important;
}
.skin-minerva .soldier-facts-toggle,
.skin-minerva .soldier-summary-toggle {
font-size: 90%;
padding: 0.3em 0.55em;
}
/* Wide tables: swipe sideways instead of blowing out the page */
.skin-minerva .mw-parser-output .wikitable,
.skin-minerva .mw-parser-output table.cargoTable,
.skin-minerva .mw-parser-output .rb-wide-table,
.skin-minerva .mw-parser-output .jquery-tablesorter {
display: block;
width: 100%;
max-width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
box-sizing: border-box;
}
.skin-minerva .mw-parser-output img,
.skin-minerva .mw-parser-output .mw-file-element {
max-width: 100%;
height: auto;
}
/* Shorter Drive / Form embeds on phones */
.skin-minerva .drive-folder-frame {
min-height: 220px !important;
height: 42vh !important;
max-height: 380px !important;
}
.skin-minerva .google-form-frame {
min-height: 260px !important;
height: 52vh !important;
max-height: 480px !important;
}
.skin-minerva .drive-folder-fallback,
.skin-minerva .google-form-fallback {
font-size: 95%;
margin: 0.5em 0.75em;
}
/* Separate site hubs in the hamburger from Home / Random */
.skin-minerva #p-ritchie {
border-top: 1px solid rgba(0, 0, 0, 0.08);
margin-top: 0.25em;
padding-top: 0.25em;
}
}


Line 153: Line 376:


/*
/*
  * Blank lines after {{Soldier}} / between hatnotes become <p><br></p> and sit
  * Blank lines after the Soldier template / between hatnotes become <p><br></p> and sit
  * beside the floated infobox as a tall empty column. Collapse them so the lead
  * beside the floated infobox as a tall empty column. Collapse them so the lead
  * starts at the top next to the infobox.
  * starts at the top next to the infobox.
Line 176: Line 399:
.soldier-research-notes {
.soldier-research-notes {
display: none;
display: none;
}
/* Wikipedia-style award ribbon rack in the main article column */
.soldier-awards-section {
clear: both;
margin: 1em 0 1.25em 0;
max-width: 100%;
}
.soldier-awards-heading {
font-family: inherit;
font-size: 1.5em;
font-weight: bold;
border-bottom: 1px solid #a2a9b1;
margin: 1em 0 0.5em 0;
padding-bottom: 0.15em;
line-height: 1.3;
}
.soldier-awards-list {
margin: 0.75em 0 0.25em 0;
max-width: none;
}
.soldier-awards-list ul,
.soldier-awards-section ul {
margin: 0.4em 0 0.4em 1.6em;
}
/* Keep extra award notes on one line (e.g. Chafee statue sentence) */
.soldier-awards-list li {
white-space: nowrap;
}
/* Ribbon rack: tiny gaps like Wikipedia (border-spacing 2px + 1px cell pad) */
.soldier-awards-section .soldier-ribbon-rack,
table.soldier-ribbon-rack {
margin: 0 auto;
border-collapse: separate;
border-spacing: 2px;
background: transparent;
border: none;
width: max-content;
max-width: 100%;
line-height: 0;
}
.soldier-awards-section > table.soldier-ribbon-rack:first-of-type {
margin-top: 0.75em;
}
/* Separate tables per row — mirror Wikipedia's ~4px row gap */
.soldier-awards-section > table.soldier-ribbon-rack + table.soldier-ribbon-rack {
margin-top: 2px;
}
table.soldier-ribbon-rack,
table.soldier-ribbon-rack > tbody > tr > td,
table.soldier-ribbon-rack > tr > td {
border: none !important;
background: transparent !important;
padding: 1px !important;
text-align: center;
vertical-align: middle;
line-height: 0;
}
table.soldier-ribbon-rack img,
table.soldier-ribbon-rack .mw-file-element {
display: block;
max-width: 106px;
height: auto;
vertical-align: top;
margin: 0 auto;
}
/* Ribbons + captions in one table: equal columns so each label centers under its ribbon */
table.soldier-ribbon-rack.soldier-awards-labeled {
table-layout: fixed;
line-height: normal;
margin-bottom: 0.35em;
}
table.soldier-ribbon-rack.soldier-awards-labeled > tbody > tr > td,
table.soldier-ribbon-rack.soldier-awards-labeled > tr > td {
width: 118px;
max-width: 118px;
vertical-align: top;
}
table.soldier-ribbon-rack.soldier-awards-labeled td.soldier-award-caption {
line-height: 1.35 !important;
font-size: 95%;
padding: 0.4em 0.45em !important;
text-align: center;
vertical-align: middle;
white-space: normal;
overflow-wrap: break-word;
word-break: normal;
border: 1px solid #a2a9b1 !important;
background: #f8f9fa !important;
}
/* Match en.wikipedia awards wikitable: auto column widths from content
  (long names get more space), centered, no artificial skinny max-width */
table.soldier-awards-grid {
margin: 1em auto;
border-collapse: collapse;
table-layout: auto;
width: auto;
max-width: 100%;
font-size: 95%;
line-height: 1.4;
text-align: center;
}
table.soldier-awards-grid > tbody > tr > td,
table.soldier-awards-grid td {
border: 1px solid #a2a9b1;
padding: 0.4em 0.65em;
text-align: center;
vertical-align: middle;
background: #f8f9fa;
overflow-wrap: break-word;
word-break: normal;
hyphens: manual;
}
}


Line 193: Line 542:
font-size: 1.05em;
font-size: 1.05em;
margin-bottom: 1em;
margin-bottom: 1em;
}
.page-lead {
max-width: none;
font-size: 1.05em;
margin: 0 0 1em 0;
line-height: 1.5;
}
}


Line 220: Line 576:
gap: 0.4em;
gap: 0.4em;
align-items: center;
align-items: center;
}
.home-find-suggest-wrap {
position: relative;
}
.home-find-suggest {
position: absolute;
left: 0;
right: 0;
top: 100%;
z-index: 50;
margin: 0.15em 0 0;
padding: 0.2em 0;
list-style: none;
background: #fff;
border: 1px solid #a2a9b1;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
max-height: 16em;
overflow-y: auto;
}
.home-find-suggest[hidden] {
display: none !important;
}
.home-find-suggest li {
margin: 0;
padding: 0.4em 0.65em;
cursor: pointer;
font-size: 95%;
line-height: 1.35;
}
.home-find-suggest li:hover,
.home-find-suggest li.home-find-suggest-active {
background: #eaf3ff;
}
}


Line 250: Line 643:
}
}


.home-actions {
.home-find-more {
margin: 0 0 1.25em 0;
margin: 0.75em 0 0;
padding-top: 0.65em;
border-top: 1px solid #c8ccd1;
font-size: 95%;
line-height: 1.6;
line-height: 1.6;
color: #54595d;
}
/*
* Directory lists from the categorytree parser function (Contents and any
* future page that embeds one): match MediaWiki category pages
* (.mw-category-columns) with a compact 3-column layout so long indexes
* are not a single tall stack.
*/
.CategoryTreeTag {
column-count: 3;
column-gap: 1.25em;
margin: 0.4em 0 1em 0;
}
.CategoryTreeTag > .CategoryTreeSection {
break-inside: avoid;
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
margin: 0.12em 0;
}
@media (max-width: 800px) {
.CategoryTreeTag {
column-count: 2;
}
}
@media (max-width: 480px) {
.CategoryTreeTag {
column-count: 1;
}
}
}


.home-hero-photo {
.home-hero-photo {
margin: 0 0 1.15em 0;
margin: 0 0 1.35em 0;
max-width: 100%;
max-width: 100%;
clear: both;
}
}


Line 277: Line 706:


.home-feature-thumb {
.home-feature-thumb {
flex: 0 1 9em;
flex: 0 0 150px;
max-width: 10em;
width: 150px;
text-align: center;
text-align: center;
}
.home-feature-thumb a {
display: block;
}
}


Line 285: Line 718:
.home-feature-thumb .mw-file-element {
.home-feature-thumb .mw-file-element {
display: block;
display: block;
width: 150px;
height: 220px;
margin: 0 auto 0.4em;
margin: 0 auto 0.4em;
max-width: 120px;
object-fit: cover;
height: auto;
object-position: center center;
}
}


Line 300: Line 735:
gap: 1em 1.25em;
gap: 1em 1.25em;
align-items: flex-start;
align-items: flex-start;
margin: 0.5em 0 0;
margin: 0.75em 0 1.25em;
}
}


Line 338: Line 773:
max-width: 100%;
max-width: 100%;
margin: 0 0 1em 0;
margin: 0 0 1em 0;
}
/* Keep input + Search on one row. Column + flex-basis:14em made the
  search field a ~14em-tall square on phones (Minerva / narrow Vector). */
.home-find-row {
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
}
.home-find-input {
flex: 1 1 auto;
width: auto;
min-width: 0;
max-width: none;
height: 2.25em;
min-height: 2.25em;
max-height: 2.5em;
box-sizing: border-box;
}
.home-find-button {
flex: 0 0 auto;
width: auto;
height: 2.25em;
min-height: 2.25em;
margin-top: 0;
box-sizing: border-box;
}
.soldier-facts-box,
.soldier-facts-panel,
.soldier-summary-panel {
max-width: 100%;
}
.drive-folder-frame {
min-height: 240px;
height: 45vh;
max-height: 400px;
}
.google-form-frame {
min-height: 280px;
height: 55vh;
max-height: 500px;
}
.mw-parser-output .wikitable,
.mw-parser-output table.cargoTable {
display: block;
width: 100%;
max-width: 100%;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
}
}
}
Line 349: Line 832:
}
}


/* Timeline disclosures open from the left, like the Technical record control. */
.soldier-timeline {
display: flow-root;
margin-bottom: 1em;
}
.soldier-timeline + h2 {
clear: both;
}
.soldier-timeline-body {
clear: both;
padding-top: 0.25em;
}
.soldier-timeline .mw-collapsible-toggle.mw-collapsible-toggle-default {
float: left;
margin-left: 0;
margin-right: 0.5em;
padding-left: 0;
}
/* Compact disclosure in the text column beside the floated infobox.
  clear:both here (and on .soldier-gallery) caused the huge Gallery gaps. */
.soldier-upload-box {
.soldier-upload-box {
margin: 0.75em 0 1.25em;
display: block;
padding: 0.75em 1em;
margin: 0.35em 0 0.85em;
padding: 0;
background: transparent;
border: none;
overflow: auto;
width: auto;
max-width: 100%;
box-sizing: border-box;
clear: none;
}
 
.soldier-upload-box > summary {
display: list-item;
cursor: pointer;
padding: 0.35em 0.6em;
background: #f8f9fa;
border: 1px solid #a2a9b1;
border-radius: 2px;
font-weight: 600;
line-height: 1.4;
width: fit-content;
max-width: 100%;
box-sizing: border-box;
}
 
.soldier-upload-box > summary:hover {
background: #eaecf0;
}
 
.soldier-upload-box[open] > summary {
margin-bottom: 0;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
 
.soldier-upload-body {
padding: 0.65em 0.75em 0.75em;
background: #f8f9fa;
background: #f8f9fa;
border: 1px solid #a2a9b1;
border: 1px solid #a2a9b1;
max-width: none;
border-top: none;
width: 100%;
box-sizing: border-box;
max-width: 100%;
}
 
.soldier-contrib-section {
margin: 0;
padding: 0;
max-width: 100%;
box-sizing: border-box;
box-sizing: border-box;
}
}


.soldier-upload-box > p {
.soldier-contrib-ocr {
margin-top: 0.75em;
padding-top: 0.75em;
border-top: 1px solid #c8ccd1;
}
 
.soldier-contrib-heading {
margin: 0 0 0.35em;
line-height: 1.4;
}
 
.soldier-contrib-help {
margin: 0 0 0.5em;
margin: 0 0 0.5em;
line-height: 1.6;
font-size: 95%;
color: #54595d;
line-height: 1.5;
}
 
.soldier-ocr-slot:empty {
display: none;
}
}


Line 375: Line 942:
}
}


.soldier-upload-form button {
.soldier-upload-form button,
.soldier-contrib-ocr > button {
margin-top: 0.5em;
margin-top: 0.5em;
margin-right: 0.5em;
}
}


Line 386: Line 955:
.soldier-upload-login {
.soldier-upload-login {
margin: 0.35em 0 0;
margin: 0.35em 0 0;
}
/* Camp-wide manuals (Training materials) */
.camp-manual-upload-slot {
margin: 0.75em 0 1.25em;
max-width: 36em;
}
.camp-manual-upload-box {
border-top: 1px solid #a2a9b1;
}
.camp-manual-upload-form input[type="text"] {
display: block;
width: 100%;
max-width: 28em;
margin: 0.25em 0 0.5em;
padding: 0.35em 0.5em;
box-sizing: border-box;
}
.camp-manual-progress {
margin: 0.65em 0 0.25em;
max-width: 28em;
}
.camp-manual-progress[hidden] {
display: none !important;
}
.camp-manual-progress-bar {
height: 0.65em;
background: #eaecf0;
border: 1px solid #a2a9b1;
border-radius: 2px;
overflow: hidden;
}
.camp-manual-progress-fill {
height: 100%;
width: 0%;
background: #3366cc;
transition: width 0.15s linear;
}
.camp-manual-progress.is-indeterminate .camp-manual-progress-fill {
width: 35% !important;
animation: camp-manual-progress-pulse 1.1s ease-in-out infinite;
}
@keyframes camp-manual-progress-pulse {
0% { transform: translateX(-40%); }
100% { transform: translateX(220%); }
}
.camp-manual-progress-label {
margin: 0.35em 0 0;
font-size: 90%;
color: #54595d;
}
.camp-manual-lib-actions {
display: inline-flex;
gap: 0.35em;
margin-left: 0.5em;
vertical-align: middle;
}
.camp-manual-lib-actions button {
font-size: 85%;
padding: 0.1em 0.45em;
line-height: 1.3;
cursor: pointer;
}
.camp-manual-lib-actions .camp-manual-lib-delete {
color: #ba0000;
}
/* Site-wide OCR inbox (Contribute documents) */
.ocr-review-box {
margin: 0.75em 0 1em;
padding: 0.75em 1em;
background: #f8f9fa;
border: 1px solid #a2a9b1;
width: auto;
max-width: min(96em, 100%);
box-sizing: border-box;
clear: both;
}
.ocr-review-box h3 {
margin: 0 0 0.4em;
font-size: 1.05em;
}
.ocr-review-host,
.ocr-review-panel {
width: 100%;
max-width: 100%;
box-sizing: border-box;
}
.ocr-review-layout {
display: flex;
flex-wrap: wrap;
gap: 1em;
margin-top: 0.6em;
width: 100%;
max-width: 100%;
box-sizing: border-box;
}
.ocr-review-preview {
flex: 1 1 180px;
max-width: min(280px, 100%);
box-sizing: border-box;
}
.ocr-preview-sticky {
position: sticky;
top: 0.75em;
align-self: flex-start;
}
.ocr-review-preview img {
max-width: 100%;
height: auto;
border: 1px solid #ccc;
background: #fff;
}
.ocr-review-facts {
flex: 2 1 220px;
min-width: 0;
box-sizing: border-box;
}
.ocr-review-facts textarea {
width: 100%;
min-height: 8em;
box-sizing: border-box;
font-family: ui-monospace, monospace;
font-size: 90%;
}
.ocr-fact-row {
display: flex;
flex-wrap: wrap;
align-items: flex-start;
gap: 0.4em;
margin: 0.35em 0;
padding: 0.35em 0;
border-bottom: 1px solid #e4e8df;
}
.ocr-change-line {
flex: 1 1 12em;
min-width: 0;
}
.ocr-fact-details {
flex: 1 1 100%;
margin: 0.15em 0 0.25em 1.5em;
font-size: 90%;
}
.ocr-fact-details summary {
cursor: pointer;
color: #54595d;
}
.ocr-fact-row input[type="text"],
.ocr-fact-value {
flex: 1 1 12em;
min-width: 0;
max-width: 100%;
box-sizing: border-box;
}
.ocr-fact-meta {
font-size: 85%;
color: #54595d;
}
.ocr-review-actions {
margin-top: 0.75em;
display: flex;
flex-wrap: wrap;
gap: 0.5em;
align-items: center;
}
.ocr-apply-btn {
font-weight: 600;
}
.ocr-dry-run {
margin: 0.35em 0 0;
padding: 0.55em 0.7em;
background: #f8f9fa;
border: 1px solid #a2a9b1;
}
.ocr-dry-run ul {
margin: 0.35em 0 0;
padding-left: 1.2em;
}
.ocr-seed-banner {
margin: 0.5em 0;
padding: 0.45em 0.65em;
background: #fff8e6;
border: 1px solid #c8a84b;
}
.ocr-review-status {
margin: 0.5em 0 0;
font-size: 95%;
flex: 1 1 100%;
}
.ocr-apply-preview {
margin: 0.85em 0;
padding: 0.55em 0.7em;
background: #f0f6e8;
border: 1px solid #a3b18a;
}
.ocr-apply-preview-list {
margin: 0.35em 0 0;
padding-left: 1.2em;
}
.ocr-apply-preview-list li {
margin: 0.2em 0;
}
.ocr-advanced {
margin: 0.75em 0;
padding: 0.4em 0.55em;
border: 1px dashed #a2a9b1;
background: #f8f9fa;
}
.ocr-advanced > summary {
cursor: pointer;
font-weight: 600;
}
.ocr-advanced-body {
margin-top: 0.5em;
}
.ocr-advanced-actions {
display: flex;
flex-wrap: wrap;
gap: 0.4em;
margin-top: 0.5em;
}
.ocr-person-card {
margin: 0.75em 0;
padding: 0.65em 0.75em;
border: 1px solid #c8ccd1;
background: #fff;
border-radius: 2px;
}
.ocr-roster-table {
width: 100%;
border-collapse: collapse;
background: #fff;
font-size: 95%;
margin: 0.35em 0 0.75em;
}
.ocr-roster-table th {
text-align: left;
background: #3f4a3c;
color: #fff;
padding: 0.45em 0.55em;
font-weight: 600;
}
.ocr-roster-table td {
vertical-align: top;
padding: 0.55em 0.6em;
border-bottom: 1px solid #eaecf0;
}
.ocr-roster-table tr.ocr-person-card {
margin: 0;
padding: 0;
border: 0;
border-left: 4px solid #c8ccd1;
border-radius: 0;
background: #fff;
}
.ocr-roster-table tr.ocr-person-matched {
border-left: 4px solid #14866d;
}
.ocr-roster-table tr.ocr-person-unresolved {
border-left: 4px solid #fc3;
background: #fffdf5;
}
.ocr-roster-table tr.ocr-person-done {
opacity: 1;
background: #f8f9fa;
border-left-color: #a2a9b1;
}
.ocr-roster-table .ocr-group-heading-row td {
background: #ece6da;
font-weight: 600;
border-bottom: 1px solid #c8ccd1;
padding-top: 0.75em;
}
.ocr-col-do {
width: 4.2em;
white-space: nowrap;
text-align: center;
}
.ocr-scan-name {
font-weight: 600;
font-size: 1.05em;
}
.ocr-scan-bits {
margin-top: 0.2em;
font-size: 85%;
color: #72777d;
}
.ocr-wiki-page-name {
display: block;
font-weight: 600;
margin-bottom: 0.2em;
}
.ocr-wiki-missing {
color: #6b4c00;
}
.ocr-fact-store {
display: none;
}
.ocr-row-outcome {
font-size: 95%;
line-height: 1.35;
}
.ocr-outcome-write {
background: #eaf5f0;
border: 1px solid #14866d;
padding: 0.4em 0.55em;
}
.ocr-outcome-unmatched {
background: #fff8e0;
border: 1px solid #fc3;
padding: 0.4em 0.55em;
}
.ocr-outcome-skip,
.ocr-outcome-idle {
color: #54595d;
}
.ocr-row-write-list {
margin: 0;
padding-left: 1.15em;
}
.ocr-outcome-banner {
margin: 0 0 0.75em;
padding: 0.65em 0.8em;
background: #eaf3ff;
border: 1px solid #a2b7d2;
}
.ocr-outcome-banner strong {
display: block;
margin-bottom: 0.2em;
}
.ocr-preview-person {
margin: 0.35em 0;
}
.ocr-preview-person > ul {
margin: 0.15em 0 0.35em 1.2em;
}
.ocr-preview-count {
margin: 0.35em 0 0.15em;
font-weight: 600;
}
.ocr-person-matched {
border-left: 4px solid #14866d;
}
.ocr-person-unresolved {
border-left: 4px solid #fc3;
background: #fffdf5;
}
.ocr-group-heading {
margin: 1.1em 0 0.4em;
font-size: 1.05em;
border-bottom: 1px solid #c8ccd1;
padding-bottom: 0.2em;
}
.ocr-card-step {
font-size: 80%;
text-transform: uppercase;
letter-spacing: 0.04em;
color: #72777d;
margin-bottom: 0.35em;
}
.ocr-card-who,
.ocr-card-match,
.ocr-card-update {
margin: 0.55em 0;
padding: 0.45em 0.55em;
background: #f8f9fa;
border: 1px solid #eaecf0;
}
.ocr-card-who-label {
font-size: 80%;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.03em;
color: #54595d;
margin-bottom: 0.25em;
}
.ocr-card-hint {
margin: 0.35em 0 0;
font-size: 85%;
color: #72777d;
}
.ocr-include-row {
display: flex;
align-items: flex-start;
gap: 0.4em;
margin: 0.35em 0;
font-size: 95%;
line-height: 1.35;
}
.ocr-person-done {
opacity: 0.88;
border-left-color: #a2a9b1;
}
.ocr-fact-primary .ocr-change-line {
font-weight: 500;
}
.ocr-card-name {
font-weight: 600;
font-size: 1.05em;
}
.ocr-card-meta,
.ocr-match-status {
font-size: 90%;
color: #54595d;
width: 100%;
}
.ocr-card-match {
margin: 0.35em 0 0.5em;
}
.ocr-suggest {
display: flex;
flex-direction: column;
gap: 0.15em;
margin: 0.25em 0 0.4em;
max-width: 100%;
border: 1px solid #a2a9b1;
background: #fff;
padding: 0.25em;
}
.ocr-suggest-item {
display: block;
width: 100%;
text-align: left;
border: 0;
background: transparent;
padding: 0.3em 0.4em;
cursor: pointer;
}
.ocr-suggest-item:hover {
background: #eaecf0;
}
.ocr-card-changes {
margin-top: 0.25em;
}
.ocr-card-more {
margin-top: 0.45em;
font-size: 90%;
}
.ocr-apply-success .ocr-apply-links {
margin: 0.5em 0;
padding-left: 1.2em;
}
.ocr-apply-success .ocr-apply-links li {
margin: 0.35em 0;
}
.ocr-queue-item {
display: flex;
flex-wrap: wrap;
gap: 0.5em;
align-items: flex-start;
}
.ocr-queue-thumb {
width: 56px;
height: 56px;
object-fit: cover;
border: 1px solid #ccc;
background: #fff;
flex: 0 0 auto;
}
.ocr-queue-meta {
flex: 1 1 12em;
min-width: 0;
}
.ocr-progress-wrap {
height: 8px;
background: #eaecf0;
border: 1px solid #a2a9b1;
border-radius: 2px;
overflow: hidden;
margin: 0.4em 0 0.6em;
max-width: 28em;
}
.ocr-progress-bar {
height: 100%;
width: 0;
background: #3366cc;
transition: width 0.3s ease;
}
.ocr-page-picker {
display: flex;
flex-direction: column;
gap: 0.5em;
}
.ocr-page-item {
display: block;
font-size: 90%;
background: #fff;
border: 1px solid #ccc;
padding: 0.35em;
}
.ocr-page-item img {
display: block;
max-width: 100%;
height: auto;
margin-bottom: 0.25em;
}
.ocr-fact-group {
margin: 0.6em 0 0.9em;
}
.ocr-fact-group h4 {
margin: 0 0 0.35em;
font-size: 1em;
}
.ocr-fact-already {
opacity: 0.78;
background: #f3f4f5;
}
.ocr-identity-banner {
margin: 0.5em 0;
padding: 0.5em 0.65em;
border: 1px solid #a2a9b1;
background: #f8f9fa;
font-size: 95%;
}
.ocr-identity-warn {
border-color: #fc3;
background: #fff8e0;
}
.ocr-identity-ok {
border-color: #14866d;
background: #eaf5f0;
}
.ocr-doc-type,
.ocr-gallery-caption {
display: block;
margin: 0.35em 0;
}
.ocr-gallery-caption {
width: 100%;
box-sizing: border-box;
}
.ocr-force-identity {
display: block;
margin-top: 0.4em;
color: #6b4c00;
}
.ocr-people-summary {
margin: 0.4em 0;
padding: 0.45em 0.6em;
background: #eaf3ff;
border: 1px solid #a2b7d2;
font-size: 95%;
}
.ocr-multi-toolbar {
display: flex;
flex-wrap: wrap;
gap: 0.4em;
margin: 0.4em 0 0.6em;
}
.ocr-person-title,
.ocr-match-pick {
width: 100%;
max-width: 100%;
box-sizing: border-box;
margin: 0.25em 0 0.5em;
}
.ocr-queue-list {
list-style: none;
margin: 0.5em 0;
padding: 0;
}
.ocr-queue-filters {
display: flex;
flex-wrap: wrap;
gap: 0.75rem 1.25rem;
margin: 0.4em 0 0.6em;
font-size: 0.92em;
}
.ocr-queue-filters label {
display: inline-flex;
align-items: center;
gap: 0.35em;
cursor: pointer;
}
.ocr-queue-clear {
margin: 0 0 0.65em;
display: flex;
flex-wrap: wrap;
gap: 0.5em;
align-items: center;
}
.ocr-force-multi-upload {
display: block;
margin: 0.45em 0 0.6em;
font-size: 0.92em;
}
.ocr-queue-list li {
margin: 0.35em 0;
padding: 0.4em 0.5em;
background: #fff;
border: 1px solid #ddd;
}
/* Legacy person-group class kept for older cached markup */
.ocr-person-group {
margin: 0.75em 0;
padding: 0.5em 0.65em;
border: 1px solid #c8ccd1;
background: #fff;
}
.ocr-person-group h4 {
margin: 0 0 0.35em;
font-size: 1em;
}
}


Line 541: Line 1,725:
margin: 0.35em 0 0;
margin: 0.35em 0 0;
color: #444;
color: #444;
}
/* Notable Ritchie Boys — slide-style portrait cards */
.notable-slides {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(14em, 1fr));
gap: 1.15em 1em;
margin: 1em 0 1.5em;
align-items: start;
}
.notable-slide-card {
border: 1px solid #a2a9b1;
background: #f8f9fa;
padding: 0.65em 0.7em 0.75em;
text-align: center;
}
.notable-slide-photo {
margin: 0 0 0.55em;
line-height: 0;
}
.notable-slide-photo img,
.notable-slide-photo .mw-file-element {
display: block;
margin: 0 auto;
max-width: 100%;
height: auto;
}
.notable-slide-nophoto {
display: flex;
align-items: center;
justify-content: center;
min-height: 8em;
background: #eaecf0;
color: #54595d;
font-size: 90%;
}
.notable-slide-name {
font-weight: bold;
font-size: 105%;
line-height: 1.3;
margin: 0 0 0.25em;
}
.notable-slide-meta {
font-size: 90%;
color: #54595d;
margin: 0 0 0.35em;
}
.notable-slide-body ul {
margin: 0.35em 0 0;
padding-left: 1.2em;
text-align: left;
font-size: 92%;
line-height: 1.35;
}
.notable-slide-body li {
margin: 0.15em 0;
}
/* Soldier profile — compact photo gallery (not infobox-style thumbs).
  Stay in the text column beside the infobox; clearing created empty voids. */
.soldier-gallery {
margin: 0.5em 0 1em;
clear: none;
overflow: auto;
width: auto;
max-width: 100%;
box-sizing: border-box;
}
.soldier-gallery ul.gallery,
.soldier-gallery .gallery {
margin: 0;
padding: 0;
width: 100%;
}
.soldier-gallery .gallerybox {
margin: 0.15em;
}
.soldier-gallery .thumb,
.soldier-gallery .gallerybox .thumb {
border: none;
background: transparent;
}
.soldier-gallery .gallerytext {
font-size: 88%;
line-height: 1.3;
text-align: center;
padding: 0.25em 0.35em 0.5em;
max-width: 12em;
margin: 0 auto;
color: #333;
}
/* Wide By The Numbers tables (many specialty columns) */
.rb-wide-table {
overflow-x: auto;
max-width: 100%;
margin: 0.8em 0 1.2em 0;
}
.rb-wide-table .wikitable {
margin: 0;
}
/* By The Numbers showcase hub (v4) */
.mw-parser-output .rb-numbers-stat-grid,
.mw-parser-output .rb-numbers-link-grid {
display: grid !important;
grid-template-columns: repeat(auto-fit, minmax(12em, 1fr));
gap: 0.85em;
margin: 1em 0 1.1em 0;
}
.mw-parser-output .rb-numbers-stat,
.mw-parser-output .rb-numbers-link-card {
background: #f7f4ee !important;
border: 1px solid #c3b7a4 !important;
border-top: 4px solid #3f4a3c !important;
padding: 0.95em 1em 1.05em !important;
box-sizing: border-box;
}
.mw-parser-output .rb-numbers-stat {
text-align: center;
}
.mw-parser-output .rb-numbers-stat-num {
display: block;
font-size: 2.2em !important;
font-weight: 700 !important;
line-height: 1.1;
color: #3f4a3c !important;
letter-spacing: -0.02em;
}
.mw-parser-output .rb-numbers-stat-label {
margin-top: 0.4em;
font-size: 95%;
font-weight: 600;
line-height: 1.3;
}
.mw-parser-output .rb-numbers-stat-note,
.mw-parser-output .rb-numbers-link-desc {
margin-top: 0.35em;
font-size: 84%;
line-height: 1.35;
color: #555;
}
.mw-parser-output .rb-numbers-link-card > a {
font-weight: 600;
font-size: 1.02em;
}
/* Photos page: Google Drive album embed */
.drive-folder-embed {
margin: 1em 0 1.5em;
width: 100%;
max-width: 100%;
background: #f8f9fa;
border: 1px solid #c8ccd1;
box-sizing: border-box;
}
.drive-folder-frame {
display: block;
width: 100%;
height: min(75vh, 900px);
min-height: 520px;
border: 0;
background: #fff;
}
.drive-folder-fallback {
margin: 0.75em 1em;
font-size: 95%;
}
.rb-search-empty-help {
margin: 0.75em 0 1.25em;
padding: 0.85rem 1rem;
border-left: 4px solid #6b3a2a;
background: linear-gradient(90deg, rgba(107,58,42,0.08), transparent);
max-width: 42rem;
}
.rb-search-empty-help ul {
margin: 0.4em 0 0.5em 1.2em;
}
.photos-featured {
margin: 0.75em 0 1.25em;
}
/* The Stories → soldier profile hub card */
.story-soldier-hub {
margin: 0.35em 0 1.25em;
padding: 0.85em 1em;
border: 1px solid #c8ccd1;
background: #f8f9fa;
}
.story-soldier-hub-inner {
display: flex;
flex-wrap: wrap;
gap: 0.85em 1.1em;
align-items: flex-start;
}
.story-soldier-hub-photo {
flex: 0 0 auto;
}
.story-soldier-hub-photo img,
.story-soldier-hub-photo .mw-file-element {
display: block;
width: 140px;
height: 180px;
object-fit: cover;
object-position: center top;
}
.story-soldier-hub-body {
flex: 1 1 14em;
min-width: 12em;
}
.story-soldier-hub-kicker {
font-size: 85%;
text-transform: uppercase;
letter-spacing: 0.04em;
color: #54595d;
margin-bottom: 0.2em;
}
.story-soldier-hub-name {
font-size: 1.25em;
font-weight: 600;
line-height: 1.25;
}
.story-soldier-hub-dates {
margin-top: 0.25em;
color: #202122;
}
.story-soldier-hub-blurb {
margin-top: 0.45em;
font-size: 95%;
}
.story-soldier-hub-cta {
margin-top: 0.55em;
font-size: 92%;
color: #54595d;
}
/* Profile → Stories cue */
.soldier-story-cue {
margin: 0.65em 0 1em;
padding: 0.55em 0.75em;
border-left: 3px solid #2a4b7c;
background: #f4f7fb;
font-size: 97%;
}
.soldier-story-cue-label {
font-weight: 600;
margin-right: 0.25em;
}
/* Same-team rail (team roster samples only; not classmates) */
.soldier-related {
margin: 1em 0 1.35em;
padding: 0.75em 0.9em;
border: 1px solid #c8ccd1;
background: #fbfbfb;
clear: both;
}
.soldier-related-heading {
font-weight: 600;
font-size: 1.05em;
margin: 0 0 0.55em;
}
.soldier-related-block + .soldier-related-block {
margin-top: 0.65em;
}
.soldier-related-label {
font-size: 92%;
font-weight: 600;
color: #54595d;
margin-bottom: 0.2em;
}
.soldier-related-links {
font-size: 95%;
line-height: 1.45;
}
.soldier-related-note {
margin-top: 0.75em;
font-size: 88%;
color: #54595d;
line-height: 1.4;
}
/* Contact Us: Google Form embed */
.google-form-embed {
margin: 1em 0 1.5em;
width: 100%;
max-width: 100%;
background: #f8f9fa;
border: 1px solid #c8ccd1;
box-sizing: border-box;
}
.google-form-frame {
display: block;
width: 100%;
height: min(90vh, 1500px);
min-height: 1100px;
border: 0;
background: #fff;
}
.google-form-fallback {
margin: 0.75em 1em;
font-size: 95%;
}
/* Interview / documentary YouTube watchlist */
.yt-watch-index {
margin: 0.75em 0 1.25em;
}
.yt-interview {
margin: 0 0 1.6em;
padding: 0.85em 1em 1em;
border: 1px solid #c8ccd1;
background: #fbfcfd;
}
.yt-embed {
position: relative;
margin: 0.75em 0 0.5em;
max-width: 640px;
background: #111;
}
.yt-embed-poster,
.yt-embed.yt-embed-playing {
aspect-ratio: 16 / 9;
width: 100%;
background: #111;
}
.yt-embed-poster {
position: relative;
cursor: pointer;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
border: 0;
background: #111;
}
.yt-embed-thumb {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.yt-embed-play {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
display: flex;
align-items: center;
gap: 0.45em;
padding: 0.4em 0.85em 0.4em 0.55em;
border: 0;
border-radius: 4px;
background: #cc0000;
color: #fff;
font: inherit;
font-weight: 600;
cursor: pointer;
}
.yt-embed-play-icon {
width: 0;
height: 0;
border-style: solid;
border-width: 8px 0 8px 14px;
border-color: transparent transparent transparent #fff;
}
.yt-embed-playing {
background: #000;
}
.yt-embed-frame {
display: block;
width: 100%;
height: 100%;
border: 0;
}
.yt-embed-fallback {
margin: 0.5em 0 0;
font-size: 95%;
}
.yt-interview-next {
margin-top: 0.75em;
padding-top: 0.55em;
border-top: 1px solid #eaecf0;
font-size: 95%;
}
.yt-interview-next-label {
font-weight: 600;
margin-bottom: 0.2em;
}
.yt-interview-next-list {
margin: 0.15em 0 0 1.2em;
padding: 0;
}
.yt-interview-next-why {
color: #54595d;
font-size: 92%;
}
/* SoundCloud audio embeds (interview watchlist) */
.sc-embed {
position: relative;
margin: 0.75em 0 0.5em;
max-width: 640px;
background: #1a1a1a;
}
.sc-embed-poster,
.sc-embed.sc-embed-playing {
aspect-ratio: 16 / 9;
width: 100%;
background: linear-gradient(145deg, #2b2b2b 0%, #111 55%, #3a1a0a 100%);
}
.sc-embed-poster {
position: relative;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
margin: 0;
padding: 0;
border: 0;
}
.sc-embed-play {
display: flex;
align-items: center;
gap: 0.45em;
padding: 0.45em 0.9em 0.45em 0.6em;
border: 0;
border-radius: 4px;
background: #ff5500;
color: #fff;
font: inherit;
font-weight: 600;
cursor: pointer;
}
.sc-embed-play-icon {
width: 0;
height: 0;
border-style: solid;
border-width: 8px 0 8px 14px;
border-color: transparent transparent transparent #fff;
}
.sc-embed-playing {
background: #111;
}
.sc-embed-frame {
display: block;
width: 100%;
height: 100%;
border: 0;
}
.sc-embed-fallback {
margin: 0.5em 0 0;
font-size: 95%;
}
/* Aviary (Milken Archive et al.) audio/video embeds */
.aviary-embed {
position: relative;
margin: 0.75em 0 0.5em;
max-width: 720px;
background: #1a1a1a;
}
.aviary-embed-poster,
.aviary-embed.aviary-embed-playing {
aspect-ratio: 16 / 10;
width: 100%;
background: linear-gradient(145deg, #1e2a3a 0%, #111820 55%, #0a2030 100%);
}
.aviary-embed-poster {
position: relative;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
margin: 0;
padding: 0;
border: 0;
}
.aviary-embed-play {
display: flex;
align-items: center;
gap: 0.45em;
padding: 0.45em 0.9em 0.45em 0.6em;
border: 0;
border-radius: 4px;
background: #2f6fed;
color: #fff;
font: inherit;
font-weight: 600;
cursor: pointer;
}
.aviary-embed-play-icon {
width: 0;
height: 0;
border-style: solid;
border-width: 8px 0 8px 14px;
border-color: transparent transparent transparent #fff;
}
.aviary-embed-playing {
background: #111;
}
.aviary-embed-frame {
display: block;
width: 100%;
height: 100%;
border: 0;
}
.aviary-embed-fallback {
margin: 0.5em 0 0;
font-size: 95%;
}
/* Internet Archive embeds (Yiddish Book Center oral histories et al.) */
.ia-embed {
position: relative;
margin: 0.75em 0 0.5em;
max-width: 720px;
background: #1a1a1a;
}
.ia-embed-poster,
.ia-embed.ia-embed-playing {
aspect-ratio: 16 / 9;
width: 100%;
background: linear-gradient(145deg, #2b2b2b 0%, #111 55%, #1a2a3a 100%);
}
.ia-embed-poster {
position: relative;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
margin: 0;
padding: 0;
border: 0;
}
.ia-embed-play {
display: flex;
align-items: center;
gap: 0.45em;
padding: 0.45em 0.9em 0.45em 0.6em;
border: 0;
border-radius: 4px;
background: #2c5aa0;
color: #fff;
font: inherit;
font-weight: 600;
cursor: pointer;
}
.ia-embed-play-icon {
width: 0;
height: 0;
border-style: solid;
border-width: 8px 0 8px 14px;
border-color: transparent transparent transparent #fff;
}
.ia-embed-playing {
background: #111;
}
.ia-embed-frame {
display: block;
width: 100%;
height: 100%;
border: 0;
}
.ia-embed-fallback {
margin: 0.5em 0 0;
font-size: 95%;
}
.soldier-media-cue {
margin: 0.65em 0 1em;
}
.soldier-interview-cue,
.soldier-film-cue {
margin: 0 0 0.45em;
padding: 0.55em 0.75em;
border-left: 3px solid #7a3e12;
background: #faf6f1;
font-size: 97%;
}
.soldier-film-cue {
border-left-color: #2a4b7c;
background: #f4f7fb;
}
.soldier-interview-cue-label,
.soldier-film-cue-label {
font-weight: 600;
margin-right: 0.25em;
}
/* Premise strip + books filters + family needs */
.home-premise {
  max-width: 42rem;
  margin: 0.75rem 0 1.25rem;
  padding: 0.85rem 1rem;
  border-left: 4px solid #6b3a2a;
  background: linear-gradient(90deg, rgba(107,58,42,0.08), transparent);
}
.home-premise-title {
  font-weight: 700;
  font-size: 1.05rem;
  margin-bottom: 0.35rem;
}
.home-premise-links {
  margin: 0.5rem 0 0;
  font-size: 0.95rem;
}
.books-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.75rem 0 1rem;
}
.books-filter {
  border: 1px solid #bbb;
  background: #f7f7f7;
  padding: 0.35rem 0.7rem;
  cursor: pointer;
  font: inherit;
}
.books-filter.is-active {
  background: #6b3a2a;
  color: #fff;
  border-color: #6b3a2a;
}
.notable-slide-card.is-book-hidden {
  display: none !important;
}
.soldier-related-media {
  margin: 0.5rem 0 0.85rem;
}
.class-story {
  margin: 0.6rem 0 0.9rem;
  padding: 0.5rem 0.75rem;
  background: #f3f0ea;
  border-left: 3px solid #6b3a2a;
}
.soldier-related-media-title {
  font-weight: 700;
  margin-bottom: 0.25rem;
}
}

Latest revision as of 01:40, 17 September 2026

/* Wikipedia-like article infobox (Vector does not ship these styles). */
table.infobox,
table.infobox.vcard,
table.soldier-infobox,
.infobox.soldier-infobox {
	float: right;
	clear: right;
	margin: 0.5em 0 0.8em 1.4em;
	padding: 0.2em;
	width: 22em;
	max-width: 40%;
	background: #f8f9fa;
	color: #202122;
	border: 1px solid #a2a9b1;
	border-spacing: 3px;
	border-collapse: separate;
	font-size: 88%;
	line-height: 1.5em;
	text-align: left;
}

.infobox .infobox-above,
.soldier-infobox .infobox-above {
	background: #eaecf0;
	color: #000;
	font-size: 125%;
	font-weight: bold;
	text-align: center;
	padding: 0.4em 0.5em;
}

.infobox .infobox-header,
.soldier-infobox .infobox-header {
	background: #eaecf0;
	color: #000;
	font-weight: bold;
	text-align: center;
	padding: 0.3em 0.5em;
}

.infobox .infobox-image,
.soldier-infobox .infobox-image {
	text-align: center;
	padding: 0.4em 0.2em 0.2em;
	background: #f8f9fa;
}

.infobox .infobox-caption,
.soldier-infobox .infobox-caption {
	font-size: 95%;
	padding: 0.2em 0.4em 0.5em;
}

.infobox .infobox-label,
.infobox th.infobox-label,
.soldier-infobox .infobox-label,
.soldier-infobox th.infobox-label {
	display: table-cell;
	width: 38%;
	font-weight: bold;
	text-align: left;
	vertical-align: top;
	padding: 0.2em 0.5em 0.2em 0.5em;
	background: #f8f9fa;
	color: #202122;
}

.infobox td.infobox-data,
.soldier-infobox td.infobox-data {
	display: table-cell;
	vertical-align: top;
	padding: 0.2em 0.5em 0.2em 0.4em;
	background: #f8f9fa;
}

.infobox > tbody > tr,
.soldier-infobox > tbody > tr {
	display: table-row;
}

/*
 * Slightly wider left sidebar (default Vector is 10em) so labels like
 * "Congressional Gold Medal" fit on one line.
 * IMPORTANT: scope to Vector only — these rules wreck Minerva mobile layout.
 */
.skin-vector #mw-panel,
.skin-vector-legacy #mw-panel {
	width: 15em !important;
}
.skin-vector .mw-body,
.skin-vector #mw-head-base,
.skin-vector #left-navigation,
.skin-vector #mw-data-after-content,
.skin-vector .mw-footer,
.skin-vector-legacy .mw-body,
.skin-vector-legacy #mw-head-base,
.skin-vector-legacy #left-navigation,
.skin-vector-legacy #mw-data-after-content,
.skin-vector-legacy .mw-footer {
	margin-left: 15em !important;
}
.skin-vector #p-personal ul,
.skin-vector-legacy #p-personal ul {
	padding-left: 15em !important;
}
@media screen and (min-width: 982px) {
	.skin-vector .mw-body,
	.skin-vector #mw-head-base,
	.skin-vector #left-navigation,
	.skin-vector #mw-data-after-content,
	.skin-vector .mw-footer,
	.skin-vector-legacy .mw-body,
	.skin-vector-legacy #mw-head-base,
	.skin-vector-legacy #left-navigation,
	.skin-vector-legacy #mw-data-after-content,
	.skin-vector-legacy .mw-footer {
		margin-left: 16em !important;
	}
	.skin-vector #p-personal ul,
	.skin-vector-legacy #p-personal ul {
		padding-left: 16em !important;
	}
}

/* Vector 2010 sidebar logo: source file is 1024px; keep badge size, center in wider slot. */
.skin-vector #p-logo,
.skin-vector-legacy #p-logo {
	height: 160px !important;
	width: 15em !important;
	margin: 0 auto 0.6em auto;
}
.skin-vector #p-logo a,
.skin-vector #p-logo a.mw-wiki-logo,
.skin-vector .mw-wiki-logo,
.skin-vector-legacy #p-logo a,
.skin-vector-legacy #p-logo a.mw-wiki-logo,
.skin-vector-legacy .mw-wiki-logo {
	height: 160px !important;
	width: 160px !important;
	margin-left: auto !important;
	margin-right: auto !important;
	background-size: contain !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
}

/* If someone uses Vector 2022, do not leave the badge at 50px. */
.skin-vector-2022 .mw-logo-icon {
	height: 120px !important;
	width: 120px !important;
}

/* Minerva / MobileFrontend: undo any leftover desktop chrome and keep content full-width. */
.skin-minerva .mw-body,
.skin-minerva #content,
.skin-minerva .mw-content-container,
.skin-minerva .mf-page-content {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: 100% !important;
}
.skin-minerva table.infobox,
.skin-minerva table.soldier-infobox,
.skin-minerva .infobox.soldier-infobox {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0.5em 0 1em 0 !important;
}
.skin-minerva .home-feature-thumbs,
.skin-minerva .home-hero-photo,
.skin-minerva .home-start-here {
	max-width: 100% !important;
}
.skin-minerva .home-feature-thumbs {
	flex-wrap: wrap;
	justify-content: center;
}

/* Soft-launch sitenotice: align with mobile content column */
.skin-minerva .sitenotice-softlaunch,
.skin-minerva #siteNotice,
.skin-minerva .mw-site-notice {
	max-width: 100%;
	margin-left: auto;
	margin-right: auto;
	text-align: left;
	padding-left: 0.25em;
	padding-right: 0.25em;
	box-sizing: border-box;
}
.sitenotice-softlaunch {
	font-size: 95%;
	line-height: 1.45;
	margin: 0.35em 0 0.75em 0;
}

/* Find-a-soldier: compact field on phones (never a tall flex-grown square) */
.skin-minerva .home-find {
	max-width: 22em !important;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}
.skin-minerva .home-find-row {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	gap: 0.4em;
	align-items: center !important;
}
.skin-minerva .home-find-suggest-wrap {
	flex: 1 1 auto;
	min-width: 0;
	max-width: none;
	width: 100%;
}
.skin-minerva .home-find-input,
.skin-minerva .soldier-find-form input[type="search"],
.skin-minerva .soldier-find-form input[type="text"],
.skin-minerva .home-find input[type="search"],
.skin-minerva .home-find input[type="text"] {
	flex: 1 1 auto !important;
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	height: 2.25em !important;
	min-height: 2.25em !important;
	max-height: 2.5em !important;
	padding: 0.25em 0.5em !important;
	line-height: 1.2 !important;
	font-size: 16px !important; /* avoid iOS zoom-on-focus */
	box-sizing: border-box !important;
}
.skin-minerva .home-find-button {
	flex: 0 0 auto !important;
	height: 2.25em !important;
	min-height: 2.25em !important;
	padding: 0 0.85em !important;
	margin-top: 0 !important;
	box-sizing: border-box !important;
}

/* Hide find-a-soldier noscript fallback when JS will build the real form (Mobile polish cachebust) */
.client-js .home-find-fallback {
	display: none;
}

/* Soldier edit strip: keep tools, drop long help copy on phones */
.skin-minerva .soldier-facts-box {
	margin: 0.25em 0 0.55em !important;
	padding: 0.45em 0.65em !important;
	background: transparent !important;
	border: none !important;
	border-bottom: 1px solid #eaecf0 !important;
	max-width: 100% !important;
}
.skin-minerva .soldier-facts-intro,
.skin-minerva .soldier-summary-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35em 0.5em;
	align-items: center;
	font-size: 90%;
	line-height: 1.35;
}
.skin-minerva .soldier-facts-label,
.skin-minerva .soldier-facts-help,
.skin-minerva .soldier-summary-help {
	display: none !important;
}
.skin-minerva .soldier-summary-bar {
	margin: 0.4em 0 0 !important;
	padding-top: 0.4em !important;
	border-top: 1px solid #eaecf0 !important;
}
.skin-minerva .soldier-facts-toggle,
.skin-minerva .soldier-summary-toggle {
	font-size: 90%;
	padding: 0.3em 0.55em;
}

/* Wide tables: swipe sideways instead of blowing out the page */
.skin-minerva .mw-parser-output .wikitable,
.skin-minerva .mw-parser-output table.cargoTable,
.skin-minerva .mw-parser-output .rb-wide-table,
.skin-minerva .mw-parser-output .jquery-tablesorter {
	display: block;
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	box-sizing: border-box;
}
.skin-minerva .mw-parser-output img,
.skin-minerva .mw-parser-output .mw-file-element {
	max-width: 100%;
	height: auto;
}

/* Shorter Drive / Form embeds on phones */
.skin-minerva .drive-folder-frame {
	min-height: 220px !important;
	height: 42vh !important;
	max-height: 380px !important;
}
.skin-minerva .google-form-frame {
	min-height: 260px !important;
	height: 52vh !important;
	max-height: 480px !important;
}
.skin-minerva .drive-folder-fallback,
.skin-minerva .google-form-fallback {
	font-size: 95%;
	margin: 0.5em 0.75em;
}

/* Separate site hubs in the hamburger from Home / Random */
.skin-minerva #p-ritchie {
	border-top: 1px solid rgba(0, 0, 0, 0.08);
	margin-top: 0.25em;
	padding-top: 0.25em;
}

.hatnote,
.hatnote.unconfirmed-banner,
.unconfirmed-banner {
	background: transparent;
	border: none;
	padding: 0 0 0.5em 1.6em;
	margin: 0 0 0.6em 0;
	font-style: italic;
	color: #202122;
}

.hatnote.research-notes-disclaimer {
	color: #54595d;
	padding-left: 0;
	margin: 0 0 0.5em 0;
	max-width: none;
}

.hatnote.source-confidence-cue,
.source-confidence-cue {
	color: #54595d;
	padding-left: 0;
	margin: 0;
	max-width: none;
}

.soldier-page-footer-notes {
	clear: both;
	margin: 1.5em 0 0.75em 0;
	padding: 0.75em 0 0 0;
	border-top: 1px solid #c8ccd1;
	font-size: 92%;
	line-height: 1.45;
}

.soldier-page-footer-notes .hatnote {
	margin-bottom: 0.45em;
}

.soldier-page-footer-notes .hatnote:last-child {
	margin-bottom: 0;
}

/* Hide until Common.js moves these into .soldier-page-footer-notes (keeps the lead clear). */
.mw-parser-output > .research-notes-disclaimer,
.mw-parser-output > .source-confidence-cue,
.mw-parser-output > .hatnote.research-notes-disclaimer,
.mw-parser-output > .hatnote.source-confidence-cue {
	display: none;
}

/*
 * Blank lines after the Soldier template / between hatnotes become <p><br></p> and sit
 * beside the floated infobox as a tall empty column. Collapse them so the lead
 * starts at the top next to the infobox.
 */
.mw-parser-output:has(> table.soldier-infobox) > p:has(> br:only-child),
.mw-parser-output:has(> table.infobox.soldier-infobox) > p:has(> br:only-child),
.mw-parser-output:has(> table.soldier-infobox) > p:empty,
.mw-parser-output:has(> table.infobox.soldier-infobox) > p:empty {
	display: none;
	margin: 0;
	padding: 0;
	height: 0;
	line-height: 0;
	overflow: hidden;
}

.mw-parser-output:has(> table.soldier-infobox) > .soldier-lead,
.mw-parser-output:has(> table.infobox.soldier-infobox) > .soldier-lead {
	margin-top: 0;
}

.soldier-research-notes {
	display: none;
}

/* Wikipedia-style award ribbon rack in the main article column */
.soldier-awards-section {
	clear: both;
	margin: 1em 0 1.25em 0;
	max-width: 100%;
}

.soldier-awards-heading {
	font-family: inherit;
	font-size: 1.5em;
	font-weight: bold;
	border-bottom: 1px solid #a2a9b1;
	margin: 1em 0 0.5em 0;
	padding-bottom: 0.15em;
	line-height: 1.3;
}

.soldier-awards-list {
	margin: 0.75em 0 0.25em 0;
	max-width: none;
}

.soldier-awards-list ul,
.soldier-awards-section ul {
	margin: 0.4em 0 0.4em 1.6em;
}

/* Keep extra award notes on one line (e.g. Chafee statue sentence) */
.soldier-awards-list li {
	white-space: nowrap;
}

/* Ribbon rack: tiny gaps like Wikipedia (border-spacing 2px + 1px cell pad) */
.soldier-awards-section .soldier-ribbon-rack,
table.soldier-ribbon-rack {
	margin: 0 auto;
	border-collapse: separate;
	border-spacing: 2px;
	background: transparent;
	border: none;
	width: max-content;
	max-width: 100%;
	line-height: 0;
}

.soldier-awards-section > table.soldier-ribbon-rack:first-of-type {
	margin-top: 0.75em;
}

/* Separate tables per row — mirror Wikipedia's ~4px row gap */
.soldier-awards-section > table.soldier-ribbon-rack + table.soldier-ribbon-rack {
	margin-top: 2px;
}

table.soldier-ribbon-rack,
table.soldier-ribbon-rack > tbody > tr > td,
table.soldier-ribbon-rack > tr > td {
	border: none !important;
	background: transparent !important;
	padding: 1px !important;
	text-align: center;
	vertical-align: middle;
	line-height: 0;
}

table.soldier-ribbon-rack img,
table.soldier-ribbon-rack .mw-file-element {
	display: block;
	max-width: 106px;
	height: auto;
	vertical-align: top;
	margin: 0 auto;
}

/* Ribbons + captions in one table: equal columns so each label centers under its ribbon */
table.soldier-ribbon-rack.soldier-awards-labeled {
	table-layout: fixed;
	line-height: normal;
	margin-bottom: 0.35em;
}

table.soldier-ribbon-rack.soldier-awards-labeled > tbody > tr > td,
table.soldier-ribbon-rack.soldier-awards-labeled > tr > td {
	width: 118px;
	max-width: 118px;
	vertical-align: top;
}

table.soldier-ribbon-rack.soldier-awards-labeled td.soldier-award-caption {
	line-height: 1.35 !important;
	font-size: 95%;
	padding: 0.4em 0.45em !important;
	text-align: center;
	vertical-align: middle;
	white-space: normal;
	overflow-wrap: break-word;
	word-break: normal;
	border: 1px solid #a2a9b1 !important;
	background: #f8f9fa !important;
}

/* Match en.wikipedia awards wikitable: auto column widths from content
   (long names get more space), centered, no artificial skinny max-width */
table.soldier-awards-grid {
	margin: 1em auto;
	border-collapse: collapse;
	table-layout: auto;
	width: auto;
	max-width: 100%;
	font-size: 95%;
	line-height: 1.4;
	text-align: center;
}

table.soldier-awards-grid > tbody > tr > td,
table.soldier-awards-grid td {
	border: 1px solid #a2a9b1;
	padding: 0.4em 0.65em;
	text-align: center;
	vertical-align: middle;
	background: #f8f9fa;
	overflow-wrap: break-word;
	word-break: normal;
	hyphens: manual;
}

.class-data-disclaimer {
	border: 1px solid #a2a9b1;
	background: #f8f9fa;
	padding: 0.7em 0.9em;
	margin: 0.8em 0 1em 0;
	font-size: 92%;
	line-height: 1.45;
	max-width: none;
	color: #202122;
}

.home-lead {
	max-width: none;
	font-size: 1.05em;
	margin-bottom: 1em;
}

.page-lead {
	max-width: none;
	font-size: 1.05em;
	margin: 0 0 1em 0;
	line-height: 1.5;
}

.home-find {
	margin: 0 0 1.25em 0;
	padding: 0.85em 1em;
	background: #f8f9fa;
	border: 1px solid #a2a9b1;
	max-width: 36em;
}

.home-find-title {
	font-weight: bold;
	font-size: 1.1em;
	margin: 0 0 0.45em 0;
}

.home-find-label {
	display: block;
	font-size: 95%;
	margin-bottom: 0.25em;
}

.home-find-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em;
	align-items: center;
}

.home-find-suggest-wrap {
	position: relative;
}

.home-find-suggest {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	z-index: 50;
	margin: 0.15em 0 0;
	padding: 0.2em 0;
	list-style: none;
	background: #fff;
	border: 1px solid #a2a9b1;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
	max-height: 16em;
	overflow-y: auto;
}

.home-find-suggest[hidden] {
	display: none !important;
}

.home-find-suggest li {
	margin: 0;
	padding: 0.4em 0.65em;
	cursor: pointer;
	font-size: 95%;
	line-height: 1.35;
}

.home-find-suggest li:hover,
.home-find-suggest li.home-find-suggest-active {
	background: #eaf3ff;
}

.home-find-input {
	flex: 1 1 14em;
	min-width: 12em;
	padding: 0.35em 0.5em;
	font: inherit;
	border: 1px solid #a2a9b1;
	box-sizing: border-box;
}

.home-find-button {
	padding: 0.35em 0.85em;
	font: inherit;
	cursor: pointer;
	background: #3366cc;
	color: #fff;
	border: 1px solid #3366cc;
}

.home-find-button:hover {
	background: #2a4b8d;
}

.home-find-hint {
	margin: 0.55em 0 0;
	font-size: 95%;
	color: #54595d;
}

.home-find-more {
	margin: 0.75em 0 0;
	padding-top: 0.65em;
	border-top: 1px solid #c8ccd1;
	font-size: 95%;
	line-height: 1.6;
	color: #54595d;
}

/*
 * Directory lists from the categorytree parser function (Contents and any
 * future page that embeds one): match MediaWiki category pages
 * (.mw-category-columns) with a compact 3-column layout so long indexes
 * are not a single tall stack.
 */
.CategoryTreeTag {
	column-count: 3;
	column-gap: 1.25em;
	margin: 0.4em 0 1em 0;
}

.CategoryTreeTag > .CategoryTreeSection {
	break-inside: avoid;
	-webkit-column-break-inside: avoid;
	page-break-inside: avoid;
	margin: 0.12em 0;
}

@media (max-width: 800px) {
	.CategoryTreeTag {
		column-count: 2;
	}
}

@media (max-width: 480px) {
	.CategoryTreeTag {
		column-count: 1;
	}
}

.home-hero-photo {
	margin: 0 0 1.35em 0;
	max-width: 100%;
	clear: both;
}

.home-hero-photo img,
.home-hero-photo .mw-file-element {
	display: block;
	width: 100%;
	max-width: 56em;
	height: auto;
}

.home-feature-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 1em 1.25em;
	margin: 0.75em 0 0.35em;
	align-items: flex-start;
}

.home-feature-thumb {
	flex: 0 0 150px;
	width: 150px;
	text-align: center;
}

.home-feature-thumb a {
	display: block;
}

.home-feature-thumb img,
.home-feature-thumb .mw-file-element {
	display: block;
	width: 150px;
	height: 220px;
	margin: 0 auto 0.4em;
	object-fit: cover;
	object-position: center center;
}

.home-feature-caption {
	font-size: 95%;
	line-height: 1.35;
}

.home-book {
	display: flex;
	flex-wrap: wrap;
	gap: 1em 1.25em;
	align-items: flex-start;
	margin: 0.75em 0 1.25em;
}

.home-book-cover {
	flex: 0 0 auto;
}

.home-book-cover img,
.home-book-cover .mw-file-element {
	display: block;
	max-width: 140px;
	height: auto;
}

.home-book-text {
	flex: 1 1 16em;
	min-width: 12em;
	line-height: 1.55;
}

.needs-source,
.needs-source a {
	font-style: normal;
	white-space: nowrap;
}

.mw-parser-output > p:first-of-type {
	margin-top: 0.2em;
}

@media (max-width: 640px) {
	table.infobox,
	table.soldier-infobox {
		float: none;
		clear: both;
		width: 100%;
		max-width: 100%;
		margin: 0 0 1em 0;
	}
	/* Keep input + Search on one row. Column + flex-basis:14em made the
	   search field a ~14em-tall square on phones (Minerva / narrow Vector). */
	.home-find-row {
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
	}
	.home-find-input {
		flex: 1 1 auto;
		width: auto;
		min-width: 0;
		max-width: none;
		height: 2.25em;
		min-height: 2.25em;
		max-height: 2.5em;
		box-sizing: border-box;
	}
	.home-find-button {
		flex: 0 0 auto;
		width: auto;
		height: 2.25em;
		min-height: 2.25em;
		margin-top: 0;
		box-sizing: border-box;
	}
	.soldier-facts-box,
	.soldier-facts-panel,
	.soldier-summary-panel {
		max-width: 100%;
	}
	.drive-folder-frame {
		min-height: 240px;
		height: 45vh;
		max-height: 400px;
	}
	.google-form-frame {
		min-height: 280px;
		height: 55vh;
		max-height: 500px;
	}
	.mw-parser-output .wikitable,
	.mw-parser-output table.cargoTable {
		display: block;
		width: 100%;
		max-width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* Collapsible JS inserts [Expand]/[Collapse] flush against header text.
   Core .mw-collapsible-toggle-default { margin: 0; padding: 0 } wins over a
   single-class rule, so target both classes. */
.mw-collapsible-toggle.mw-collapsible-toggle-default {
	margin-left: 0.4em;
	padding-left: 0.25em;
}

/* Timeline disclosures open from the left, like the Technical record control. */
.soldier-timeline {
	display: flow-root;
	margin-bottom: 1em;
}

.soldier-timeline + h2 {
	clear: both;
}

.soldier-timeline-body {
	clear: both;
	padding-top: 0.25em;
}

.soldier-timeline .mw-collapsible-toggle.mw-collapsible-toggle-default {
	float: left;
	margin-left: 0;
	margin-right: 0.5em;
	padding-left: 0;
}

/* Compact disclosure in the text column beside the floated infobox.
   clear:both here (and on .soldier-gallery) caused the huge Gallery gaps. */
.soldier-upload-box {
	display: block;
	margin: 0.35em 0 0.85em;
	padding: 0;
	background: transparent;
	border: none;
	overflow: auto;
	width: auto;
	max-width: 100%;
	box-sizing: border-box;
	clear: none;
}

.soldier-upload-box > summary {
	display: list-item;
	cursor: pointer;
	padding: 0.35em 0.6em;
	background: #f8f9fa;
	border: 1px solid #a2a9b1;
	border-radius: 2px;
	font-weight: 600;
	line-height: 1.4;
	width: fit-content;
	max-width: 100%;
	box-sizing: border-box;
}

.soldier-upload-box > summary:hover {
	background: #eaecf0;
}

.soldier-upload-box[open] > summary {
	margin-bottom: 0;
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}

.soldier-upload-body {
	padding: 0.65em 0.75em 0.75em;
	background: #f8f9fa;
	border: 1px solid #a2a9b1;
	border-top: none;
	box-sizing: border-box;
	max-width: 100%;
}

.soldier-contrib-section {
	margin: 0;
	padding: 0;
	max-width: 100%;
	box-sizing: border-box;
}

.soldier-contrib-ocr {
	margin-top: 0.75em;
	padding-top: 0.75em;
	border-top: 1px solid #c8ccd1;
}

.soldier-contrib-heading {
	margin: 0 0 0.35em;
	line-height: 1.4;
}

.soldier-contrib-help {
	margin: 0 0 0.5em;
	font-size: 95%;
	color: #54595d;
	line-height: 1.5;
}

.soldier-ocr-slot:empty {
	display: none;
}

.soldier-upload-form label {
	display: block;
	margin: 0.35em 0;
}

.soldier-upload-file {
	display: block;
	margin: 0.5em 0;
	max-width: 100%;
}

.soldier-upload-form button,
.soldier-contrib-ocr > button {
	margin-top: 0.5em;
	margin-right: 0.5em;
}

.soldier-upload-status {
	margin: 0.5em 0 0;
	font-size: 95%;
}

.soldier-upload-login {
	margin: 0.35em 0 0;
}

/* Camp-wide manuals (Training materials) */
.camp-manual-upload-slot {
	margin: 0.75em 0 1.25em;
	max-width: 36em;
}

.camp-manual-upload-box {
	border-top: 1px solid #a2a9b1;
}

.camp-manual-upload-form input[type="text"] {
	display: block;
	width: 100%;
	max-width: 28em;
	margin: 0.25em 0 0.5em;
	padding: 0.35em 0.5em;
	box-sizing: border-box;
}

.camp-manual-progress {
	margin: 0.65em 0 0.25em;
	max-width: 28em;
}

.camp-manual-progress[hidden] {
	display: none !important;
}

.camp-manual-progress-bar {
	height: 0.65em;
	background: #eaecf0;
	border: 1px solid #a2a9b1;
	border-radius: 2px;
	overflow: hidden;
}

.camp-manual-progress-fill {
	height: 100%;
	width: 0%;
	background: #3366cc;
	transition: width 0.15s linear;
}

.camp-manual-progress.is-indeterminate .camp-manual-progress-fill {
	width: 35% !important;
	animation: camp-manual-progress-pulse 1.1s ease-in-out infinite;
}

@keyframes camp-manual-progress-pulse {
	0% { transform: translateX(-40%); }
	100% { transform: translateX(220%); }
}

.camp-manual-progress-label {
	margin: 0.35em 0 0;
	font-size: 90%;
	color: #54595d;
}

.camp-manual-lib-actions {
	display: inline-flex;
	gap: 0.35em;
	margin-left: 0.5em;
	vertical-align: middle;
}

.camp-manual-lib-actions button {
	font-size: 85%;
	padding: 0.1em 0.45em;
	line-height: 1.3;
	cursor: pointer;
}

.camp-manual-lib-actions .camp-manual-lib-delete {
	color: #ba0000;
}

/* Site-wide OCR inbox (Contribute documents) */
.ocr-review-box {
	margin: 0.75em 0 1em;
	padding: 0.75em 1em;
	background: #f8f9fa;
	border: 1px solid #a2a9b1;
	width: auto;
	max-width: min(96em, 100%);
	box-sizing: border-box;
	clear: both;
}
.ocr-review-box h3 {
	margin: 0 0 0.4em;
	font-size: 1.05em;
}
.ocr-review-host,
.ocr-review-panel {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
.ocr-review-layout {
	display: flex;
	flex-wrap: wrap;
	gap: 1em;
	margin-top: 0.6em;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}
.ocr-review-preview {
	flex: 1 1 180px;
	max-width: min(280px, 100%);
	box-sizing: border-box;
}
.ocr-preview-sticky {
	position: sticky;
	top: 0.75em;
	align-self: flex-start;
}
.ocr-review-preview img {
	max-width: 100%;
	height: auto;
	border: 1px solid #ccc;
	background: #fff;
}
.ocr-review-facts {
	flex: 2 1 220px;
	min-width: 0;
	box-sizing: border-box;
}
.ocr-review-facts textarea {
	width: 100%;
	min-height: 8em;
	box-sizing: border-box;
	font-family: ui-monospace, monospace;
	font-size: 90%;
}
.ocr-fact-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0.4em;
	margin: 0.35em 0;
	padding: 0.35em 0;
	border-bottom: 1px solid #e4e8df;
}
.ocr-change-line {
	flex: 1 1 12em;
	min-width: 0;
}
.ocr-fact-details {
	flex: 1 1 100%;
	margin: 0.15em 0 0.25em 1.5em;
	font-size: 90%;
}
.ocr-fact-details summary {
	cursor: pointer;
	color: #54595d;
}
.ocr-fact-row input[type="text"],
.ocr-fact-value {
	flex: 1 1 12em;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}
.ocr-fact-meta {
	font-size: 85%;
	color: #54595d;
}
.ocr-review-actions {
	margin-top: 0.75em;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	align-items: center;
}
.ocr-apply-btn {
	font-weight: 600;
}
.ocr-dry-run {
	margin: 0.35em 0 0;
	padding: 0.55em 0.7em;
	background: #f8f9fa;
	border: 1px solid #a2a9b1;
}
.ocr-dry-run ul {
	margin: 0.35em 0 0;
	padding-left: 1.2em;
}
.ocr-seed-banner {
	margin: 0.5em 0;
	padding: 0.45em 0.65em;
	background: #fff8e6;
	border: 1px solid #c8a84b;
}
.ocr-review-status {
	margin: 0.5em 0 0;
	font-size: 95%;
	flex: 1 1 100%;
}
.ocr-apply-preview {
	margin: 0.85em 0;
	padding: 0.55em 0.7em;
	background: #f0f6e8;
	border: 1px solid #a3b18a;
}
.ocr-apply-preview-list {
	margin: 0.35em 0 0;
	padding-left: 1.2em;
}
.ocr-apply-preview-list li {
	margin: 0.2em 0;
}
.ocr-advanced {
	margin: 0.75em 0;
	padding: 0.4em 0.55em;
	border: 1px dashed #a2a9b1;
	background: #f8f9fa;
}
.ocr-advanced > summary {
	cursor: pointer;
	font-weight: 600;
}
.ocr-advanced-body {
	margin-top: 0.5em;
}
.ocr-advanced-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em;
	margin-top: 0.5em;
}
.ocr-person-card {
	margin: 0.75em 0;
	padding: 0.65em 0.75em;
	border: 1px solid #c8ccd1;
	background: #fff;
	border-radius: 2px;
}
.ocr-roster-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	font-size: 95%;
	margin: 0.35em 0 0.75em;
}
.ocr-roster-table th {
	text-align: left;
	background: #3f4a3c;
	color: #fff;
	padding: 0.45em 0.55em;
	font-weight: 600;
}
.ocr-roster-table td {
	vertical-align: top;
	padding: 0.55em 0.6em;
	border-bottom: 1px solid #eaecf0;
}
.ocr-roster-table tr.ocr-person-card {
	margin: 0;
	padding: 0;
	border: 0;
	border-left: 4px solid #c8ccd1;
	border-radius: 0;
	background: #fff;
}
.ocr-roster-table tr.ocr-person-matched {
	border-left: 4px solid #14866d;
}
.ocr-roster-table tr.ocr-person-unresolved {
	border-left: 4px solid #fc3;
	background: #fffdf5;
}
.ocr-roster-table tr.ocr-person-done {
	opacity: 1;
	background: #f8f9fa;
	border-left-color: #a2a9b1;
}
.ocr-roster-table .ocr-group-heading-row td {
	background: #ece6da;
	font-weight: 600;
	border-bottom: 1px solid #c8ccd1;
	padding-top: 0.75em;
}
.ocr-col-do {
	width: 4.2em;
	white-space: nowrap;
	text-align: center;
}
.ocr-scan-name {
	font-weight: 600;
	font-size: 1.05em;
}
.ocr-scan-bits {
	margin-top: 0.2em;
	font-size: 85%;
	color: #72777d;
}
.ocr-wiki-page-name {
	display: block;
	font-weight: 600;
	margin-bottom: 0.2em;
}
.ocr-wiki-missing {
	color: #6b4c00;
}
.ocr-fact-store {
	display: none;
}
.ocr-row-outcome {
	font-size: 95%;
	line-height: 1.35;
}
.ocr-outcome-write {
	background: #eaf5f0;
	border: 1px solid #14866d;
	padding: 0.4em 0.55em;
}
.ocr-outcome-unmatched {
	background: #fff8e0;
	border: 1px solid #fc3;
	padding: 0.4em 0.55em;
}
.ocr-outcome-skip,
.ocr-outcome-idle {
	color: #54595d;
}
.ocr-row-write-list {
	margin: 0;
	padding-left: 1.15em;
}
.ocr-outcome-banner {
	margin: 0 0 0.75em;
	padding: 0.65em 0.8em;
	background: #eaf3ff;
	border: 1px solid #a2b7d2;
}
.ocr-outcome-banner strong {
	display: block;
	margin-bottom: 0.2em;
}
.ocr-preview-person {
	margin: 0.35em 0;
}
.ocr-preview-person > ul {
	margin: 0.15em 0 0.35em 1.2em;
}
.ocr-preview-count {
	margin: 0.35em 0 0.15em;
	font-weight: 600;
}
.ocr-person-matched {
	border-left: 4px solid #14866d;
}
.ocr-person-unresolved {
	border-left: 4px solid #fc3;
	background: #fffdf5;
}
.ocr-group-heading {
	margin: 1.1em 0 0.4em;
	font-size: 1.05em;
	border-bottom: 1px solid #c8ccd1;
	padding-bottom: 0.2em;
}
.ocr-card-step {
	font-size: 80%;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #72777d;
	margin-bottom: 0.35em;
}
.ocr-card-who,
.ocr-card-match,
.ocr-card-update {
	margin: 0.55em 0;
	padding: 0.45em 0.55em;
	background: #f8f9fa;
	border: 1px solid #eaecf0;
}
.ocr-card-who-label {
	font-size: 80%;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #54595d;
	margin-bottom: 0.25em;
}
.ocr-card-hint {
	margin: 0.35em 0 0;
	font-size: 85%;
	color: #72777d;
}
.ocr-include-row {
	display: flex;
	align-items: flex-start;
	gap: 0.4em;
	margin: 0.35em 0;
	font-size: 95%;
	line-height: 1.35;
}
.ocr-person-done {
	opacity: 0.88;
	border-left-color: #a2a9b1;
}
.ocr-fact-primary .ocr-change-line {
	font-weight: 500;
}
.ocr-card-name {
	font-weight: 600;
	font-size: 1.05em;
}
.ocr-card-meta,
.ocr-match-status {
	font-size: 90%;
	color: #54595d;
	width: 100%;
}
.ocr-card-match {
	margin: 0.35em 0 0.5em;
}
.ocr-suggest {
	display: flex;
	flex-direction: column;
	gap: 0.15em;
	margin: 0.25em 0 0.4em;
	max-width: 100%;
	border: 1px solid #a2a9b1;
	background: #fff;
	padding: 0.25em;
}
.ocr-suggest-item {
	display: block;
	width: 100%;
	text-align: left;
	border: 0;
	background: transparent;
	padding: 0.3em 0.4em;
	cursor: pointer;
}
.ocr-suggest-item:hover {
	background: #eaecf0;
}
.ocr-card-changes {
	margin-top: 0.25em;
}
.ocr-card-more {
	margin-top: 0.45em;
	font-size: 90%;
}
.ocr-apply-success .ocr-apply-links {
	margin: 0.5em 0;
	padding-left: 1.2em;
}
.ocr-apply-success .ocr-apply-links li {
	margin: 0.35em 0;
}
.ocr-queue-item {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	align-items: flex-start;
}
.ocr-queue-thumb {
	width: 56px;
	height: 56px;
	object-fit: cover;
	border: 1px solid #ccc;
	background: #fff;
	flex: 0 0 auto;
}
.ocr-queue-meta {
	flex: 1 1 12em;
	min-width: 0;
}
.ocr-progress-wrap {
	height: 8px;
	background: #eaecf0;
	border: 1px solid #a2a9b1;
	border-radius: 2px;
	overflow: hidden;
	margin: 0.4em 0 0.6em;
	max-width: 28em;
}
.ocr-progress-bar {
	height: 100%;
	width: 0;
	background: #3366cc;
	transition: width 0.3s ease;
}
.ocr-page-picker {
	display: flex;
	flex-direction: column;
	gap: 0.5em;
}
.ocr-page-item {
	display: block;
	font-size: 90%;
	background: #fff;
	border: 1px solid #ccc;
	padding: 0.35em;
}
.ocr-page-item img {
	display: block;
	max-width: 100%;
	height: auto;
	margin-bottom: 0.25em;
}
.ocr-fact-group {
	margin: 0.6em 0 0.9em;
}
.ocr-fact-group h4 {
	margin: 0 0 0.35em;
	font-size: 1em;
}
.ocr-fact-already {
	opacity: 0.78;
	background: #f3f4f5;
}
.ocr-identity-banner {
	margin: 0.5em 0;
	padding: 0.5em 0.65em;
	border: 1px solid #a2a9b1;
	background: #f8f9fa;
	font-size: 95%;
}
.ocr-identity-warn {
	border-color: #fc3;
	background: #fff8e0;
}
.ocr-identity-ok {
	border-color: #14866d;
	background: #eaf5f0;
}
.ocr-doc-type,
.ocr-gallery-caption {
	display: block;
	margin: 0.35em 0;
}
.ocr-gallery-caption {
	width: 100%;
	box-sizing: border-box;
}
.ocr-force-identity {
	display: block;
	margin-top: 0.4em;
	color: #6b4c00;
}
.ocr-people-summary {
	margin: 0.4em 0;
	padding: 0.45em 0.6em;
	background: #eaf3ff;
	border: 1px solid #a2b7d2;
	font-size: 95%;
}
.ocr-multi-toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em;
	margin: 0.4em 0 0.6em;
}
.ocr-person-title,
.ocr-match-pick {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	margin: 0.25em 0 0.5em;
}
.ocr-queue-list {
	list-style: none;
	margin: 0.5em 0;
	padding: 0;
}
.ocr-queue-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	margin: 0.4em 0 0.6em;
	font-size: 0.92em;
}
.ocr-queue-filters label {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	cursor: pointer;
}
.ocr-queue-clear {
	margin: 0 0 0.65em;
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	align-items: center;
}
.ocr-force-multi-upload {
	display: block;
	margin: 0.45em 0 0.6em;
	font-size: 0.92em;
}
.ocr-queue-list li {
	margin: 0.35em 0;
	padding: 0.4em 0.5em;
	background: #fff;
	border: 1px solid #ddd;
}

/* Legacy person-group class kept for older cached markup */
.ocr-person-group {
	margin: 0.75em 0;
	padding: 0.5em 0.65em;
	border: 1px solid #c8ccd1;
	background: #fff;
}
.ocr-person-group h4 {
	margin: 0 0 0.35em;
	font-size: 1em;
}

.soldier-facts-box {
	margin: 0.35em 0 0.85em;
	padding: 0.6em 1em;
	background: #f8f9fa;
	border: 1px solid #a2a9b1;
	max-width: none;
	width: 100%;
	box-sizing: border-box;
	clear: both;
}

.soldier-facts-box > p {
	margin: 0;
	line-height: 1.6;
}

.soldier-summary-bar {
	margin: 0.85em 0 0 !important;
	padding-top: 0.75em;
	border-top: 1px solid #c8ccd1;
}

.soldier-facts-toggle {
	background: #3366cc;
	color: #fff;
	border: 1px solid #3366cc;
	border-radius: 2px;
	padding: 0.15em 0.5em;
	cursor: pointer;
	font-size: inherit;
}

.soldier-facts-toggle:hover {
	background: #2a4b8d;
}

.soldier-facts-panel {
	margin-top: 0.75em;
}

.soldier-facts-identity {
	font-weight: bold;
	margin: 0 0 0.75em;
}

.soldier-facts-group {
	border: 0;
	margin: 0 0 0.75em;
	padding: 0;
}

.soldier-facts-group legend {
	font-weight: bold;
	padding: 0;
	margin-bottom: 0.35em;
}

.soldier-facts-field {
	margin: 0.35em 0;
}

.soldier-facts-field label {
	display: block;
	font-size: 95%;
	margin-bottom: 0.15em;
}

.soldier-facts-input {
	width: 100%;
	max-width: 28em;
	box-sizing: border-box;
}

.soldier-facts-actions {
	margin-top: 0.5em;
}

.soldier-facts-cancel {
	margin-left: 0.35em;
}

.soldier-lead {
	margin: 0 0 1em 0;
}

.soldier-summary-toggle {
	background: #f8f9fa;
	color: #202122;
	border: 1px solid #a2a9b1;
	border-radius: 2px;
	padding: 0.15em 0.5em;
	cursor: pointer;
	font-size: inherit;
}

.soldier-summary-panel {
	margin-top: 0.75em;
}

.soldier-summary-hint {
	margin: 0 0 0.5em;
	font-size: 95%;
	color: #54595d;
}

.soldier-summary-text {
	width: 100%;
	box-sizing: border-box;
	min-height: 8em;
	font: inherit;
}

.soldier-summary-status {
	margin: 0.5em 0 0;
	font-size: 95%;
}

/* The Stories — photo galleries and captions */
.story-gallery {
	display: flex;
	flex-wrap: wrap;
	gap: 1em 1.25em;
	margin: 0.75em auto 1.25em;
	align-items: flex-start;
	justify-content: center;
}
.story-gallery-item {
	flex: 0 1 16em;
	max-width: 18em;
	text-align: center;
}
.story-gallery-item img,
.story-gallery-item .mw-file-element,
.story-figure img,
.story-figure .mw-file-element {
	display: block;
	margin: 0 auto;
	max-width: 100%;
	max-height: 20em;
	width: auto;
	height: auto;
	object-fit: contain;
}
.story-figure {
	margin: 0.75em auto 1.1em;
	text-align: center;
	max-width: 22em;
}
.story-caption {
	font-size: 92%;
	line-height: 1.35;
	margin: 0.35em 0 0;
	color: #444;
}

/* Notable Ritchie Boys — slide-style portrait cards */
.notable-slides {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(14em, 1fr));
	gap: 1.15em 1em;
	margin: 1em 0 1.5em;
	align-items: start;
}

.notable-slide-card {
	border: 1px solid #a2a9b1;
	background: #f8f9fa;
	padding: 0.65em 0.7em 0.75em;
	text-align: center;
}

.notable-slide-photo {
	margin: 0 0 0.55em;
	line-height: 0;
}

.notable-slide-photo img,
.notable-slide-photo .mw-file-element {
	display: block;
	margin: 0 auto;
	max-width: 100%;
	height: auto;
}

.notable-slide-nophoto {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 8em;
	background: #eaecf0;
	color: #54595d;
	font-size: 90%;
}

.notable-slide-name {
	font-weight: bold;
	font-size: 105%;
	line-height: 1.3;
	margin: 0 0 0.25em;
}

.notable-slide-meta {
	font-size: 90%;
	color: #54595d;
	margin: 0 0 0.35em;
}

.notable-slide-body ul {
	margin: 0.35em 0 0;
	padding-left: 1.2em;
	text-align: left;
	font-size: 92%;
	line-height: 1.35;
}

.notable-slide-body li {
	margin: 0.15em 0;
}

/* Soldier profile — compact photo gallery (not infobox-style thumbs).
   Stay in the text column beside the infobox; clearing created empty voids. */
.soldier-gallery {
	margin: 0.5em 0 1em;
	clear: none;
	overflow: auto;
	width: auto;
	max-width: 100%;
	box-sizing: border-box;
}
.soldier-gallery ul.gallery,
.soldier-gallery .gallery {
	margin: 0;
	padding: 0;
	width: 100%;
}
.soldier-gallery .gallerybox {
	margin: 0.15em;
}
.soldier-gallery .thumb,
.soldier-gallery .gallerybox .thumb {
	border: none;
	background: transparent;
}
.soldier-gallery .gallerytext {
	font-size: 88%;
	line-height: 1.3;
	text-align: center;
	padding: 0.25em 0.35em 0.5em;
	max-width: 12em;
	margin: 0 auto;
	color: #333;
}

/* Wide By The Numbers tables (many specialty columns) */
.rb-wide-table {
	overflow-x: auto;
	max-width: 100%;
	margin: 0.8em 0 1.2em 0;
}
.rb-wide-table .wikitable {
	margin: 0;
}

/* By The Numbers showcase hub (v4) */
.mw-parser-output .rb-numbers-stat-grid,
.mw-parser-output .rb-numbers-link-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(12em, 1fr));
	gap: 0.85em;
	margin: 1em 0 1.1em 0;
}
.mw-parser-output .rb-numbers-stat,
.mw-parser-output .rb-numbers-link-card {
	background: #f7f4ee !important;
	border: 1px solid #c3b7a4 !important;
	border-top: 4px solid #3f4a3c !important;
	padding: 0.95em 1em 1.05em !important;
	box-sizing: border-box;
}
.mw-parser-output .rb-numbers-stat {
	text-align: center;
}
.mw-parser-output .rb-numbers-stat-num {
	display: block;
	font-size: 2.2em !important;
	font-weight: 700 !important;
	line-height: 1.1;
	color: #3f4a3c !important;
	letter-spacing: -0.02em;
}
.mw-parser-output .rb-numbers-stat-label {
	margin-top: 0.4em;
	font-size: 95%;
	font-weight: 600;
	line-height: 1.3;
}
.mw-parser-output .rb-numbers-stat-note,
.mw-parser-output .rb-numbers-link-desc {
	margin-top: 0.35em;
	font-size: 84%;
	line-height: 1.35;
	color: #555;
}
.mw-parser-output .rb-numbers-link-card > a {
	font-weight: 600;
	font-size: 1.02em;
}


/* Photos page: Google Drive album embed */
.drive-folder-embed {
	margin: 1em 0 1.5em;
	width: 100%;
	max-width: 100%;
	background: #f8f9fa;
	border: 1px solid #c8ccd1;
	box-sizing: border-box;
}

.drive-folder-frame {
	display: block;
	width: 100%;
	height: min(75vh, 900px);
	min-height: 520px;
	border: 0;
	background: #fff;
}

.drive-folder-fallback {
	margin: 0.75em 1em;
	font-size: 95%;
}

.rb-search-empty-help {
	margin: 0.75em 0 1.25em;
	padding: 0.85rem 1rem;
	border-left: 4px solid #6b3a2a;
	background: linear-gradient(90deg, rgba(107,58,42,0.08), transparent);
	max-width: 42rem;
}
.rb-search-empty-help ul {
	margin: 0.4em 0 0.5em 1.2em;
}

.photos-featured {
	margin: 0.75em 0 1.25em;
}

/* The Stories → soldier profile hub card */
.story-soldier-hub {
	margin: 0.35em 0 1.25em;
	padding: 0.85em 1em;
	border: 1px solid #c8ccd1;
	background: #f8f9fa;
}
.story-soldier-hub-inner {
	display: flex;
	flex-wrap: wrap;
	gap: 0.85em 1.1em;
	align-items: flex-start;
}
.story-soldier-hub-photo {
	flex: 0 0 auto;
}
.story-soldier-hub-photo img,
.story-soldier-hub-photo .mw-file-element {
	display: block;
	width: 140px;
	height: 180px;
	object-fit: cover;
	object-position: center top;
}
.story-soldier-hub-body {
	flex: 1 1 14em;
	min-width: 12em;
}
.story-soldier-hub-kicker {
	font-size: 85%;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #54595d;
	margin-bottom: 0.2em;
}
.story-soldier-hub-name {
	font-size: 1.25em;
	font-weight: 600;
	line-height: 1.25;
}
.story-soldier-hub-dates {
	margin-top: 0.25em;
	color: #202122;
}
.story-soldier-hub-blurb {
	margin-top: 0.45em;
	font-size: 95%;
}
.story-soldier-hub-cta {
	margin-top: 0.55em;
	font-size: 92%;
	color: #54595d;
}

/* Profile → Stories cue */
.soldier-story-cue {
	margin: 0.65em 0 1em;
	padding: 0.55em 0.75em;
	border-left: 3px solid #2a4b7c;
	background: #f4f7fb;
	font-size: 97%;
}
.soldier-story-cue-label {
	font-weight: 600;
	margin-right: 0.25em;
}

/* Same-team rail (team roster samples only; not classmates) */
.soldier-related {
	margin: 1em 0 1.35em;
	padding: 0.75em 0.9em;
	border: 1px solid #c8ccd1;
	background: #fbfbfb;
	clear: both;
}
.soldier-related-heading {
	font-weight: 600;
	font-size: 1.05em;
	margin: 0 0 0.55em;
}
.soldier-related-block + .soldier-related-block {
	margin-top: 0.65em;
}
.soldier-related-label {
	font-size: 92%;
	font-weight: 600;
	color: #54595d;
	margin-bottom: 0.2em;
}
.soldier-related-links {
	font-size: 95%;
	line-height: 1.45;
}
.soldier-related-note {
	margin-top: 0.75em;
	font-size: 88%;
	color: #54595d;
	line-height: 1.4;
}

/* Contact Us: Google Form embed */
.google-form-embed {
	margin: 1em 0 1.5em;
	width: 100%;
	max-width: 100%;
	background: #f8f9fa;
	border: 1px solid #c8ccd1;
	box-sizing: border-box;
}

.google-form-frame {
	display: block;
	width: 100%;
	height: min(90vh, 1500px);
	min-height: 1100px;
	border: 0;
	background: #fff;
}

.google-form-fallback {
	margin: 0.75em 1em;
	font-size: 95%;
}

/* Interview / documentary YouTube watchlist */
.yt-watch-index {
	margin: 0.75em 0 1.25em;
}
.yt-interview {
	margin: 0 0 1.6em;
	padding: 0.85em 1em 1em;
	border: 1px solid #c8ccd1;
	background: #fbfcfd;
}
.yt-embed {
	position: relative;
	margin: 0.75em 0 0.5em;
	max-width: 640px;
	background: #111;
}
.yt-embed-poster,
.yt-embed.yt-embed-playing {
	aspect-ratio: 16 / 9;
	width: 100%;
	background: #111;
}
.yt-embed-poster {
	position: relative;
	cursor: pointer;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: #111;
}
.yt-embed-thumb {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.yt-embed-play {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	display: flex;
	align-items: center;
	gap: 0.45em;
	padding: 0.4em 0.85em 0.4em 0.55em;
	border: 0;
	border-radius: 4px;
	background: #cc0000;
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.yt-embed-play-icon {
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 8px 0 8px 14px;
	border-color: transparent transparent transparent #fff;
}
.yt-embed-playing {
	background: #000;
}
.yt-embed-frame {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}
.yt-embed-fallback {
	margin: 0.5em 0 0;
	font-size: 95%;
}
.yt-interview-next {
	margin-top: 0.75em;
	padding-top: 0.55em;
	border-top: 1px solid #eaecf0;
	font-size: 95%;
}
.yt-interview-next-label {
	font-weight: 600;
	margin-bottom: 0.2em;
}
.yt-interview-next-list {
	margin: 0.15em 0 0 1.2em;
	padding: 0;
}
.yt-interview-next-why {
	color: #54595d;
	font-size: 92%;
}

/* SoundCloud audio embeds (interview watchlist) */
.sc-embed {
	position: relative;
	margin: 0.75em 0 0.5em;
	max-width: 640px;
	background: #1a1a1a;
}
.sc-embed-poster,
.sc-embed.sc-embed-playing {
	aspect-ratio: 16 / 9;
	width: 100%;
	background: linear-gradient(145deg, #2b2b2b 0%, #111 55%, #3a1a0a 100%);
}
.sc-embed-poster {
	position: relative;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	border: 0;
}
.sc-embed-play {
	display: flex;
	align-items: center;
	gap: 0.45em;
	padding: 0.45em 0.9em 0.45em 0.6em;
	border: 0;
	border-radius: 4px;
	background: #ff5500;
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.sc-embed-play-icon {
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 8px 0 8px 14px;
	border-color: transparent transparent transparent #fff;
}
.sc-embed-playing {
	background: #111;
}
.sc-embed-frame {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}
.sc-embed-fallback {
	margin: 0.5em 0 0;
	font-size: 95%;
}

/* Aviary (Milken Archive et al.) audio/video embeds */
.aviary-embed {
	position: relative;
	margin: 0.75em 0 0.5em;
	max-width: 720px;
	background: #1a1a1a;
}
.aviary-embed-poster,
.aviary-embed.aviary-embed-playing {
	aspect-ratio: 16 / 10;
	width: 100%;
	background: linear-gradient(145deg, #1e2a3a 0%, #111820 55%, #0a2030 100%);
}
.aviary-embed-poster {
	position: relative;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	border: 0;
}
.aviary-embed-play {
	display: flex;
	align-items: center;
	gap: 0.45em;
	padding: 0.45em 0.9em 0.45em 0.6em;
	border: 0;
	border-radius: 4px;
	background: #2f6fed;
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.aviary-embed-play-icon {
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 8px 0 8px 14px;
	border-color: transparent transparent transparent #fff;
}
.aviary-embed-playing {
	background: #111;
}
.aviary-embed-frame {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}
.aviary-embed-fallback {
	margin: 0.5em 0 0;
	font-size: 95%;
}

/* Internet Archive embeds (Yiddish Book Center oral histories et al.) */
.ia-embed {
	position: relative;
	margin: 0.75em 0 0.5em;
	max-width: 720px;
	background: #1a1a1a;
}
.ia-embed-poster,
.ia-embed.ia-embed-playing {
	aspect-ratio: 16 / 9;
	width: 100%;
	background: linear-gradient(145deg, #2b2b2b 0%, #111 55%, #1a2a3a 100%);
}
.ia-embed-poster {
	position: relative;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	border: 0;
}
.ia-embed-play {
	display: flex;
	align-items: center;
	gap: 0.45em;
	padding: 0.45em 0.9em 0.45em 0.6em;
	border: 0;
	border-radius: 4px;
	background: #2c5aa0;
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.ia-embed-play-icon {
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 8px 0 8px 14px;
	border-color: transparent transparent transparent #fff;
}
.ia-embed-playing {
	background: #111;
}
.ia-embed-frame {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}
.ia-embed-fallback {
	margin: 0.5em 0 0;
	font-size: 95%;
}

.soldier-media-cue {
	margin: 0.65em 0 1em;
}
.soldier-interview-cue,
.soldier-film-cue {
	margin: 0 0 0.45em;
	padding: 0.55em 0.75em;
	border-left: 3px solid #7a3e12;
	background: #faf6f1;
	font-size: 97%;
}
.soldier-film-cue {
	border-left-color: #2a4b7c;
	background: #f4f7fb;
}
.soldier-interview-cue-label,
.soldier-film-cue-label {
	font-weight: 600;
	margin-right: 0.25em;
}

/* Premise strip + books filters + family needs */
.home-premise {
  max-width: 42rem;
  margin: 0.75rem 0 1.25rem;
  padding: 0.85rem 1rem;
  border-left: 4px solid #6b3a2a;
  background: linear-gradient(90deg, rgba(107,58,42,0.08), transparent);
}
.home-premise-title {
  font-weight: 700;
  font-size: 1.05rem;
  margin-bottom: 0.35rem;
}
.home-premise-links {
  margin: 0.5rem 0 0;
  font-size: 0.95rem;
}
.books-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.75rem 0 1rem;
}
.books-filter {
  border: 1px solid #bbb;
  background: #f7f7f7;
  padding: 0.35rem 0.7rem;
  cursor: pointer;
  font: inherit;
}
.books-filter.is-active {
  background: #6b3a2a;
  color: #fff;
  border-color: #6b3a2a;
}
.notable-slide-card.is-book-hidden {
  display: none !important;
}
.soldier-related-media {
  margin: 0.5rem 0 0.85rem;
}
.class-story {
  margin: 0.6rem 0 0.9rem;
  padding: 0.5rem 0.75rem;
  background: #f3f0ea;
  border-left: 3px solid #6b3a2a;
}
.soldier-related-media-title {
  font-weight: 700;
  margin-bottom: 0.25rem;
}