:root{--bg:#1e1f22;--panel-bg:#26282c;--panel-bg-2:#2d3035;--border:#3a3d42;--text:#e6e6e6;--text-muted:#9a9ea6;--accent:#d4a24c;--link:#6cb6ff;--link-hover:#9ccfff;--button-bg:#33363b;--button-bg-hover:#3e4248;--mark:#d4a24c59;--best:#d4a24c24;--phase-start:#000;--phase-hero:#7c6d2e;--phase-movement:#818182;--phase-shooting:#1f4355;--phase-charge:#1f4355;--phase-combat:#702117;--phase-end:#503268;--phase-passive:#41571d;--phase-other:#4a4d53;--kind-rule:#5fae7d;--kind-ability:#9a7fd1;--kind-weapon:#d9776b;--page-width:1100px;--header-height:48px}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:calc(var(--header-height) + 16px)}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,sans-serif;font-size:14px;line-height:1.45}a{color:var(--link)}a:hover{color:var(--link-hover)}button,select,input{font:inherit;color:var(--text)}button,select{background:var(--button-bg);border:1px solid var(--border);cursor:pointer;padding:4px 10px}button:hover,select:hover{background:var(--button-bg-hover)}button.link{color:var(--link);background:0 0;border:none;padding:0;text-decoration:underline}h1,h2,h3,h4{line-height:1.2}.header{z-index:10;height:var(--header-height);background:var(--panel-bg);border-bottom:1px solid var(--border);align-items:stretch;gap:16px;padding:0 16px;display:flex;position:sticky;top:0}.brand{color:var(--text);white-space:nowrap;align-self:center;font-size:16px;font-weight:700;text-decoration:none}.brand:hover{color:var(--text)}.search-form{flex:1;align-self:center;max-width:420px;margin-left:auto}.search-form input{background:var(--bg);border:1px solid var(--border);width:100%;padding:5px 10px}.search-form input:focus{outline:2px solid var(--accent);outline-offset:-1px}.tabs{display:flex}.tabs a{color:var(--text-muted);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;padding:0 12px;text-decoration:none;display:flex}.tabs a:hover{color:var(--text);background:var(--panel-bg-2)}.tabs a.active{color:var(--text);border-bottom-color:var(--accent)}.badge{background:var(--accent);color:#1e1f22;text-align:center;min-width:18px;margin-left:5px;padding:0 5px;font-size:12px;font-weight:700;display:inline-block}.page{max-width:var(--page-width);margin:0 auto;padding:20px 16px 40px}.tagline,.empty{color:var(--text-muted)}.disclaimer{max-width:var(--page-width);border-top:1px solid var(--border);color:var(--text-muted);margin:0 auto;padding:24px 16px 32px;font-size:12px}.data-errors li{font-family:ui-monospace,monospace;font-size:12px}.tag{background:var(--button-bg);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.tag.general{background:var(--accent);color:#1e1f22}.label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.home-intro h1{margin:8px 0 6px;font-size:26px}.home-intro p{max-width:44rem;color:var(--text-muted);margin:0;font-size:15px}.home-sections{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:24px 0;display:grid}.home-section{background:var(--panel-bg);border:1px solid var(--border);border-top:2px solid var(--accent);padding:14px 16px}.home-section h2{margin:0 0 6px;font-size:18px}.home-section h2 .muted{font-size:12px;font-weight:400}.home-section p{margin:0 0 10px;font-size:13px;line-height:1.5}.home-examples{margin:0;padding:0;font-size:13px;list-style:none}.home-examples li+li{margin-top:4px}.home-tips h2{margin:0 0 6px;font-size:16px}.home-tips ul{color:var(--text-muted);margin:0;padding-left:18px;line-height:1.6}.table-page{max-width:none}.table-block{width:fit-content;max-width:100%;margin:0 auto}.table-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;margin:0 0 8px;display:flex}.table-count{color:var(--text-muted);gap:12px;margin:0;font-size:13px;display:flex}.target-picker{align-items:center;gap:12px;font-size:13px;display:flex}.target-picker select{padding:2px 6px}.data-table{border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:13px}.data-table>thead>tr>th,.data-table>tbody>tr>td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:4px 8px}.data-table>tbody>tr>td{white-space:nowrap}.data-table>tbody>tr>td.wrap{white-space:normal;min-width:12rem;max-width:26rem}.data-table>thead{top:var(--header-height);z-index:1;position:sticky}.data-table>thead>tr>th{background:var(--panel-bg);white-space:nowrap;padding:0}.sort-button{width:100%;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;text-align:inherit;background:0 0;border:none;justify-content:space-between;gap:6px;padding:6px 8px;font-size:11px;font-weight:600;display:flex}.sort-button:hover,.data-table th[aria-sort] .sort-button{color:var(--text);background:var(--panel-bg-2)}.sort-arrow{min-width:1em;color:var(--text-muted)}.filter-row th{background:var(--panel-bg-2);padding:3px}.filter-row select,.filter-row input{background:var(--bg);border:1px solid var(--border);width:100%;min-width:4.5rem;padding:2px 4px;font-size:12px}.filter-row input[type=search]{min-width:8rem}.range-filter{gap:2px;display:flex}.filter-row .range-filter input{appearance:textfield;width:3.4rem;min-width:0}.range-filter input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.range-filter input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.filter-row th.filtered select,.filter-row th.filtered input{border-color:var(--accent)}.data-table>*>tr>.numeric{text-align:center}.data-table th.numeric .sort-button{justify-content:center}.data-table>tbody>tr:nth-child(2n){background:var(--panel-bg)}.data-table>tbody>tr:hover{background:var(--panel-bg-2)}.data-table a{text-decoration:none}.data-table a:hover{text-decoration:underline}.data-table .tag{margin-left:6px}.clamp{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.no-rows{color:var(--text-muted);text-align:center;padding:16px}.muted{color:var(--text-muted)}.column-picker{font-size:13px;position:relative}.column-picker summary{background:var(--button-bg);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;padding:3px 10px;list-style:none}.column-picker summary::-webkit-details-marker{display:none}.column-picker summary:after{content:" ▾";color:var(--text-muted)}.column-picker[open] summary{border-color:var(--accent)}.column-picker-list{z-index:5;background:var(--panel-bg);border:1px solid var(--border);flex-direction:column;gap:2px;min-width:11rem;margin-top:2px;padding:6px 10px;display:flex;position:absolute;right:0}.column-picker-list label{white-space:nowrap;cursor:pointer}.data-table .toggle-cell{text-align:center;width:1px;padding:0}.row-toggle{width:100%;color:var(--text-muted);background:0 0;border:none;padding:4px 6px}.row-toggle:hover{color:var(--link-hover);background:0 0}.data-table>tbody>tr.expanded{background:var(--panel-bg-2)}.data-table>tbody>tr.details-row,.data-table>tbody>tr.details-row:hover{background:var(--bg)}.data-table>tbody>tr.details-row>td{white-space:normal;border-left:3px solid var(--accent);padding:8px 12px 12px}.unit-details{max-width:60rem}.unit-variant+.unit-variant{border-top:1px dashed var(--border);margin-top:12px;padding-top:8px}.variant-title{color:var(--accent);margin:0 0 4px;font-size:13px}.unit-details .weapons{width:auto;min-width:32rem}.unit-details .weapons td{white-space:nowrap}.data-table a.filter-link{color:var(--text)}.data-table a.filter-link:hover{color:var(--link-hover)}a.keyword{color:var(--text);text-decoration:none}a.keyword:hover{border-color:var(--link);color:var(--link-hover)}.weapon-abilities a,.ability-keywords a{color:inherit}.weapon-abilities a:hover,.ability-keywords a:hover{color:var(--link-hover)}.data-table input[type=checkbox]{cursor:pointer;margin:0}.army-header h1{margin:0}.army-subtitle{color:var(--text-muted);margin:4px 0 0}.army-contents{flex-wrap:wrap;gap:6px;margin:20px 0;display:flex}.army-contents a{background:var(--panel-bg);border:1px solid var(--border);color:var(--text);padding:3px 10px;font-size:13px;text-decoration:none}.army-contents a:hover{border-color:var(--link)}.army-rules h2,.units h2{margin:32px 0 12px;font-size:20px}.rule-group h3{margin:20px 0 8px;font-size:15px}.hint{color:var(--text-muted);margin-left:6px;font-size:12px;font-weight:400}.unit{background:var(--panel-bg);border:1px solid var(--border);margin:0 0 16px;padding:14px 16px}.unit-header{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.unit-header h3{margin:0;font-size:18px}.compare-button{margin-left:auto;font-size:13px}.compare-button.added{border-color:var(--accent);color:var(--accent)}.stats{flex-wrap:wrap;gap:8px;margin:12px 0 8px;display:flex}.stat{background:var(--panel-bg-2);border:1px solid var(--border);text-align:center;min-width:64px;padding:4px 10px}.stat dt{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.stat dd{margin:0;font-size:18px;font-weight:700}.unit-meta{color:var(--text-muted);margin:6px 0;font-size:13px}.wargear{white-space:pre-line;margin:8px 0;font-size:13px;font-style:italic}.table-scroll{overflow-x:auto}.weapons{border-collapse:collapse;width:100%;margin:10px 0;font-size:13px}.weapons th,.weapons td{border-bottom:1px solid var(--border);text-align:center;white-space:nowrap;padding:5px 8px}.weapons th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.weapons .weapon-name{text-align:left;white-space:normal;width:100%}.weapons td.weapon-name{font-weight:600}.weapon-abilities{color:var(--text-muted);font-size:12px;font-weight:400}.see-below{color:var(--text-muted);font-style:italic}.ability-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px;margin:10px 0;display:grid}.phase-start{--phase:var(--phase-start)}.phase-hero{--phase:var(--phase-hero)}.phase-movement{--phase:var(--phase-movement)}.phase-shooting{--phase:var(--phase-shooting)}.phase-charge{--phase:var(--phase-charge)}.phase-combat{--phase:var(--phase-combat)}.phase-end{--phase:var(--phase-end)}.phase-passive{--phase:var(--phase-passive)}.phase-other{--phase:var(--phase-other)}.ability{background:var(--panel-bg-2);border:1px solid var(--border);border-left:4px solid var(--phase);padding:8px 12px}.ability-timing{background:var(--phase);color:#f0f0f0;margin:-8px -12px 6px;padding:3px 12px;font-size:12px;font-weight:600}.ability-name{margin:2px 0 4px;font-size:14px}.ability-text{margin:6px 0;line-height:1.5}.ability-text p{margin:0}.ability-text p+p,.ability-text ul+p,.ability-text p+ul,.ability-text ul+ul{margin-top:8px}.ability-text ul{margin:0;padding-left:18px}.ability-text ul.options{padding-left:0;list-style:none}.ability-text li+li{margin-top:4px}.ability-text ul.options li{border-left:2px solid var(--border);padding-left:10px}.ability-note{color:var(--text-muted);font-style:italic}.ability-text .designer-note{border-top:1px dashed var(--border);color:var(--text-muted);margin-top:10px;padding-top:8px;font-size:13px;font-style:italic}.ability-keywords{margin-top:6px;font-size:12px}.keywords{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;padding-top:10px;display:flex}.keyword{background:var(--panel-bg-2);border:1px solid var(--border);padding:1px 8px;font-size:12px}.unit.token{padding:10px 16px}.unit.token .unit-meta{margin-bottom:0}.filters{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.kind-tabs{flex-wrap:wrap;gap:4px;display:flex}.kind-tabs button.active{border-color:var(--accent);color:var(--accent)}.count{color:var(--text-muted);font-size:12px}.alliance-filter{color:var(--text-muted);margin-left:auto}.results{margin:0;padding:0;list-style:none}.result{border-bottom:1px solid var(--border);color:var(--text);padding:10px 12px;text-decoration:none;display:block}.result:hover{color:var(--text);background:var(--panel-bg)}.result-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.result-name{font-weight:600}.result-context{color:var(--text-muted);font-size:13px}.result-text{color:var(--text-muted);margin-top:3px;font-size:13px;display:block}.tag.kind-unit{color:var(--accent)}.tag.kind-rule{color:var(--kind-rule)}.tag.kind-ability{color:var(--kind-ability)}.tag.kind-weapon{color:var(--kind-weapon)}mark{background:var(--mark);color:inherit}.compare-page{max-width:none}.compare-title{align-items:center;gap:16px;display:flex}.compare-scroll{overflow-x:auto}.compare-grid{border-top:1px solid var(--border);display:grid}.compare-grid>*{border-bottom:1px solid var(--border);padding:8px 10px}.compare-head{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.compare-unit{font-size:16px;font-weight:700}.compare-army{color:var(--text-muted);font-size:12px}.compare-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.compare-cell{min-width:0}.stat-cell{font-weight:600}.compare-legend{color:var(--text-muted);margin:0 0 12px;font-size:13px}.compare-legend .best{padding:0 4px}.stat-cell.best{background:var(--best);color:var(--accent)}.compare-cell .ability-list{grid-template-columns:1fr;margin:0}.compare-cell .weapons{margin:0 0 8px}@media (width<=760px){:root{--header-height:88px}.header{flex-wrap:wrap;align-content:center;row-gap:0}.tabs a{min-height:40px}.search-form{flex-basis:100%;order:3;max-width:none;margin:0 0 6px}.table-wrap{overflow-x:auto}.data-table>thead{position:static}.ability-list{grid-template-columns:1fr}}
