:root{color-scheme:dark;--bg:#10151e;--panel:#19212e;--line:#303b4c;--ink:#f2f1ed;--muted:#aab5c4;--gold:#e4bc73}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,sans-serif}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer;border:1px solid var(--gold);background:var(--gold);color:#181b21;border-radius:5px;padding:9px 16px;font-weight:650}button:hover{filter:brightness(1.12)}button:disabled{opacity:.4;cursor:default}a{color:var(--gold)}header{display:flex;align-items:center;justify-content:space-between;padding:22px 4vw;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:15px;font:italic 38px Georgia;text-decoration:none}.brand span{font:600 14px system-ui;letter-spacing:.16em;color:var(--ink)}.brand small{display:block;color:var(--muted);font-size:11px;margin-top:4px}nav{display:flex;gap:5px}nav button{background:none;border:0;color:var(--muted)}nav button.active{color:var(--gold);background:#e4bc7312}.edition,.eyebrow{font-size:12px;letter-spacing:.15em;color:var(--gold)}main{max-width:1600px;margin:auto;padding:0 4vw}.intro{display:flex;justify-content:space-between;align-items:center;padding:35px 0 30px;gap:40px}.intro h1{font:44px/1.08 Georgia,serif;margin:10px 0;color:#f8f1df}.intro p{color:var(--muted);max-width:430px}.workspace{display:grid;grid-template-columns:240px 1fr;gap:35px}.filters{padding-right:24px;border-right:1px solid var(--line)}label{display:block;color:var(--muted);font-size:14px;margin:0 0 8px}input,select{width:100%;padding:11px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:5px;margin-bottom:20px}select{cursor:pointer}.secondary{background:transparent;color:var(--muted);border-color:var(--line)}.filters .secondary{width:100%}.note{border-left:2px solid var(--gold);padding:12px 16px;margin:25px 0;background:#e4bc7308;color:var(--muted);font-size:14px}.note p{margin:8px 0}.note strong{color:var(--ink)}h2{font:25px Georgia;margin:0}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px}.sectionhead span{color:var(--muted);font-size:14px}#count{margin-left:8px;color:var(--gold)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:18px}.card{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel);transition:transform .18s,border-color .18s;cursor:pointer;text-align:left;color:var(--ink);padding:0;font-weight:400}.card:hover{transform:translateY(-3px);border-color:var(--gold)}.portrait{position:relative;height:225px;background:radial-gradient(ellipse at bottom,#3c4555,#151d29);overflow:hidden}.portrait img{width:100%;height:100%;object-fit:cover;object-position:top}.portrait .badge{position:absolute;bottom:10px;left:10px;background:#10151eee;padding:3px 9px;border:1px solid #67718555;font-size:12px;border-radius:3px}.cardbody{padding:14px}.card h3{font:20px/1.15 Georgia;margin:0 0 7px}.skillname{color:var(--gold);font-size:14px}.snippet{font-size:13px;color:var(--muted);margin:8px 0 0}.missing{height:100%;display:grid;place-items:center;text-align:center;color:var(--muted);font:24px Georgia;padding:25px}footer{display:flex;flex-wrap:wrap;gap:20px;border-top:1px solid var(--line);margin-top:45px;padding:22px 0;color:var(--muted);font-size:12px}.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.slot{background:var(--panel);padding:15px;border:1px solid var(--line);border-radius:7px}.slot h3{font-size:14px;color:var(--gold);margin:0 0 14px}.slot img{height:140px;width:100%;object-fit:cover;object-position:top}.slot select{margin-top:12px;margin-bottom:4px}.slot strong{display:block;margin:10px 0}.toolbar{display:flex;align-items:center;gap:12px;margin-top:20px}.contribution{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:22px;margin:18px 0}.contribution h3{font:24px Georgia;margin:0 0 8px}.clause{white-space:pre-wrap;border-top:1px solid var(--line);padding:14px 0;margin:0}.inactive{opacity:.5}.pill{display:inline-block;font-size:12px;padding:3px 8px;border-radius:3px;background:#e4bc7314;color:var(--gold);margin:0 5px 5px 0}dialog{width:min(850px,94vw);max-height:90vh;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);padding:30px}dialog::backdrop{background:#060910cc}.close{position:absolute;right:15px;top:12px;background:none;color:var(--ink);border:0;font-size:28px}.detailtop{display:flex;gap:25px;margin:15px 0 25px}.detailtop img{width:165px;height:200px;object-fit:cover;object-position:top;border-radius:6px}.detailtop h2{font-size:32px;margin:12px 0}.detailactions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}pre{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}summary{cursor:pointer;color:var(--muted)}[hidden]{display:none!important}@media(max-width:850px){.edition{display:none}.workspace{grid-template-columns:1fr}.filters{display:grid;grid-template-columns:1fr 1fr;gap:8px 15px;border:0;padding:0}.filters label{align-self:center}.filters input,.filters select{margin:0}.filters .note{grid-column:1/-1}.intro{gap:20px}.intro h1{font-size:34px}.intro p{max-width:250px}.slots{grid-template-columns:1fr}.slot img{width:100px;height:110px;float:right}.cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.portrait{height:200px}}@media(max-width:520px){header{padding:15px;flex-wrap:wrap}.intro{display:block}.intro p{max-width:none}.intro h1 br{display:none}.sectionhead{align-items:start}.sectionhead>span{display:none}.detailtop img{width:100px;height:150px}.detailtop h2{font-size:25px}}

.effectPicker{margin:0 0 18px}.effectPicker summary{padding:8px 0;color:var(--gold)}#extraEffects{max-height:260px;overflow:auto;border:1px solid var(--line);padding:10px}#extraEffects label{display:flex;gap:8px;align-items:center;color:var(--ink);margin:5px 0}#extraEffects input{width:auto;margin:0;accent-color:var(--gold)}.matchReasons{border-top:1px solid var(--line);margin-top:12px;padding-top:10px;font-size:13px;color:var(--muted)}.matchReasons p{margin:8px 0}.matchReasons strong{color:var(--ink)}
#skillTypes label{display:flex;gap:8px;align-items:center;color:var(--ink)}
#skillTypes input{width:auto;margin:0;accent-color:var(--gold)}

.statTable{width:100%;border-collapse:collapse;margin:12px 0;font-variant-numeric:tabular-nums}.statTable th,.statTable td{text-align:center;padding:7px 3px;border-bottom:1px solid var(--line);font-size:14px}.statTable th{color:var(--gold)}.check{display:flex;align-items:center;gap:10px;margin:16px 0}.check input{width:auto;margin:0}#troopSwitch{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}#statControls{margin-top:20px}#statControls details p{font-size:14px;color:var(--muted)}#legionStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}#legionStats article,#troopStats{background:var(--panel);padding:14px;margin:14px 0}#legionStats h3{font-size:14px}.workspace>section{min-width:0}@media(max-width:1100px){#legionStats{grid-template-columns:1fr}}
/* Keep the full portrait visible in troop selection cards at every width. */
#slots .slot img{display:block;width:100%;height:240px;object-fit:contain;object-position:center;float:none}
@media(max-width:850px){#slots .slot img{height:200px}}

fieldset{min-width:0;border:1px solid var(--line);margin:0 0 20px;padding:12px}legend{color:var(--gold);font-size:14px;padding:0 5px}#chiefTypes label{display:flex;gap:8px;align-items:center;color:var(--ink)}#chiefTypes input{width:auto;margin:0;accent-color:var(--gold)}#chiefTypes small{display:block;color:var(--muted);font-size:13px}#extraEffects{max-height:none;overflow:visible;border:0;padding:0}.lineup{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lineupMember{min-width:0;text-align:center}.lineupChief{grid-column:1/-1;width:50%;justify-self:center}.lineupMember img,.emptyPortrait{width:100%;height:105px;object-fit:cover;object-position:top;background:var(--bg);border-radius:5px}.lineupMember span{display:block;color:var(--gold);font-size:13px}.lineupMember strong{display:block;font-size:13px;line-height:1.3;min-height:34px}.emptyPortrait{display:grid;place-items:center;color:var(--muted);font-size:14px}#legionStats{grid-template-columns:repeat(3,minmax(0,1fr))}#legionStats article{min-width:0}#legionStats .statTable th,#legionStats .statTable td{font-size:13px;padding:6px 1px}@media(max-width:600px){#legionStats{grid-template-columns:1fr}.lineup{grid-template-columns:repeat(3,1fr)}.lineupChief{grid-column:auto;width:100%}.filters fieldset{grid-column:1/-1}#extraEffects{display:grid;grid-template-columns:1fr 1fr}}

.catalogCard{position:relative;display:flex;flex-direction:column;min-width:0}.catalogCard>.card{width:100%;flex:1}.gearBadge{margin-top:6px;padding:6px 10px;font-size:12px;background:#e4bc7314;color:var(--gold)}.exploreStats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:13px 0 0;font-size:12px}.exploreStats div{background:#10151e88;border-radius:4px;padding:4px 6px}.exploreStats dt{color:var(--muted);font-size:10px}.exploreStats dd{margin:0;font-variant-numeric:tabular-nums}.sortControl{max-width:230px}.sortControl select{margin:0;padding:7px}.catalogNote{font-size:12px;color:var(--muted);margin:-8px 0 18px}.gearEffects h4{color:var(--gold);margin-bottom:8px}
.rankValue{color:var(--gold);font-size:14px;font-weight:700;margin:12px 0 6px}.rankEvidence{font-size:12px;color:var(--muted);line-height:1.5;border-top:1px solid var(--line);padding-top:8px;margin:0;white-space:pre-wrap}
.rankControls{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:20px}.rankControls label{flex:1;min-width:180px}.rankControls select{margin:0}.effectGroup{grid-column:1/-1}.effectGroup h4{color:var(--gold);margin:15px 0 8px;font-size:13px}.effectGroup label{font-size:13px}
#reset.secondary{background:#71383e;border-color:#965158;color:#fff1ed}#reset.secondary:hover{background:#83434a}.intro h1{max-width:660px}
.filters .skinToggle{display:flex;align-items:center;gap:8px;margin:12px 0}.filters .skinToggle input{width:auto;margin:0;accent-color:var(--gold)}
#count{font-size:1em;font-weight:700;margin-left:10px}

#languageButton{white-space:nowrap;font-size:.85rem}
#languageDialog{max-width:32rem;width:calc(100% - 2rem);padding:1.8rem;border:1px solid #5c513e;border-radius:14px;background:#151d29;color:#e8e2d8}
#languageDialog::backdrop{background:rgba(0,0,0,.72)}
#languageDialog h2{margin-top:0}
#languageDialog p{color:#b8b5af;font-size:.9rem;line-height:1.6}
.languageChoices{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin:1rem 0}
.languageChoices button{font-size:1.05rem;padding:1rem}
header nav{flex-wrap:wrap}
