@font-face{font-family:"Libre Baskerville";src:url('./public/fonts/LibreBaskerville.ttf') format('truetype');font-style:normal;font-weight:400 700;font-display:swap}
:root{color-scheme:light;--background:#F4F5F6;--surface:#FFFFFF;--ink:#171C24;--selected:#AFC9E5;--primary:#476D99;--primary-hover:#365779;--border:#CCD2DA;--secondary:#515D6C;--quiet:#E9EDF1;--error:#963329;--complete:#345C42;--focus:#244F82;--on-primary:#FFFFFF;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--background)}
*{box-sizing:border-box}body{margin:0}main{max-width:1500px;margin:auto;padding:18px 24px 32px}h1,h2,h3,p{margin:0}h2{font-size:1rem;font-weight:650}h3{font-size:.98rem;line-height:1.4}p,li{line-height:1.5}button,input,select,textarea{font:inherit;font-size:.85rem}button,a,input,select,textarea{touch-action:manipulation}button{min-height:40px;padding:8px 12px;border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:5px;cursor:pointer}button:hover{background:var(--quiet)}button:disabled{cursor:not-allowed;color:var(--secondary);background:var(--quiet)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.primary:hover{background:var(--primary-hover)}.subtle{background:transparent}label{display:grid;gap:4px;color:var(--secondary);font-size:.75rem;line-height:1.4}input,select,textarea{width:100%;min-width:0;min-height:40px;padding:8px 10px;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--ink)}textarea{min-height:86px;resize:vertical}small{font-size:.74rem;line-height:1.5;color:var(--secondary)}[hidden]{display:none!important}
.top-bar{display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--border);padding-bottom:13px}.wordmark{font:700 1.02rem 'Libre Baskerville',Georgia,serif;letter-spacing:.06em;white-space:nowrap}.top-bar>label{width:125px;flex-shrink:0}.operation-group{display:flex;align-items:center;flex-wrap:wrap;gap:10px;flex:1;min-width:0}.operation{font-size:.93rem;font-weight:600;overflow-wrap:anywhere}.operation-group button{font-size:.76rem;padding:6px 9px;min-height:36px}.tally{display:flex;gap:16px;align-items:center;white-space:nowrap}.tally span{font-size:.8rem;color:var(--secondary)}.tally strong{font-size:1.2rem}.export-area{display:grid;gap:3px;justify-items:center}.export-area small{font-size:.65rem}.saved-bar{display:flex;gap:12px;align-items:end;padding-top:12px;flex-wrap:wrap}.saved-bar>label:first-child{width:280px;max-width:100%}.saved-bar>label:nth-child(2){width:200px}.saved-bar>small{margin-left:auto;padding-bottom:10px}.jump-transports{display:none}.status{min-height:20px;margin:8px 0;font-size:.76rem;color:var(--secondary)}.status.error,.error,.validation{color:var(--error)}
.organisation{width:100%;padding:14px 16px;margin-bottom:18px;border:1px solid var(--border);background:var(--surface);border-radius:6px}.organisation-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.organisation-heading button{min-height:36px;font-size:.8rem}.org-nodes{display:flex;justify-content:flex-start;align-items:start;gap:14px;flex-wrap:wrap}.org-branch{flex:0 1 275px;min-width:0;display:grid;gap:8px}.org-branch>.org-node{background:var(--selected)}.org-node{width:100%;text-align:left;padding:7px 9px;display:grid;gap:2px;min-height:46px;font-size:.78rem}.org-node span{font-weight:600}.org-node small{font-size:.7rem}.org-node.complete span{color:var(--complete)}.org-node.selected{background:var(--selected);border-color:var(--primary)}.org-children{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;border-left:1px solid var(--border);margin-left:10px;padding-left:10px}.org-children:empty{display:none}.org-children .org-node{position:relative}.org-children .org-node:before{content:'';position:absolute;left:-11px;top:50%;width:10px;border-top:1px solid var(--border)}.org-branch>label{font-size:0}.org-branch>label select{font-size:.75rem;min-height:34px}
.editor-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:20px;align-items:start}.roster-column,.sidebar{min-width:0}.platoon{margin-bottom:18px;scroll-margin-top:16px}.platoon-banner{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--selected);border:1px solid var(--border);border-radius:5px 5px 0 0;flex-wrap:wrap}.platoon-banner h2{flex:1;min-width:110px}.platoon-banner label{font-size:0;max-width:240px;flex:0 1 220px}.platoon-banner select{font-size:.78rem;min-height:36px}.platoon-points{font-size:.9rem;white-space:nowrap}.platoon-banner>button{min-height:32px;padding:4px 9px}.unit-row{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:14px;padding:15px 12px;background:var(--surface);border:1px solid var(--border);border-top:0}.unit-row:last-child{border-radius:0 0 5px 5px}.roster-number{font-size:.76rem;font-weight:650;color:var(--secondary)}.unit-description{min-width:0;overflow-wrap:anywhere}.unit-description h3{margin-bottom:4px}.composition{color:var(--secondary);font-size:.8rem}.equipment{font-size:.81rem;margin-top:6px}.unit-description details{font-size:.75rem;margin-top:9px}.unit-description summary{cursor:pointer;line-height:1.5}.unit-description ul{padding-left:18px}.unit-description .notes{white-space:pre-wrap;font-size:.79rem;margin-top:8px}.christened{font-size:.8rem;color:var(--secondary);font-style:italic;margin-bottom:3px}.unit-rules{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.rule-link{min-height:28px;padding:3px 7px;border-color:var(--border);background:var(--background);color:var(--primary-hover);font-size:.71rem}.unit-actions{display:grid;gap:6px;align-content:start}.unit-actions strong{text-align:right;font-size:.9rem;margin-bottom:4px;white-space:nowrap}.unit-actions button{font-size:.76rem;padding:6px 9px;min-height:36px}.assignment-status{font-size:.76rem;color:var(--primary-hover);margin-top:8px}.weapon-profile{padding:7px 0;border-top:1px solid var(--border);overflow-wrap:anywhere}.blank-slot{grid-template-columns:minmax(0,1fr) auto;align-items:center;background:var(--background);border-style:solid}.blank-slot h3{font-size:.87rem}.blank-slot p{font-size:.76rem;color:var(--secondary);margin-top:3px}.blank-slot button{font-size:.77rem}.blank-slot>button:last-child:nth-child(3){grid-column:2}
.sidebar{display:grid;gap:14px}.sidebar-tools{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:8px}.sidebar-tools button{font-size:.78rem;padding:9px 8px;min-height:44px}.reserved-control{border:1px dashed var(--border);border-radius:4px;background:var(--quiet);color:var(--secondary);font-size:.7rem;display:grid;place-items:center;padding:8px}.transports-panel{padding:14px;border:1px solid var(--border);border-radius:5px;background:var(--surface);scroll-margin-top:12px}.transports-panel>h2{margin-bottom:12px}.transport-list{display:grid;gap:12px;max-height:72vh;overflow-y:auto;padding:3px}.transport-entry{padding:12px;background:var(--background);border:1px solid var(--border);border-radius:4px;min-width:0;overflow-wrap:anywhere}.transport-entry h3{font-size:.86rem;margin-bottom:6px}.transport-capacity{font-size:.77rem;font-weight:600}.tow-rating{font-size:.74rem;color:var(--secondary);margin-top:7px}.transport-entry label{margin-top:10px}.transport-entry select{font-size:.77rem}.unassigned{font-size:.74rem;color:var(--secondary);margin-top:9px}.assigned-list{list-style:none;padding:0;margin:10px 0;display:grid;gap:7px}.assigned-list li{display:flex;align-items:center;gap:8px;font-size:.76rem}.assigned-list li span{flex:1;min-width:0}.assigned-list button{min-height:34px;font-size:.72rem;padding:5px 7px}.transports-panel>small{display:block;margin-top:10px}.reserved-block{min-height:180px;padding:14px;border:1px dashed var(--border);border-radius:5px;background:var(--quiet)}.reserved-block small{color:var(--secondary)}footer{margin-top:16px;padding-top:12px;border-top:1px solid var(--border);color:var(--secondary);font-size:.72rem}
 dialog{width:min(710px,calc(100% - 28px));max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--ink)}dialog::backdrop{background:rgb(23 28 36 / .4)}dialog h2{font-size:1.2rem;margin-bottom:16px}dialog p{margin:8px 0}dialog label{margin:12px 0}dialog button{margin:8px 6px 0 0}.eyebrow{font-size:.74rem;color:var(--secondary);margin-bottom:9px}.editor-preview{background:var(--selected);padding:14px;margin:14px 0;border-radius:4px}.editor-preview p{font-size:.83rem;margin:4px 0}fieldset{border:1px solid var(--border);padding:10px 14px;margin:16px 0}legend{padding:0 5px;font-size:.84rem}.source-note,.provenance{font-size:.78rem;color:var(--secondary);overflow-wrap:anywhere}.validation p{font-size:.83rem}.rule-results{display:grid;gap:6px;margin:16px 0;max-height:48vh;overflow-y:auto}.rule-result{text-align:left}.reference-dialog p{white-space:pre-wrap}
@media(max-width:1050px){.top-bar{gap:12px;flex-wrap:wrap}.wordmark{font-size:.9rem}.operation-group{flex:1 1 230px}.tally{margin-left:auto}.editor-columns{gap:14px}.platoon-banner label{flex-basis:180px}.unit-row{gap:10px;grid-template-columns:minmax(0,1fr) 70px}.sidebar-tools{grid-template-columns:1fr 1fr}.sidebar-tools>button{grid-column:1/-1}.saved-bar>small{margin-left:0}}
@media(max-width:760px){main{padding:12px}.top-bar{gap:10px;align-items:center}.wordmark{font-size:.9rem}.top-bar>label{width:110px}.operation-group{flex-basis:100%;order:3;justify-content:space-between}.tally{margin-left:auto;gap:10px}.tally strong{font-size:1.05rem}.tally span{font-size:.74rem}.export-area{order:4;justify-items:start;display:flex;align-items:center;gap:10px;width:100%}.export-area button{min-height:36px}.export-area small{font-size:.72rem}.saved-bar{gap:8px}.saved-bar>label:first-child{flex:1 1 200px;width:auto}.saved-bar>label:nth-child(2){flex:1 1 150px;width:auto}.saved-bar>small{flex:1 1 100%;order:5;padding:0}.jump-transports{display:inline-flex;align-items:center;min-height:40px;padding:8px 10px;color:var(--primary-hover);border:1px solid var(--border);border-radius:4px;background:var(--surface);font-size:.8rem;text-decoration:none}.editor-columns{grid-template-columns:minmax(0,1fr)}.organisation{padding:12px}.organisation-heading h2{font-size:.9rem}.organisation-heading button{font-size:.73rem;padding:8px}.org-branch{flex:0 1 100%;width:100%}.org-nodes{gap:12px}.org-children{grid-template-columns:repeat(2,minmax(0,1fr))}.platoon-banner{gap:8px;padding:9px}.platoon-banner h2{font-size:.92rem;flex-basis:calc(100% - 70px)}.platoon-banner .platoon-points{order:1}.platoon-banner label{order:2;max-width:none;flex:1 1 190px}.platoon-banner>button{order:3}.unit-row{padding:12px 9px;grid-template-columns:minmax(0,1fr);gap:10px}.unit-description h3{font-size:.93rem}.unit-actions{grid-column:1;display:flex;align-items:center;flex-wrap:wrap}.unit-actions strong{text-align:left;margin:0 auto 0 0}.unit-actions button{min-height:40px;padding:8px 10px}.blank-slot{grid-template-columns:minmax(0,1fr)}.blank-slot>button,.blank-slot>button:last-child:nth-child(3){grid-column:1;justify-self:start}.sidebar-tools{grid-template-columns:1.5fr 1fr 1fr}.sidebar-tools>button{grid-column:auto}.transport-list{max-height:none;overflow:visible}.reserved-block{min-height:120px}.transports-panel{padding:12px}dialog{width:calc(100% - 20px);padding:16px;max-height:calc(100dvh - 20px)}fieldset{padding:8px 10px}dialog h2{line-height:1.4}.assigned-list li{align-items:start}.assigned-list button{min-height:40px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Focused roster corrections; modal design and shared Fog & Ink palette remain unchanged. */
.org-children{border-left:0}.org-children .org-node:before{display:none}

.unit-row .roster-number{display:block;margin-bottom:5px;font-size:.82rem;font-weight:700;color:var(--ink);line-height:1.4}
.personnel-breakdown{margin:7px 0;padding-left:19px;font-size:.81rem}
.active-rules{list-style:none;margin:9px 0 0;padding:0;font-size:.8rem;display:grid;gap:3px}
.active-rules .rule-text{border:0;border-radius:0;padding:0;min-height:0;background:transparent;color:var(--ink);font:inherit;text-align:left}
.active-rules .rule-text:hover{text-decoration:underline;background:transparent}
.unit-description>.christened{font-size:.98rem;font-family:inherit;font-weight:700;font-style:normal;line-height:1.4;color:var(--ink);margin-bottom:4px}
.capacity-info{font-size:.8rem;margin-top:6px;color:var(--secondary)}
@media(max-width:760px){.unit-description>.christened{font-size:.93rem}}
/* Loadout and active rules share a quiet, top-aligned information row. */
.unit-description{container-type:inline-size}
.armour-value{font-size:.8rem;color:var(--ink);margin-bottom:4px}
.unit-info-columns{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:start;margin-top:7px}
.unit-loadout{min-width:0}
.unit-info-columns .personnel-breakdown,.unit-info-columns .active-rules,.unit-info-columns .equipment{margin-top:0;margin-bottom:0}
.unit-info-columns .active-rules{padding-left:0}
@container(max-width:340px){.unit-info-columns{grid-template-columns:minmax(0,1fr);gap:10px}}
@media(max-width:540px){.unit-info-columns{grid-template-columns:minmax(0,1fr);gap:10px}}
.top-bar>.operation-group{width:auto;flex:1;flex-shrink:1}
.operation-input{width:17ch;max-width:100%;min-width:0;font:inherit;background:var(--surface);color:var(--ink)}
@media(max-width:760px){.top-bar>.operation-group{flex-basis:100%;justify-content:flex-start}}
.homebrew-organisation .organisation-heading{flex-wrap:wrap;gap:12px}
.homebrew-organisation .org-nodes{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.homebrew-status{color:var(--ink);font-size:.9rem}
.homebrew-add-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
.homebrew-add-buttons button{font-size:.78rem;min-height:38px;padding:8px 12px;max-width:100%;white-space:normal}
.faction-rules-panel{padding:16px;border:1px solid var(--border);border-radius:5px;background:var(--surface)}
.faction-rules-panel h2{font-size:1rem;margin-bottom:10px}
.faction-rules-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.faction-rule{display:block;width:100%;min-height:40px;padding:9px 12px;text-align:left;white-space:normal;background:var(--background);border:1px solid var(--border);color:var(--ink);font-size:.85rem}
.faction-rule:hover{background:var(--selected)}
.period-choices{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 0 auto;padding:8px 10px;border:0}
.period-choices label{display:flex;gap:5px;align-items:center;font-size:.85rem;cursor:pointer}
.period-choices input{appearance:none;width:18px;height:18px;min-height:0;margin:0;padding:0;border:1px solid var(--secondary);border-radius:3px;background:var(--surface);display:grid;place-content:center}.period-choices input:checked{background:var(--primary);border-color:var(--primary)}.period-choices input:checked:after{content:"\2713";color:white;font-size:14px;line-height:1}.period-choices input:disabled{cursor:default;opacity:.7}
.organisation-heading{flex-wrap:wrap}
@media(max-width:760px){.period-choices{margin-left:0;flex-basis:100%}}
.army-weapons-panel{padding:14px;border:1px solid var(--border);border-radius:5px;background:var(--surface);min-width:0}
.army-weapons-panel h2{margin-bottom:12px}.weapon-empty{font-size:.78rem;color:var(--secondary)}
.army-weapons-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:.76rem;line-height:1.5}
.army-weapons-table th,.army-weapons-table td{padding:9px 5px;text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid var(--border);white-space:pre-wrap}
.army-weapons-table th{background:var(--background);font-weight:650}.army-weapons-table th:nth-child(1){width:26%}.army-weapons-table th:nth-child(2){width:18%}.army-weapons-table th:nth-child(3){width:10%}.army-weapons-table th:nth-child(4){width:18%}.army-weapons-table th:nth-child(5){width:28%}.army-weapons-table tr:last-child td{border-bottom:0}.weapon-mapping-issue{font-size:.75rem;color:var(--error);margin-top:10px}
@media(max-width:1050px){.army-weapons-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.army-weapons-table tbody,.army-weapons-table tr{display:block}.army-weapons-table tr{padding:10px 0;border-bottom:1px solid var(--border)}.army-weapons-table td{display:grid;grid-template-columns:105px minmax(0,1fr);gap:8px;padding:4px 0;border:0;font-size:.78rem}.army-weapons-table td:before{content:attr(data-label);font-weight:600;color:var(--secondary)}.army-weapons-table tr:last-child{border-bottom:0}}
