/* Approved popup hierarchy; rules and catalogue remain independent of this presentation. */
.infantry-editor{width:min(1184px,calc(100% - 40px));max-height:calc(100dvh - 32px);padding:24px 26px 0;border-radius:9px;box-shadow:0 18px 60px rgb(23 28 36 / .2)}
.infantry-editor p,.infantry-editor label,.infantry-editor button{margin:0}
.infantry-heading{display:flex;align-items:start;justify-content:space-between;gap:18px}
.infantry-editor .infantry-title{font:700 clamp(1.5rem,3vw,2.4rem)/1.2 'Libre Baskerville',Georgia,serif;margin:0 0 5px;letter-spacing:-.04em}
.infantry-editor .close-editor{border:0;background:transparent;font-size:2rem;line-height:1;min-height:32px;width:32px;padding:0}
.infantry-editor>.eyebrow{font-size:.92rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin:0 0 14px}
.infantry-top{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1.02fr) minmax(0,.98fr);gap:10px;align-items:stretch}
.infantry-top.without-identity{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.squad-identity,.fatherland,.squad-summary,.squad-size,.squad-weapons{min-width:0;border:1px solid var(--border);border-radius:5px;padding:18px;background:var(--surface)}
.squad-identity{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-content:start}



.infantry-editor h3,.slider-label,.option-copy strong,.option-cost,.size-value strong{font-family:'Libre Baskerville',Georgia,serif;color:var(--ink)}
.slider-label{display:block;font-weight:700;font-size:1.35rem}
.infantry-editor input[type=range]{appearance:none;-webkit-appearance:none;display:block;width:100%;padding:0;min-height:30px;height:30px;border:0;background:transparent;cursor:pointer;position:relative;z-index:1}
.infantry-editor input[type=range]::-webkit-slider-runnable-track{height:7px;border-radius:8px;background:linear-gradient(to right,var(--primary) 0 var(--range-fill,0%),#CAD8E8 var(--range-fill,0%) 100%);box-shadow:inset 0 0 0 1px rgb(71 109 153 / .15)}
.infantry-editor input[type=range]::-webkit-slider-thumb{appearance:none;width:24px;height:24px;margin-top:-8px;border:1px solid #2F5076;border-radius:50%;background:var(--primary);box-shadow:0 2px 4px rgb(23 28 36 / .24)}
.infantry-editor input[type=range]::-moz-range-track{height:7px;border-radius:8px;background:#CAD8E8}
.infantry-editor input[type=range]::-moz-range-progress{height:7px;background:var(--primary)}
.infantry-editor input[type=range]::-moz-range-thumb{width:22px;height:22px;border:1px solid #2F5076;border-radius:50%;background:var(--primary)}
.experience-track{position:relative;margin:17px 12px 4px}
.experience-stops{position:absolute;inset:0;pointer-events:none}
.experience-stops span{position:absolute;top:5px;transform:translateX(-50%);width:20px;height:20px;border:1px solid #8FA3BD;border-radius:50%;background:#E3E8EF;z-index:2}
.experience-stops span:nth-child(2){z-index:0}
.experience-stops span.unavailable{background:var(--quiet);border-style:dashed}
.experience-stops span.active{background:var(--primary);border-color:#2F5076}
.range-ticks{display:flex;justify-content:space-between;font:400 .72rem/1.3 system-ui;color:var(--secondary);gap:5px;margin-inline:-8px}
.range-ticks .active{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;color:var(--ink)}
.range-ticks .unavailable{color:#687482;text-decoration:line-through}
.squad-composition{border-top:1px solid var(--border);padding-top:15px;margin-top:23px}
.squad-composition h3{font-size:1.45rem;margin:0 0 8px}
.infantry-editor .squad-composition p{font-size:.96rem;line-height:1.5;margin:3px 0}
.infantry-editor .fatherland h3{font-size:1.15rem;line-height:1.35;margin:0 0 4px;letter-spacing:-.035em}
.infantry-editor .fatherland>p{font-size:.84rem;color:var(--secondary);margin-bottom:9px}
.option-card{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:center;min-width:0;border:1px solid var(--border);border-radius:4px;padding:13px 18px;background:var(--surface);min-height:76px}
.option-card.chosen{background:#E5EFFA;border-color:#8BB3DC}
.checkbox-label{display:flex;align-items:center;gap:18px;color:var(--ink);cursor:pointer;min-width:0}
.checkbox-label>input{appearance:none;-webkit-appearance:none;flex:0 0 26px;width:26px;height:28px;min-height:28px;border:1px solid #68798F;border-radius:4px;padding:0;background:var(--surface);position:relative;cursor:pointer}
.checkbox-label>input:checked{background:var(--primary);border-color:var(--primary)}
.checkbox-label>input:checked::after{content:'✓';position:absolute;inset:0;color:white;font-size:22px;text-align:center;line-height:26px}
.option-copy{display:grid;gap:4px;min-width:0}
.option-copy strong{font-size:1rem;font-weight:700;line-height:1.3}
.option-copy small{font-size:.83rem;line-height:1.35;color:var(--secondary)}
.option-cost{text-align:right;font-size:.96rem;line-height:1.4;font-weight:700;white-space:nowrap}
.option-cost small{display:block;font:400 .8rem/1.3 system-ui;color:var(--secondary)}
.option-card:has(.quantity-stepper){grid-template-columns:minmax(0,1fr) auto auto}
.quantity-stepper{display:flex;border:1px solid var(--border);border-radius:4px;background:var(--background);overflow:hidden;align-items:center}
.infantry-editor .quantity-stepper button{padding:0;width:32px;min-height:36px;border:0;border-radius:0;background:transparent;font-size:1.25rem;color:var(--primary)}
.quantity-stepper output{display:grid;place-items:center;min-width:30px;height:36px;background:var(--surface);font-size:.9rem;border-inline:1px solid var(--border)}
.quantity-stepper button:disabled{color:#8695A7}
.option-reason{grid-column:1/-1;margin-top:5px;font-size:.76rem}
.option-card.unavailable{background:var(--background)}
.option-card.unavailable .option-copy{color:var(--secondary)}
.identity-card{min-height:74px;padding:12px 14px;margin-top:10px;display:block}
.identity-card .checkbox-label{justify-content:space-between;gap:8px}
.identity-card .option-copy strong{font-size:.98rem}
.identity-card .option-copy small{font-size:.8rem}
.identity-card.unavailable .option-copy strong{color:#647184}
.identity-toggle{position:relative;flex:0 0 48px;width:48px;height:26px}
.identity-toggle input{position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;padding:0;opacity:0;z-index:1;cursor:pointer}
.toggle-track{display:block;width:48px;height:26px;border-radius:30px;background:#A8B4C3;box-shadow:inset 0 1px 3px rgb(23 28 36 / .1)}
.toggle-track::before{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px rgb(23 28 36 / .15)}
.identity-toggle input:checked+.toggle-track{background:var(--primary)}
.identity-toggle input:checked+.toggle-track::before{transform:translateX(22px)}
.identity-toggle input:disabled+.toggle-track{opacity:.65}
.identity-toggle input:focus-visible+.toggle-track{outline:3px solid var(--focus);outline-offset:3px}
.squad-summary{background:#DEEBFA;border-color:#BED7F0}
.live-points{display:block;font:700 2rem/1.2 'Libre Baskerville',Georgia,serif;letter-spacing:-.035em}
.infantry-editor .summary-experience{font:700 .98rem/1.4 'Libre Baskerville',Georgia,serif;margin:6px 0 13px}
.infantry-editor .squad-summary h3{border-top:1px solid #AEC4DC;padding-top:12px;font-size:1.03rem;margin:0 0 8px}
.squad-summary .unit-rules{margin:0 0 15px}
.infantry-editor .squad-summary .rule-link{background:#AFC9E5;border:0;padding:7px 14px;min-height:32px;font-size:.84rem;border-radius:9px;color:var(--ink)}
.price-breakdown{border-top:1px solid #AEC4DC;padding-top:11px}
.price-row{display:flex;justify-content:space-between;gap:10px;font-size:.85rem;line-height:1.4;margin-bottom:5px}
.price-total{border-top:1px solid #AEC4DC;padding-top:10px;margin-top:9px;margin-bottom:0;font:700 1.08rem/1.3 'Libre Baskerville',Georgia,serif}
.squad-size{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,2.2fr) minmax(0,.52fr);align-items:center;gap:24px;margin-top:11px;padding:14px 18px;min-height:98px}
.squad-size h3{font-size:1.25rem;margin-bottom:5px}
.infantry-editor .squad-size p{font-size:.82rem;color:var(--secondary);line-height:1.4}
.squad-size .slider-label{min-width:0}
.squad-size input[type=range]::-webkit-slider-runnable-track{height:10px}
.squad-size input[type=range]::-webkit-slider-thumb{width:28px;height:28px;margin-top:-9px;border:2px solid white}
.size-ticks{display:flex;justify-content:space-between;margin:0 10px;color:var(--secondary);font:400 .8rem/1.4 system-ui}
.size-ticks span{position:relative;padding-top:8px}
.size-ticks span::before{content:'';position:absolute;top:0;left:50%;height:7px;width:1px;background:#92A6BD}
.size-value{white-space:nowrap;justify-self:end}
.size-value strong{display:block;font-size:1.4rem;line-height:1.5}
.squad-weapons{margin-top:11px;padding:14px 18px 12px}
.squad-weapons>h3{font-size:1.3rem;margin-bottom:12px}
.option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.editor-details{font-size:.74rem;color:var(--secondary);margin-top:9px}
.editor-details>summary{cursor:pointer;list-style-position:inside}
.editor-details label{margin:10px 0}
.editor-details li{margin:5px 0}
.editor-adjustments{font-size:.8rem;margin-top:10px;padding:10px 14px;background:var(--background);border-left:3px solid var(--primary)}
.infantry-editor .infantry-footer{display:flex;align-items:center;gap:14px;padding:15px 26px;margin:14px -26px 0;border-top:1px solid var(--border);background:var(--surface);position:sticky;bottom:-1px;z-index:3}
.infantry-footer>small{margin-right:auto;font-size:.85rem}
.infantry-editor .infantry-footer button{min-width:140px;min-height:44px;font-size:.9rem;border-color:var(--primary)}
.infantry-editor input:disabled{cursor:not-allowed}
.squad-weapons>.option-grid+h3{margin-top:20px}
.option-source{grid-column:1/-1;color:var(--secondary);font-size:.65rem;margin-top:5px}
.option-source summary{cursor:pointer;list-style-position:inside}
.infantry-editor .option-source p{margin-top:7px;font-size:.78rem;line-height:1.5}
.fixed-experience{font:700 1.1rem/1.5 'Libre Baskerville',Georgia,serif;padding:8px 0}
.exclusive-default{grid-column:1/-1;display:flex;gap:10px;align-items:center;font-size:.8rem;color:var(--secondary)}
.exclusive-default input{width:20px;min-height:20px;height:20px;accent-color:var(--primary)}
.checkbox-label>input[type=radio]{border-radius:50%}
.checkbox-label>input[type=radio]:checked::after{content:'';inset:7px;border-radius:50%;background:white}
.special-configuration{display:grid;gap:12px}
.special-configuration .option-card{display:flex;flex-wrap:wrap;justify-content:start}
.special-configuration .option-card small{flex-basis:100%}
.context-pricing{font-size:.85rem;color:var(--secondary)}
.christened-control{font-size:.85rem;margin-top:16px!important;font-weight:600;color:var(--ink)}
.christened-control input{max-width:480px;margin-top:5px}
.selected-configuration{font-size:.78rem;margin-top:10px;color:var(--secondary)}
.selected-configuration summary{cursor:pointer;list-style-position:inside}
.infantry-editor .squad-composition small{font-size:.75rem;line-height:1.5;display:block;margin-top:8px}
.infantry-editor:not([data-category=Infantry]) .infantry-top.without-identity{grid-template-columns:minmax(0,1.8fr) minmax(0,1fr)}

@media(max-width:850px){.infantry-editor:not([data-category=Infantry]) .infantry-top.without-identity{grid-template-columns:minmax(0,1fr)}}
@media(max-width:1100px){.squad-identity{gap:12px;grid-template-columns:minmax(0,1fr)}.infantry-top{grid-template-columns:minmax(0,1.7fr) minmax(0,1.05fr) minmax(0,1fr)}.squad-identity,.fatherland,.squad-summary{padding:14px}.slider-label{font-size:1.15rem}.range-ticks{font-size:.63rem}.option-card{padding:12px}.checkbox-label{gap:10px}.option-copy strong{font-size:.9rem}.quantity-stepper{grid-column:1;justify-self:start;margin:8px 0 0 36px}.option-card:has(.quantity-stepper){grid-template-columns:minmax(0,1fr) auto}.option-card:has(.quantity-stepper) .option-cost{grid-column:2;grid-row:1/3}}
@media(max-width:850px){.infantry-top{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.squad-identity{grid-column:1/-1;grid-template-columns:minmax(0,1fr)}.range-ticks{font-size:.8rem}.infantry-top.without-identity{grid-template-columns:minmax(0,1fr)}.squad-size{grid-template-columns:minmax(0,1fr) auto;gap:12px}.squad-size .slider-label{grid-row:2;grid-column:1/-1}.size-value{grid-row:1;grid-column:2}.option-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.infantry-editor{width:calc(100% - 16px);max-height:calc(100dvh - 16px);padding:16px 14px 0}.infantry-editor .infantry-title{font-size:1.4rem}.infantry-editor>.eyebrow{font-size:.67rem;letter-spacing:.08em}.infantry-top{grid-template-columns:minmax(0,1fr)}.squad-identity{grid-template-columns:minmax(0,1fr);gap:12px;padding:12px}.slider-label{font-size:1rem}.experience-track{margin:16px 10px 3px}.range-ticks{font-size:.59rem;margin-inline:-8px}.squad-composition{margin-top:16px;padding-top:12px}.squad-composition h3{font-size:1.2rem}.infantry-editor .squad-composition p{font-size:.8rem}.fatherland,.squad-summary{padding:14px}.squad-size{padding:12px;gap:10px}.squad-size h3{font-size:1.05rem}.size-value strong{font-size:1.2rem}.squad-weapons{padding:12px}.option-grid{grid-template-columns:minmax(0,1fr)}.option-card{min-height:78px}.option-copy strong{font-size:.96rem}.option-copy small{font-size:.8rem}.squad-weapons>h3{font-size:1.15rem}.quantity-stepper{grid-column:auto;margin:0}.option-card:has(.quantity-stepper){grid-template-columns:minmax(0,1fr) auto}.option-card:has(.quantity-stepper) .quantity-stepper{grid-column:1;margin:8px 0 0 36px}.infantry-editor .infantry-footer{padding:12px 14px;margin-inline:-14px;gap:10px;flex-wrap:wrap}.infantry-footer>small{flex-basis:100%;font-size:.73rem}.infantry-editor .infantry-footer button{flex:1;min-width:0;font-size:.84rem}}
