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
No edit summary
Styles for Internet Archive interview embeds
 
(8 intermediate revisions by the same user not shown)
Line 196: Line 196:
}
}


/* Find-a-soldier: keep a normal-sized field on phones (not full bleed) */
/* Find-a-soldier: compact field on phones (never a tall flex-grown square) */
.skin-minerva .home-find {
.skin-minerva .home-find {
max-width: 22em !important;
max-width: 22em !important;
Line 205: Line 205:
}
}
.skin-minerva .home-find-row {
.skin-minerva .home-find-row {
display: flex;
display: flex !important;
flex-wrap: wrap;
flex-direction: row !important;
flex-wrap: nowrap !important;
gap: 0.4em;
gap: 0.4em;
align-items: center;
align-items: center !important;
}
}
.skin-minerva .home-find-suggest-wrap {
.skin-minerva .home-find-suggest-wrap {
flex: 1 1 auto;
flex: 1 1 auto;
min-width: 0;
min-width: 0;
max-width: 14em;
max-width: none;
width: 100%;
}
}
.skin-minerva .home-find-input,
.skin-minerva .home-find-input,
Line 220: Line 222:
.skin-minerva .home-find input[type="search"],
.skin-minerva .home-find input[type="search"],
.skin-minerva .home-find input[type="text"] {
.skin-minerva .home-find input[type="text"] {
width: 100% !important;
flex: 1 1 auto !important;
max-width: 14em !important;
width: auto !important;
min-width: 0 !important;
min-width: 0 !important;
flex: 0 1 14em !important;
max-width: none !important;
box-sizing: border-box;
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 {
.skin-minerva .home-find-button {
flex: 0 0 auto;
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;
}
}


.hatnote,
/* Hide find-a-soldier noscript fallback when JS will build the real form (Mobile polish cachebust) */
.hatnote.unconfirmed-banner,
.client-js .home-find-fallback {
.unconfirmed-banner {
display: none;
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 {
/* Soldier edit strip: keep tools, drop long help copy on phones */
color: #54595d;
.skin-minerva .soldier-facts-box {
padding-left: 0;
margin: 0.25em 0 0.55em !important;
margin: 0 0 0.5em 0;
padding: 0.45em 0.65em !important;
max-width: none;
background: transparent !important;
border: none !important;
border-bottom: 1px solid #eaecf0 !important;
max-width: 100% !important;
}
}
 
.skin-minerva .soldier-facts-intro,
.hatnote.source-confidence-cue,
.skin-minerva .soldier-summary-bar {
.source-confidence-cue {
display: flex;
color: #54595d;
flex-wrap: wrap;
padding-left: 0;
gap: 0.35em 0.5em;
margin: 0;
align-items: center;
max-width: none;
font-size: 90%;
line-height: 1.35;
}
}
 
.skin-minerva .soldier-facts-label,
.soldier-page-footer-notes {
.skin-minerva .soldier-facts-help,
clear: both;
.skin-minerva .soldier-summary-help {
margin: 1.5em 0 0.75em 0;
display: none !important;
padding: 0.75em 0 0 0;
border-top: 1px solid #c8ccd1;
font-size: 92%;
line-height: 1.45;
}
}
 
.skin-minerva .soldier-summary-bar {
.soldier-page-footer-notes .hatnote {
margin: 0.4em 0 0 !important;
margin-bottom: 0.45em;
padding-top: 0.4em !important;
border-top: 1px solid #eaecf0 !important;
}
}
 
.skin-minerva .soldier-facts-toggle,
.soldier-page-footer-notes .hatnote:last-child {
.skin-minerva .soldier-summary-toggle {
margin-bottom: 0;
font-size: 90%;
padding: 0.3em 0.55em;
}
}


/* Hide until Common.js moves these into .soldier-page-footer-notes (keeps the lead clear). */
/* Wide tables: swipe sideways instead of blowing out the page */
.mw-parser-output > .research-notes-disclaimer,
.skin-minerva .mw-parser-output .wikitable,
.mw-parser-output > .source-confidence-cue,
.skin-minerva .mw-parser-output table.cargoTable,
.mw-parser-output > .hatnote.research-notes-disclaimer,
.skin-minerva .mw-parser-output .rb-wide-table,
.mw-parser-output > .hatnote.source-confidence-cue {
.skin-minerva .mw-parser-output .jquery-tablesorter {
display: none;
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 */
* Blank lines after the Soldier template / between hatnotes become <p><br></p> and sit
.skin-minerva .drive-folder-frame {
* beside the floated infobox as a tall empty column. Collapse them so the lead
min-height: 220px !important;
* starts at the top next to the infobox.
height: 42vh !important;
*/
max-height: 380px !important;
.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),
.skin-minerva .google-form-frame {
.mw-parser-output:has(> table.soldier-infobox) > p:empty,
min-height: 260px !important;
.mw-parser-output:has(> table.infobox.soldier-infobox) > p:empty {
height: 52vh !important;
display: none;
max-height: 480px !important;
margin: 0;
padding: 0;
height: 0;
line-height: 0;
overflow: hidden;
}
}
 
.skin-minerva .drive-folder-fallback,
.mw-parser-output:has(> table.soldier-infobox) > .soldier-lead,
.skin-minerva .google-form-fallback {
.mw-parser-output:has(> table.infobox.soldier-infobox) > .soldier-lead {
font-size: 95%;
margin-top: 0;
margin: 0.5em 0.75em;
}
}


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


/* Wikipedia-style award ribbon rack in the main article column */
.hatnote,
.soldier-awards-section {
.hatnote.unconfirmed-banner,
clear: both;
.unconfirmed-banner {
margin: 1em 0 1.25em 0;
background: transparent;
max-width: 100%;
border: none;
padding: 0 0 0.5em 1.6em;
margin: 0 0 0.6em 0;
font-style: italic;
color: #202122;
}
}


.soldier-awards-heading {
.hatnote.research-notes-disclaimer {
font-family: inherit;
color: #54595d;
font-size: 1.5em;
padding-left: 0;
font-weight: bold;
margin: 0 0 0.5em 0;
border-bottom: 1px solid #a2a9b1;
max-width: none;
margin: 1em 0 0.5em 0;
}
padding-bottom: 0.15em;
line-height: 1.3;
}


.soldier-awards-list {
.hatnote.source-confidence-cue,
margin: 0.75em 0 0.25em 0;
.source-confidence-cue {
color: #54595d;
padding-left: 0;
margin: 0;
max-width: none;
max-width: none;
}
}


.soldier-awards-list ul,
.soldier-page-footer-notes {
.soldier-awards-section ul {
clear: both;
margin: 0.4em 0 0.4em 1.6em;
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;
}
}


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


/* Ribbon rack: tiny gaps like Wikipedia (border-spacing 2px + 1px cell pad) */
.soldier-page-footer-notes .hatnote:last-child {
.soldier-awards-section .soldier-ribbon-rack,
margin-bottom: 0;
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 {
/* Hide until Common.js moves these into .soldier-page-footer-notes (keeps the lead clear). */
margin-top: 0.75em;
.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;
}
}


/* Separate tables per row — mirror Wikipedia's ~4px row gap */
/*
.soldier-awards-section > table.soldier-ribbon-rack + table.soldier-ribbon-rack {
* Blank lines after the Soldier template / between hatnotes become <p><br></p> and sit
margin-top: 2px;
* beside the floated infobox as a tall empty column. Collapse them so the lead
}
* starts at the top next to the infobox.
 
*/
table.soldier-ribbon-rack,
.mw-parser-output:has(> table.soldier-infobox) > p:has(> br:only-child),
table.soldier-ribbon-rack > tbody > tr > td,
.mw-parser-output:has(> table.infobox.soldier-infobox) > p:has(> br:only-child),
table.soldier-ribbon-rack > tr > td {
.mw-parser-output:has(> table.soldier-infobox) > p:empty,
border: none !important;
.mw-parser-output:has(> table.infobox.soldier-infobox) > p:empty {
background: transparent !important;
display: none;
padding: 1px !important;
margin: 0;
text-align: center;
padding: 0;
vertical-align: middle;
height: 0;
line-height: 0;
line-height: 0;
overflow: hidden;
}
}


table.soldier-ribbon-rack img,
.mw-parser-output:has(> table.soldier-infobox) > .soldier-lead,
table.soldier-ribbon-rack .mw-file-element {
.mw-parser-output:has(> table.infobox.soldier-infobox) > .soldier-lead {
display: block;
margin-top: 0;
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 */
.soldier-research-notes {
table.soldier-ribbon-rack.soldier-awards-labeled {
display: none;
table-layout: fixed;
line-height: normal;
margin-bottom: 0.35em;
}
}


table.soldier-ribbon-rack.soldier-awards-labeled > tbody > tr > td,
/* Wikipedia-style award ribbon rack in the main article column */
table.soldier-ribbon-rack.soldier-awards-labeled > tr > td {
.soldier-awards-section {
width: 118px;
clear: both;
max-width: 118px;
margin: 1em 0 1.25em 0;
vertical-align: top;
max-width: 100%;
}
}


table.soldier-ribbon-rack.soldier-awards-labeled td.soldier-award-caption {
.soldier-awards-heading {
line-height: 1.35 !important;
font-family: inherit;
font-size: 95%;
font-size: 1.5em;
padding: 0.4em 0.45em !important;
font-weight: bold;
text-align: center;
border-bottom: 1px solid #a2a9b1;
vertical-align: middle;
margin: 1em 0 0.5em 0;
white-space: normal;
padding-bottom: 0.15em;
overflow-wrap: break-word;
line-height: 1.3;
word-break: normal;
}
border: 1px solid #a2a9b1 !important;
 
background: #f8f9fa !important;
.soldier-awards-list {
margin: 0.75em 0 0.25em 0;
max-width: none;
}
}


/* Match en.wikipedia awards wikitable: auto column widths from content
.soldier-awards-list ul,
  (long names get more space), centered, no artificial skinny max-width */
.soldier-awards-section ul {
table.soldier-awards-grid {
margin: 0.4em 0 0.4em 1.6em;
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,
/* Keep extra award notes on one line (e.g. Chafee statue sentence) */
table.soldier-awards-grid td {
.soldier-awards-list li {
border: 1px solid #a2a9b1;
white-space: nowrap;
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 {
/* Ribbon rack: tiny gaps like Wikipedia (border-spacing 2px + 1px cell pad) */
border: 1px solid #a2a9b1;
.soldier-awards-section .soldier-ribbon-rack,
background: #f8f9fa;
table.soldier-ribbon-rack {
padding: 0.7em 0.9em;
margin: 0 auto;
margin: 0.8em 0 1em 0;
border-collapse: separate;
font-size: 92%;
border-spacing: 2px;
line-height: 1.45;
background: transparent;
max-width: none;
border: none;
color: #202122;
width: max-content;
max-width: 100%;
line-height: 0;
}
}


.home-lead {
.soldier-awards-section > table.soldier-ribbon-rack:first-of-type {
max-width: none;
margin-top: 0.75em;
font-size: 1.05em;
margin-bottom: 1em;
}
}


.page-lead {
/* Separate tables per row — mirror Wikipedia's ~4px row gap */
max-width: none;
.soldier-awards-section > table.soldier-ribbon-rack + table.soldier-ribbon-rack {
font-size: 1.05em;
margin-top: 2px;
margin: 0 0 1em 0;
line-height: 1.5;
}
}


.home-find {
table.soldier-ribbon-rack,
margin: 0 0 1.25em 0;
table.soldier-ribbon-rack > tbody > tr > td,
padding: 0.85em 1em;
table.soldier-ribbon-rack > tr > td {
background: #f8f9fa;
border: none !important;
border: 1px solid #a2a9b1;
background: transparent !important;
max-width: 36em;
padding: 1px !important;
text-align: center;
vertical-align: middle;
line-height: 0;
}
}


.home-find-title {
table.soldier-ribbon-rack img,
font-weight: bold;
table.soldier-ribbon-rack .mw-file-element {
font-size: 1.1em;
display: block;
margin: 0 0 0.45em 0;
max-width: 106px;
height: auto;
vertical-align: top;
margin: 0 auto;
}
}


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


.home-find-row {
table.soldier-ribbon-rack.soldier-awards-labeled > tbody > tr > td,
display: flex;
table.soldier-ribbon-rack.soldier-awards-labeled > tr > td {
flex-wrap: wrap;
width: 118px;
gap: 0.4em;
max-width: 118px;
align-items: center;
vertical-align: top;
}
}


.home-find-suggest-wrap {
table.soldier-ribbon-rack.soldier-awards-labeled td.soldier-award-caption {
position: relative;
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;
}
}


.home-find-suggest {
/* Match en.wikipedia awards wikitable: auto column widths from content
position: absolute;
  (long names get more space), centered, no artificial skinny max-width */
left: 0;
table.soldier-awards-grid {
right: 0;
margin: 1em auto;
top: 100%;
border-collapse: collapse;
z-index: 50;
table-layout: auto;
margin: 0.15em 0 0;
width: auto;
padding: 0.2em 0;
max-width: 100%;
list-style: none;
font-size: 95%;
background: #fff;
line-height: 1.4;
border: 1px solid #a2a9b1;
text-align: center;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
max-height: 16em;
overflow-y: auto;
}
}


.home-find-suggest[hidden] {
table.soldier-awards-grid > tbody > tr > td,
display: none !important;
table.soldier-awards-grid td {
}
border: 1px solid #a2a9b1;
 
.home-find-suggest li {
margin: 0;
padding: 0.4em 0.65em;
padding: 0.4em 0.65em;
cursor: pointer;
text-align: center;
font-size: 95%;
vertical-align: middle;
line-height: 1.35;
background: #f8f9fa;
overflow-wrap: break-word;
word-break: normal;
hyphens: manual;
}
}


.home-find-suggest li:hover,
.class-data-disclaimer {
.home-find-suggest li.home-find-suggest-active {
border: 1px solid #a2a9b1;
background: #eaf3ff;
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-find-input {
.home-lead {
flex: 1 1 14em;
max-width: none;
min-width: 12em;
font-size: 1.05em;
padding: 0.35em 0.5em;
margin-bottom: 1em;
font: inherit;
border: 1px solid #a2a9b1;
box-sizing: border-box;
}
}


.home-find-button {
.page-lead {
padding: 0.35em 0.85em;
max-width: none;
font: inherit;
font-size: 1.05em;
cursor: pointer;
margin: 0 0 1em 0;
background: #3366cc;
line-height: 1.5;
color: #fff;
border: 1px solid #3366cc;
}
}


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


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


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


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


.CategoryTreeTag > .CategoryTreeSection {
.home-find-suggest-wrap {
break-inside: avoid;
position: relative;
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
margin: 0.12em 0;
}
}


@media (max-width: 800px) {
.home-find-suggest {
.CategoryTreeTag {
position: absolute;
column-count: 2;
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;
}
}


@media (max-width: 480px) {
.home-find-suggest[hidden] {
.CategoryTreeTag {
display: none !important;
column-count: 1;
}
}
}


.home-hero-photo {
.home-find-suggest li {
margin: 0 0 1.35em 0;
margin: 0;
max-width: 100%;
padding: 0.4em 0.65em;
clear: both;
cursor: pointer;
font-size: 95%;
line-height: 1.35;
}
}


.home-hero-photo img,
.home-find-suggest li:hover,
.home-hero-photo .mw-file-element {
.home-find-suggest li.home-find-suggest-active {
display: block;
background: #eaf3ff;
width: 100%;
max-width: 56em;
height: auto;
}
}


.home-feature-thumbs {
.home-find-input {
display: flex;
flex: 1 1 14em;
flex-wrap: wrap;
min-width: 12em;
gap: 1em 1.25em;
padding: 0.35em 0.5em;
margin: 0.75em 0 0.35em;
font: inherit;
align-items: flex-start;
border: 1px solid #a2a9b1;
box-sizing: border-box;
}
}


.home-feature-thumb {
.home-find-button {
flex: 0 0 150px;
padding: 0.35em 0.85em;
width: 150px;
font: inherit;
text-align: center;
cursor: pointer;
}
background: #3366cc;
color: #fff;
border: 1px solid #3366cc;
}


.home-feature-thumb a {
.home-find-button:hover {
display: block;
background: #2a4b8d;
}
}


.home-feature-thumb img,
.home-find-hint {
.home-feature-thumb .mw-file-element {
margin: 0.55em 0 0;
display: block;
font-size: 95%;
width: 150px;
color: #54595d;
height: 220px;
margin: 0 auto 0.4em;
object-fit: cover;
object-position: center center;
}
}


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


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


.home-book-cover {
.CategoryTreeTag > .CategoryTreeSection {
flex: 0 0 auto;
break-inside: avoid;
-webkit-column-break-inside: avoid;
page-break-inside: avoid;
margin: 0.12em 0;
}
}


.home-book-cover img,
@media (max-width: 800px) {
.home-book-cover .mw-file-element {
.CategoryTreeTag {
display: block;
column-count: 2;
max-width: 140px;
}
height: auto;
}
}


.home-book-text {
@media (max-width: 480px) {
flex: 1 1 16em;
.CategoryTreeTag {
min-width: 12em;
column-count: 1;
line-height: 1.55;
}
}
}


.needs-source,
.home-hero-photo {
.needs-source a {
margin: 0 0 1.35em 0;
font-style: normal;
max-width: 100%;
white-space: nowrap;
clear: both;
}
}


.mw-parser-output > p:first-of-type {
.home-hero-photo img,
margin-top: 0.2em;
.home-hero-photo .mw-file-element {
display: block;
width: 100%;
max-width: 56em;
height: auto;
}
}


@media (max-width: 640px) {
.home-feature-thumbs {
table.infobox,
display: flex;
table.soldier-infobox {
flex-wrap: wrap;
float: none;
gap: 1em 1.25em;
clear: both;
margin: 0.75em 0 0.35em;
width: 100%;
align-items: flex-start;
max-width: 100%;
margin: 0 0 1em 0;
}
.home-find-row {
flex-direction: column;
align-items: stretch;
}
.home-find-input,
.home-find-button {
width: 100%;
box-sizing: border-box;
}
.home-find-button {
margin-top: 0.35em;
}
.soldier-facts-box,
.soldier-facts-panel,
.soldier-summary-panel {
max-width: 100%;
}
.drive-folder-frame {
min-height: 360px;
height: 60vh;
}
.google-form-frame {
min-height: 420px;
height: 70vh;
}
}
}


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


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


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


.soldier-timeline-body {
.home-feature-caption {
clear: both;
font-size: 95%;
padding-top: 0.25em;
line-height: 1.35;
}
}


.soldier-timeline .mw-collapsible-toggle.mw-collapsible-toggle-default {
.home-book {
float: left;
display: flex;
margin-left: 0;
flex-wrap: wrap;
margin-right: 0.5em;
gap: 1em 1.25em;
padding-left: 0;
align-items: flex-start;
margin: 0.75em 0 1.25em;
}
}


/* Compact disclosure in the text column beside the floated infobox.
.home-book-cover {
  clear:both here (and on .soldier-gallery) caused the huge Gallery gaps. */
flex: 0 0 auto;
.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 {
.home-book-cover img,
display: list-item;
.home-book-cover .mw-file-element {
cursor: pointer;
display: block;
padding: 0.35em 0.6em;
max-width: 140px;
background: #f8f9fa;
height: auto;
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 {
.home-book-text {
background: #eaecf0;
flex: 1 1 16em;
min-width: 12em;
line-height: 1.55;
}
}


.soldier-upload-box[open] > summary {
.needs-source,
margin-bottom: 0;
.needs-source a {
border-bottom-left-radius: 0;
font-style: normal;
border-bottom-right-radius: 0;
white-space: nowrap;
}
}


.soldier-upload-body {
.mw-parser-output > p:first-of-type {
padding: 0.65em 0.75em 0.75em;
margin-top: 0.2em;
background: #f8f9fa;
border: 1px solid #a2a9b1;
border-top: none;
box-sizing: border-box;
max-width: 100%;
}
}


.soldier-contrib-section {
@media (max-width: 640px) {
margin: 0;
table.infobox,
padding: 0;
table.soldier-infobox {
max-width: 100%;
float: none;
box-sizing: border-box;
clear: both;
}
width: 100%;
 
max-width: 100%;
.soldier-contrib-ocr {
margin: 0 0 1em 0;
margin-top: 0.75em;
}
padding-top: 0.75em;
/* Keep input + Search on one row. Column + flex-basis:14em made the
border-top: 1px solid #c8ccd1;
  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;
}
}
}


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


.soldier-contrib-help {
/* Timeline disclosures open from the left, like the Technical record control. */
margin: 0 0 0.5em;
.soldier-timeline {
font-size: 95%;
display: flow-root;
color: #54595d;
margin-bottom: 1em;
line-height: 1.5;
}
}


.soldier-ocr-slot:empty {
.soldier-timeline + h2 {
display: none;
clear: both;
}
}


.soldier-upload-form label {
.soldier-timeline-body {
display: block;
clear: both;
margin: 0.35em 0;
padding-top: 0.25em;
}
}


.soldier-upload-file {
.soldier-timeline .mw-collapsible-toggle.mw-collapsible-toggle-default {
display: block;
float: left;
margin: 0.5em 0;
margin-left: 0;
max-width: 100%;
margin-right: 0.5em;
padding-left: 0;
}
}


.soldier-upload-form button,
/* Compact disclosure in the text column beside the floated infobox.
.soldier-contrib-ocr > button {
  clear:both here (and on .soldier-gallery) caused the huge Gallery gaps. */
margin-top: 0.5em;
.soldier-upload-box {
margin-right: 0.5em;
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-status {
.soldier-upload-box > summary {
margin: 0.5em 0 0;
display: list-item;
font-size: 95%;
cursor: pointer;
}
padding: 0.35em 0.6em;
 
background: #f8f9fa;
.soldier-upload-login {
border: 1px solid #a2a9b1;
margin: 0.35em 0 0;
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;
}
}


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


.soldier-facts-actions {
/* Legacy person-group class kept for older cached markup */
margin-top: 0.5em;
.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-cancel {
.soldier-facts-box {
margin-left: 0.35em;
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-lead {
.soldier-facts-box > p {
margin: 0 0 1em 0;
margin: 0;
line-height: 1.6;
}
}


.soldier-summary-toggle {
.soldier-summary-bar {
background: #f8f9fa;
margin: 0.85em 0 0 !important;
color: #202122;
padding-top: 0.75em;
border: 1px solid #a2a9b1;
border-top: 1px solid #c8ccd1;
}
 
.soldier-facts-toggle {
background: #3366cc;
color: #fff;
border: 1px solid #3366cc;
border-radius: 2px;
border-radius: 2px;
padding: 0.15em 0.5em;
padding: 0.15em 0.5em;
Line 1,473: Line 1,604:
}
}


.soldier-summary-panel {
.soldier-facts-toggle:hover {
background: #2a4b8d;
}
 
.soldier-facts-panel {
margin-top: 0.75em;
margin-top: 0.75em;
}
}


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


.soldier-summary-text {
.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%;
width: 100%;
max-width: 28em;
box-sizing: border-box;
box-sizing: border-box;
min-height: 8em;
font: inherit;
}
}


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


/* The Stories — photo galleries and captions */
.soldier-facts-cancel {
.story-gallery {
margin-left: 0.35em;
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;
.soldier-lead {
max-width: 18em;
margin: 0 0 1em 0;
text-align: center;
}
}
.story-gallery-item img,
 
.story-gallery-item .mw-file-element,
.soldier-summary-toggle {
.story-figure img,
background: #f8f9fa;
.story-figure .mw-file-element {
color: #202122;
display: block;
border: 1px solid #a2a9b1;
margin: 0 auto;
border-radius: 2px;
max-width: 100%;
padding: 0.15em 0.5em;
max-height: 20em;
cursor: pointer;
width: auto;
font-size: inherit;
height: auto;
object-fit: contain;
}
}
.story-figure {
 
margin: 0.75em auto 1.1em;
.soldier-summary-panel {
text-align: center;
margin-top: 0.75em;
max-width: 22em;
}
}
.story-caption {
 
font-size: 92%;
.soldier-summary-hint {
line-height: 1.35;
margin: 0 0 0.5em;
margin: 0.35em 0 0;
font-size: 95%;
color: #444;
color: #54595d;
}
}


/* Notable Ritchie Boys — slide-style portrait cards */
.soldier-summary-text {
.notable-slides {
width: 100%;
display: grid;
box-sizing: border-box;
grid-template-columns: repeat(auto-fill, minmax(14em, 1fr));
min-height: 8em;
gap: 1.15em 1em;
font: inherit;
margin: 1em 0 1.5em;
align-items: start;
}
}


.notable-slide-card {
.soldier-summary-status {
border: 1px solid #a2a9b1;
margin: 0.5em 0 0;
background: #f8f9fa;
font-size: 95%;
padding: 0.65em 0.7em 0.75em;
text-align: center;
}
}


.notable-slide-photo {
/* The Stories — photo galleries and captions */
margin: 0 0 0.55em;
.story-gallery {
line-height: 0;
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 {
.notable-slide-photo img,
flex: 0 1 16em;
.notable-slide-photo .mw-file-element {
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;
display: block;
margin: 0 auto;
margin: 0 auto;
max-width: 100%;
max-width: 100%;
max-height: 20em;
width: auto;
height: 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-slide-nophoto {
/* Notable Ritchie Boys — slide-style portrait cards */
display: flex;
.notable-slides {
align-items: center;
display: grid;
justify-content: center;
grid-template-columns: repeat(auto-fill, minmax(14em, 1fr));
min-height: 8em;
gap: 1.15em 1em;
background: #eaecf0;
margin: 1em 0 1.5em;
color: #54595d;
align-items: start;
font-size: 90%;
}
}


.notable-slide-name {
.notable-slide-card {
font-weight: bold;
border: 1px solid #a2a9b1;
font-size: 105%;
background: #f8f9fa;
line-height: 1.3;
padding: 0.65em 0.7em 0.75em;
margin: 0 0 0.25em;
text-align: center;
}
}


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


.notable-slide-body ul {
.notable-slide-photo img,
margin: 0.35em 0 0;
.notable-slide-photo .mw-file-element {
padding-left: 1.2em;
display: block;
text-align: left;
margin: 0 auto;
font-size: 92%;
max-width: 100%;
line-height: 1.35;
height: auto;
}
}


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


/* Soldier profile — compact photo gallery (not infobox-style thumbs).
.notable-slide-name {
   Stay in the text column beside the infobox; clearing created empty voids. */
font-weight: bold;
.soldier-gallery {
font-size: 105%;
margin: 0.5em 0 1em;
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;
clear: none;
overflow: auto;
overflow: auto;
Line 1,905: Line 2,099:
cursor: pointer;
cursor: pointer;
}
}
.yt-embed-play-icon {
.yt-embed-play-icon {
width: 0;
width: 0;
height: 0;
height: 0;
border-style: solid;
border-style: solid;
border-width: 8px 0 8px 14px;
border-width: 8px 0 8px 14px;
border-color: transparent transparent transparent #fff;
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;
}
}
.yt-embed-playing {
.ia-embed-frame {
background: #000;
}
.yt-embed-frame {
display: block;
display: block;
width: 100%;
width: 100%;
Line 1,921: Line 2,304:
border: 0;
border: 0;
}
}
.yt-embed-fallback {
.ia-embed-fallback {
margin: 0.5em 0 0;
margin: 0.5em 0 0;
font-size: 95%;
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%;
}
}



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;
}