@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2)format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2)format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2)format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff)format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2)format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff)format("woff")}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/oswald-latin-500-normal-B-eyT0Dw.woff2)format("woff2"),url(/assets/oswald-latin-500-normal-DM85Di4w.woff)format("woff")}@font-face{font-family:Oswald;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/oswald-latin-600-normal-plFmSr5g.woff2)format("woff2"),url(/assets/oswald-latin-600-normal-DRToI_2E.woff)format("woff")}:root{color:#e9e7df;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--background:#111311;--surface:#171a17;--surface-raised:#1d201d;--line:#30342f;--muted:#92988e;--text:#e9e7df;--accent:#d2af69;--accent-strong:#e7c989;--accent-contrast:#19160f;--accent-soft:#d2af691f;background:#111311;font-family:DM Sans,system-ui,sans-serif}[data-theme=light]{color:#272a25;--background:#f1f0ea;--surface:#faf9f4;--surface-raised:#eeece4;--line:#d6d3c8;--muted:#74786f;--text:#272a25;--accent:#75541d;--accent-strong:#5d4218;--accent-contrast:#fffaf0;--accent-soft:#75541d21;background:#f1f0ea}*{box-sizing:border-box}html{background:var(--background)}body{zoom:var(--interface-scale,1);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent);color:#15130d}#root{min-height:100vh}.app-shell{background:radial-gradient(circle at 50% -20%,#272920 0,var(--background) 38rem);min-height:100svh;padding-bottom:112px}.topbar{border-bottom:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#111311e0;grid-template-columns:1fr auto 1fr;align-items:center;height:76px;padding:0 32px;display:grid;position:sticky;top:0}.brand{align-items:center;gap:11px;display:flex}.brand-mark{width:34px;height:34px;color:var(--accent);border:1px solid #6c5a37;place-items:center;display:grid;transform:rotate(45deg)}.brand-mark svg{transform:rotate(-45deg)}.brand-name{letter-spacing:.05em;text-transform:uppercase;font-family:Oswald,sans-serif;font-size:19px}.brand-name span{color:var(--accent)}.faction-control{justify-self:center;position:relative}.faction-picker{border:1px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:7px;align-items:center;gap:11px;min-width:270px;padding:7px 12px 7px 8px;transition:all .2s;display:flex;position:relative}.faction-picker:hover{background:var(--surface-raised);border-color:#555b52}.faction-sigil{width:38px;height:38px;color:var(--faction-color);border:1px solid color-mix(in srgb,var(--faction-color),transparent 45%);background:color-mix(in srgb,var(--faction-color),transparent 88%);border-radius:4px;flex:none;place-items:center;font-family:Oswald,sans-serif;font-size:17px;display:grid}.faction-copy{flex-direction:column;flex:1;display:flex}.faction-copy small,.popover-heading small{color:var(--muted);text-transform:uppercase;letter-spacing:.13em;font-size:10px}.faction-copy strong{font-size:14px;font-weight:600}.rotate{transform:rotate(180deg)}.icon-button{cursor:pointer;width:38px;height:38px;color:var(--muted);background:0 0;border:0;border-radius:5px;place-items:center;display:grid}.icon-button:hover{color:var(--text);background:var(--surface-raised)}.menu-button{justify-self:end}.faction-popover{background:#1b1e1b;border:1px solid #3d413b;border-radius:8px;width:340px;padding:8px;position:absolute;top:68px;left:50%;transform:translate(-50%);box-shadow:0 24px 70px #0000007a}.popover-heading{justify-content:space-between;align-items:center;padding:9px 8px 12px 10px;display:flex}.popover-heading>div{flex-direction:column;gap:2px;display:flex}.popover-heading strong{font-size:15px}.faction-list{scrollbar-color:var(--line) transparent;gap:4px;max-height:min(520px,70vh);display:grid;overflow-y:auto}.faction-group{gap:3px;display:grid}.alliance-heading{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--text);cursor:pointer;text-align:left;background:#1b1e1b;align-items:center;gap:9px;padding:12px 9px;display:flex}.alliance-heading:hover{background:#252925}.alliance-heading>span{background:#7a7e77;border-radius:50%;width:8px;height:8px}.alliance-heading>strong{text-transform:uppercase;letter-spacing:.06em;flex:1;font:500 15px Oswald,sans-serif}.alliance-heading>small{color:var(--muted);font-size:9px}.alliance-heading svg{color:var(--muted);transition:transform .2s}.alliance-order .alliance-heading>span{background:#5085a7}.alliance-chaos .alliance-heading>span{background:#a9564d}.alliance-death .alliance-heading>span{background:#80629a}.alliance-destruction .alliance-heading>span{background:#718b4d}.faction-group>button:not(.alliance-heading){text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:center;gap:12px;padding:8px;display:flex}.faction-group>button:not(.alliance-heading):hover,.faction-group>button.selected{background:#252925}.faction-group>button:not(.alliance-heading)>span:nth-child(2){flex-direction:column;flex:1;display:flex}.faction-list strong{font-size:14px}.faction-list small{color:var(--muted);font-size:11px}.selection-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 4px var(--accent-soft);border-radius:50%;margin-right:8px}.topbar-actions{justify-self:end;align-items:center;gap:8px;display:flex}.language-control{flex-direction:column;align-items:center;gap:2px;display:flex}.language-control>div{border:1px solid var(--line);background:var(--surface);border-radius:5px;padding:2px;display:flex}.language-control button{height:25px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:0 7px;font-size:8px;font-weight:700}.language-control button.active{background:var(--accent);color:var(--accent-contrast)}.language-control>small{color:var(--accent);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:6px}.account-button.signed-in{color:var(--accent);background:var(--accent-soft)}.account-backdrop{z-index:200;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#060806b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.account-panel{border:1px solid var(--line);background:var(--surface);border-radius:9px;width:min(430px,100%);max-height:calc(100svh - 40px);padding:22px;overflow:auto;box-shadow:0 28px 80px #0000008c}.account-panel>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:18px;padding-bottom:16px;display:flex}.account-panel>header small{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:8px}.account-panel h2{text-transform:uppercase;margin:2px 0 0;font:500 25px Oswald,sans-serif}.account-panel p{color:var(--muted);font-size:11px;line-height:1.55}.account-panel form,.account-server-actions{gap:10px;display:grid}.account-panel form label{color:var(--muted);text-transform:uppercase;letter-spacing:.09em;gap:5px;font-size:8px;display:grid}.account-panel input{border:1px solid var(--line);background:var(--surface-raised);height:39px;color:var(--text);border-radius:5px;outline:0;padding:0 10px}.account-panel input:focus{border-color:var(--accent)}.account-primary,.account-server-actions>button,.account-file-actions button{border:1px solid var(--line);background:var(--surface-raised);color:var(--text);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:8px 11px;display:flex}.account-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast);font-weight:700}.account-link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:6px;font-size:9px}.account-server-actions>button{text-align:left;justify-content:flex-start}.account-server-actions>button>svg{color:var(--accent)}.account-server-actions>button span{flex-direction:column;gap:2px;display:flex}.account-server-actions>button small{color:var(--muted);font-size:8px}.account-server-actions .account-logout{color:var(--muted);background:0 0;border:0;justify-content:center;font-size:9px}.account-file-actions{border-top:1px solid var(--line);margin-top:19px;padding-top:15px}.account-file-actions h3{text-transform:uppercase;margin:0 0 9px;font:500 14px Oswald,sans-serif}.account-file-actions>div{grid-template-columns:1fr 1fr;gap:7px;display:grid}.account-file-actions button{font-size:9px}.account-message{border-left:3px solid var(--accent);background:var(--accent-soft);padding:8px 10px;color:var(--text)!important;margin:14px 0 0!important}.account-panel button:disabled{opacity:.45;cursor:wait}.shared-army-state{text-align:center;background:var(--background);min-height:100svh;color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.shared-army-state h1{text-transform:uppercase;margin:6px;font:600 34px Oswald}.shared-army-state p{color:var(--muted)}.shared-army-state a{color:var(--accent)}.shared-army-page{background:var(--background);min-height:100svh;color:var(--text);padding-bottom:50px}.shared-army-page>header{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;height:68px;padding:0 28px;display:flex}.shared-army-page>header .brand{color:var(--text);text-decoration:none}.shared-army-page>header>span{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:9px}.shared-army-page>main{width:min(900px,100% - 32px);margin:42px auto}.shared-army-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;margin-bottom:28px;padding-bottom:25px;display:flex}.shared-army-heading h1{text-transform:uppercase;margin:0;font:600 clamp(35px,6vw,58px)/1 Oswald}.shared-army-heading p{color:var(--muted)}.shared-army-heading>div:last-child{flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:6px;display:flex}.shared-army-heading>div:last-child>strong{color:var(--accent);font:600 34px Oswald}.shared-army-heading>div:last-child>small{color:var(--muted)}.shared-army-heading button{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent);cursor:pointer;border-radius:5px;flex-basis:100%;padding:9px}.shared-roster,.shared-options{margin-top:28px}.shared-roster h2,.shared-options h2{text-transform:uppercase;font:500 22px Oswald}.shared-roster>button{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);text-align:left;cursor:pointer;border-radius:6px;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;margin-bottom:7px;padding:8px;display:grid}.shared-roster>button>span:first-child{background:var(--accent-soft);width:52px;height:52px;color:var(--accent);border-radius:4px;place-items:center;display:grid;overflow:hidden}.shared-roster img{object-fit:cover;width:100%;height:100%}.shared-roster>button>span:nth-child(2){flex-direction:column;display:flex}.shared-roster small,.shared-options small{color:var(--muted);text-transform:uppercase;font-size:8px}.shared-roster b{color:var(--accent);font-size:11px}.shared-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.shared-options>h2,.shared-options>p{grid-column:1/-1}.shared-options article{border:1px solid var(--line);border-left:3px solid var(--accent);background:var(--surface);border-radius:5px;padding:13px}.shared-options article strong{text-transform:uppercase;margin:3px 0;font:500 16px Oswald;display:block}.shared-options article p{color:var(--muted);font-size:9px;line-height:1.5}@media (width<=700px){.shared-army-page>header{padding:0 14px}.shared-army-heading{flex-direction:column;align-items:start;gap:14px}.shared-army-heading>div:last-child{justify-content:flex-start}.shared-options{grid-template-columns:1fr}}.rule-timing,.shared-options article em{color:var(--phase,var(--accent));text-transform:uppercase;letter-spacing:.05em;margin:4px 0 7px;font-size:8px;font-style:normal;font-weight:700;display:block}.renown-profile{color:#343831;background:#e8e2d4;border-bottom:1px solid #c7c0b0;justify-content:center;gap:28px;padding:18px;display:flex}.renown-profile>span{flex-direction:column;align-items:center;gap:3px;display:flex}.renown-profile small{color:#77766f;letter-spacing:.1em;font-size:7px}.renown-profile strong{font:600 20px Oswald}.regiment-organisation{color:#343831;background:#f4f0e7;border-bottom:1px solid #c7c0b0;padding:22px 34px}.regiment-organisation>div:last-child{gap:6px;display:grid}.regiment-organisation button{color:#343831;text-align:left;cursor:pointer;background:#faf8f1;border:1px solid #c7c0b0;border-radius:5px;grid-template-columns:1fr auto auto;align-items:center;gap:12px;width:100%;min-height:48px;padding:8px 12px;display:grid}.regiment-organisation button>span{align-items:center;gap:10px;display:flex}.regiment-organisation button b{color:#755c2d;font:600 16px Oswald}.regiment-organisation button strong{text-transform:uppercase;font:500 15px Oswald}.regiment-organisation button small{color:#77766f;font-size:8px}.regiment-organisation button:disabled{opacity:.55;cursor:not-allowed}@media (width<=700px){.regiment-organisation{padding:18px 14px}.regiment-organisation button{grid-template-columns:1fr auto}.regiment-organisation button svg{display:none}}.compact-renown-organisation{border-block:1px solid var(--line);flex-wrap:wrap;gap:5px;padding:10px 0;display:flex}.compact-renown-organisation span{border:1px solid var(--line);background:var(--surface-raised);color:var(--muted);border-radius:4px;padding:5px 7px;font-size:8px}.compact-renown-organisation b{color:var(--accent)}.main-content{width:min(1120px,100% - 48px);margin:0 auto}.view{padding:64px 0 32px;animation:.32s ease-out reveal}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}}.view-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:34px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-weight:700;color:var(--accent)!important;margin-bottom:9px!important;font-size:10px!important}.view-heading h1{text-transform:uppercase;letter-spacing:-.025em;margin:0 0 12px;font:600 clamp(38px,5vw,56px)/1 Oswald,sans-serif}.view-heading p{color:var(--muted);margin:0;font-size:14px}.record-count{color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:7px 11px;font-size:12px}.search-box{border:1px solid var(--line);background:var(--surface);height:48px;color:var(--muted);border-radius:6px;align-items:center;gap:11px;padding:0 13px;display:flex}.search-box:focus-within{border-color:#777064}.search-box input{color:var(--text);background:0 0;border:0;outline:0;flex:1;min-width:0}.search-box kbd{border:1px solid #41453f;border-radius:4px;padding:3px 6px;font-family:inherit;font-size:10px}.filter-row{scrollbar-width:none;gap:7px;margin:16px 0 24px;display:flex;overflow-x:auto}.filter{white-space:nowrap;border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;padding:7px 12px;font-size:12px}.filter.active,.filter:hover{background:var(--accent-soft);color:var(--accent-strong);border-color:#66593f}.unit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.unit-card{border:1px solid var(--line);background:linear-gradient(145deg,#1b1e1b,#161916);border-radius:7px;padding:20px;transition:all .2s}.unit-card:hover{border-color:#4c514a;transform:translateY(-2px)}.unit-topline{color:var(--accent);text-transform:uppercase;letter-spacing:.15em;justify-content:space-between;align-items:center;font-size:10px;display:flex}.favorite{color:#62675f;cursor:pointer;background:0 0;border:0;padding:2px}.favorite.active{color:var(--accent)}.unit-card h2{text-transform:uppercase;letter-spacing:.01em;margin:10px 0 20px;font:500 22px/1.2 Oswald,sans-serif}.stat-line{border-block:1px solid var(--line);grid-template-columns:repeat(5,1fr);padding:12px 0;display:grid}.stat-line span{text-align:center;border-right:1px solid var(--line);flex-direction:column;display:flex}.stat-line span:last-child{border:0}.stat-line small{color:var(--muted);letter-spacing:.12em;font-size:9px}.stat-line strong{margin-top:2px;font:500 16px Oswald,sans-serif}.unit-footer{color:var(--muted);justify-content:space-between;align-items:center;margin-top:16px;font-size:11px;display:flex}.unit-footer strong{color:var(--text)}.unit-footer button{color:var(--accent);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;font-size:11px;font-weight:600;display:flex}.bottom-nav{z-index:30;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#1a1d1af0;border:1px solid #3c403a;border-radius:8px;padding:5px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 18px 44px #00000073}.bottom-nav button{min-width:150px;height:48px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;gap:9px;font-size:12px;font-weight:600;display:flex}.bottom-nav button.active{color:var(--accent-contrast);background:var(--accent)}.bottom-nav button:not(.active):hover{color:var(--text);background:#242824}.mobile-label{display:none}.points-total{color:var(--accent);font:600 34px Oswald,sans-serif}.points-total small{color:var(--muted);margin-left:5px;font:500 11px DM Sans}.roster-layout{grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:18px;display:grid}.roster-panel,.roster-summary{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:22px}.name-field{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;flex-direction:column;gap:7px;font-size:10px;display:flex}.name-field input{color:var(--text);border:0;border-bottom:1px solid var(--line);background:0 0;outline:0;padding:0 0 11px;font:500 22px Oswald,sans-serif}.progress{background:#292d28;height:3px;margin:16px 0 24px}.progress span{background:var(--accent);height:100%;transition:width .3s;display:block}.roster-list{gap:7px;display:grid}.roster-item{background:#1c201c;border:1px solid #30352f;border-radius:5px;align-items:center;gap:13px;padding:11px;display:flex}.role-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:4px;place-items:center;display:grid}.roster-image{flex:none;gap:4px;width:52px;display:grid;position:relative}.roster-thumb{border:1px solid var(--line);background:var(--accent-soft);width:52px;height:52px;color:var(--accent);cursor:pointer;border-radius:6px;place-items:center;display:grid;overflow:hidden}.roster-thumb.has-image{background:#111}.roster-thumb img{object-fit:cover;width:100%;height:100%;display:block}.proxy-image-action{background:var(--accent-soft);height:18px;color:var(--accent);text-transform:uppercase;cursor:pointer;border:1px solid #66593f;border-radius:4px;justify-content:center;align-items:center;gap:3px;font-size:7px;font-weight:700;display:flex}.proxy-image-action input{display:none}.proxy-image-remove{border:1px solid var(--line);background:var(--surface);width:18px;height:18px;color:var(--muted);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:absolute;top:-6px;right:-6px}.proxy-image-remove:hover{color:#fff;background:#9d4039;border-color:#9d4039}.roster-copy{flex-direction:column;flex:1;display:flex}.roster-copy strong{font-size:13px}.roster-copy small{color:var(--muted);margin-top:2px;font-size:10px}.quantity{align-items:center;gap:10px;display:flex}.quantity button{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:4px;place-items:center;width:27px;height:27px;display:grid}.quantity button:hover{border-color:var(--accent);color:var(--accent)}.quantity strong{text-align:center;min-width:10px;font-size:12px}.roster-summary{align-self:start}.roster-summary h2{text-transform:uppercase;margin:0 0 26px;font:500 25px Oswald,sans-serif}.summary-stat{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;padding:13px 0;font-size:11px;display:flex}.summary-stat strong{color:var(--text);font:500 17px Oswald}.status-note{color:var(--muted);gap:8px;margin:18px 0 0;font-size:10px;line-height:1.5;display:flex}.status-note svg{color:var(--accent);flex:none}.roster-entry-actions{align-items:center;gap:5px;display:flex}.roster-entry-actions button{border:1px solid var(--line);height:29px;color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;place-items:center;display:grid}.roster-entry-actions button:not(.reinforce-toggle){width:29px}.roster-entry-actions button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.roster-entry-actions .reinforce-toggle{text-transform:uppercase;padding:0 8px;font-size:8px;font-weight:700}.roster-entry-actions .reinforce-toggle.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.roster-entry-actions .reinforce-toggle:disabled{opacity:.45;cursor:not-allowed}.roster-entry-actions .remove-entry:hover{color:#cf746d;border-color:#9d4039}.rule-feature{background:radial-gradient(circle at 82% 20%,#d2af6921,#0000 34%),linear-gradient(135deg,#20231f,#171a17);border:1px solid #534a38;border-radius:7px;grid-template-columns:80px 1fr;align-items:center;min-height:235px;padding:36px;display:grid}.rule-number{color:#504a3d;align-self:start;font:600 40px Oswald}.rule-feature small,.rule-card small{color:var(--accent);text-transform:uppercase;letter-spacing:.16em;font-size:9px}.rule-feature h2{text-transform:uppercase;margin:8px 0 14px;font:500 clamp(28px,4vw,42px) Oswald}.rule-feature p{color:#a4aa9f;max-width:620px;margin:0;font-size:13px;line-height:1.7}.section-title{text-transform:uppercase;letter-spacing:.06em;margin:34px 0 14px;font:500 19px Oswald}.rule-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.rule-card{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:22px;position:relative}.rule-card>span{color:#393d37;font:500 24px Oswald;position:absolute;right:18px}.rule-card h3{text-transform:uppercase;margin:8px 0 10px;font:500 22px Oswald}.rule-card p{color:var(--muted);min-height:38px;font-size:12px;line-height:1.6}.rule-card button{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:10px 0 0;font-size:11px;font-weight:600}.rule-card button span{margin-left:5px}.empty-state{min-height:190px;color:var(--muted);border:1px dashed var(--line);border-radius:7px;flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;gap:8px;display:flex}.empty-state strong{color:var(--text);font-size:13px}.empty-state span{font-size:11px}.rule-card.selected-rule{background:linear-gradient(145deg,var(--surface-raised),var(--surface));border-color:#766744}.rule-card.selected-rule>span{color:var(--accent)}.rule-card-actions{align-items:center;gap:8px;margin-top:12px;display:flex}.rule-card-actions .rule-select{background:var(--accent-soft);color:var(--accent);text-transform:uppercase;letter-spacing:.04em;border:1px solid #66593f;border-radius:4px;align-items:center;gap:6px;padding:7px 9px;font-size:9px;font-weight:700;display:flex}.rule-card-actions .rule-select.selected{background:var(--accent);color:var(--accent-contrast)}.rule-card-actions select{border:1px solid var(--line);background:var(--surface-raised);min-width:0;height:32px;color:var(--text);border-radius:4px;flex:1;padding:0 8px;font-size:10px}.rule-card.phase-hero,.rule-card.phase-movement,.rule-card.phase-shooting,.rule-card.phase-charge,.rule-card.phase-fight,.rule-card.phase-end{border-left:4px solid var(--phase)}.rule-card.phase-hero small,.rule-card.phase-movement small,.rule-card.phase-shooting small,.rule-card.phase-charge small,.rule-card.phase-fight small,.rule-card.phase-end small{color:var(--phase)}@media (width<=700px){.app-shell{padding-bottom:92px}.topbar{grid-template-columns:34px 1fr auto;height:66px;padding:0 8px}.brand-name{display:none}.brand-mark{width:28px;height:28px}.brand-mark svg{width:16px}.topbar-actions{gap:1px}.topbar-actions .menu-button{width:30px}.language-control button{padding:0 5px;font-size:7px}.faction-picker{background:0 0;border:0;justify-self:center;width:min(190px,100%);min-width:0;padding:4px 5px}.faction-picker:hover{background:var(--surface)}.faction-sigil{width:32px;height:32px}.faction-copy small{display:none}.faction-copy strong{font-size:11px}.faction-popover{width:min(340px,100vw - 24px);top:59px}.main-content{width:min(100% - 28px,620px)}.view{padding-top:36px}.view-heading{align-items:start;margin-bottom:25px}.view-heading h1{margin-bottom:9px;font-size:37px}.view-heading p{max-width:270px;font-size:12px}.record-count{display:none}.search-box{height:46px}.search-box kbd{display:none}.unit-grid,.rule-grid{grid-template-columns:1fr}.unit-card{padding:17px}.unit-card h2{margin-bottom:17px;font-size:20px}.bottom-nav{border-inline:0;width:100%;padding:5px 8px max(5px,env(safe-area-inset-bottom));border-bottom:0;border-radius:0;justify-content:space-around;bottom:0}.bottom-nav button{flex-direction:column;flex:1;gap:3px;min-width:0;height:56px;font-size:9px}.desktop-label{display:none}.mobile-label{display:inline}.roster-layout{grid-template-columns:1fr}.roster-summary{display:none}.roster-panel{padding:16px}.points-total{font-size:27px}.points-total small{text-align:right;margin:2px 0 0;display:block}.rule-feature{grid-template-columns:1fr;min-height:250px;padding:24px}.rule-number{font-size:26px}.rule-feature h2{font-size:30px}.rule-card p{min-height:0}}[data-theme=light] .app-shell{background:radial-gradient(circle at 50% -20%,#ded9c8 0,var(--background) 38rem)}[data-theme=light] .topbar{background:#f1f0eae6}[data-theme=light] .brand-mark{border-color:#a78b58}[data-theme=light] .faction-popover{background:#faf9f4;border-color:#c7c3b7;box-shadow:0 24px 70px #322d232e}[data-theme=light] .alliance-heading{background:#faf9f4}[data-theme=light] .faction-group>button:hover,[data-theme=light] .faction-group>button.selected{background:#eeece4}[data-theme=light] .search-box kbd{border-color:#c8c5ba}[data-theme=light] .unit-card{background:linear-gradient(145deg,#fffef9,#f4f2eb)}[data-theme=light] .bottom-nav{background:#faf9f4f2;border-color:#c9c5b9;box-shadow:0 18px 44px #322d2333}[data-theme=light] .bottom-nav button.active{color:var(--accent-contrast)}[data-theme=light] .bottom-nav button:not(.active):hover{background:#eeece4}[data-theme=light] .progress{background:#dedbd1}[data-theme=light] .roster-item{background:#f3f1ea;border-color:#d8d5ca}[data-theme=light] .rule-feature{background:radial-gradient(circle at 82% 20%,#8b692d1f,#0000 34%),linear-gradient(135deg,#fffdf7,#efede5);border-color:#bca779}[data-theme=light] .rule-feature p{color:#666b62}[data-theme=light] .rule-number,[data-theme=light] .rule-card>span{color:#c9c4b7}.open-warscroll{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;padding:0;display:flex}.open-warscroll h2{transition:color .2s}.open-warscroll:hover h2{color:var(--accent)}.open-warscroll svg{color:var(--muted);flex:none}.filter-spacer{flex:1}.expand-all{color:var(--accent);border-color:#66593f}.unit-card-actions{align-items:center;gap:8px;display:flex}.unit-footer .quick-expand{color:var(--muted);gap:4px}.unit-footer .quick-expand:hover{color:var(--text)}.unit-footer .quick-expand svg{transition:transform .2s}.group-toggle-all{color:#aeb4aa}.warscroll-groups,.rule-groups{gap:15px;display:grid}.content-group{border:1px solid var(--line);background:#171a1773;border-radius:7px;overflow:hidden}.content-group-heading{background:var(--surface);width:100%;height:53px;color:var(--text);cursor:pointer;text-align:left;border:0;justify-content:space-between;align-items:center;padding:0 16px;display:flex}.content-group-heading:hover{background:var(--surface-raised)}.content-group-heading>span{align-items:baseline;gap:9px;display:flex}.content-group-heading strong{text-transform:uppercase;letter-spacing:.04em;font:500 18px Oswald,sans-serif}.content-group-heading small{color:var(--muted);font-size:9px}.content-group-heading>svg{color:var(--accent);transition:transform .2s}.content-group>.unit-grid,.content-group>.rule-grid{padding:14px}.rules-toolbar{border:1px solid var(--line);background:var(--surface);height:44px;color:var(--muted);border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:0 8px 0 13px;font-size:10px;display:flex}.rules-toolbar>button{background:var(--accent-soft);height:30px;color:var(--accent);cursor:pointer;border:1px solid #66593f;border-radius:4px;align-items:center;gap:6px;padding:0 9px;font-size:9px;font-weight:700;display:flex}.rules-toolbar>button svg{transition:transform .2s}.rule-group .content-group-heading{border-left:3px solid var(--accent)}.add-controls{align-items:stretch;display:flex}.add-controls button{cursor:pointer;border:0;justify-content:center;align-items:center;font-weight:700;display:flex}.add-controls .quick-add-action{gap:7px}.add-controls .choose-army-action{border-left:1px solid;padding-inline:8px}.add-controls.compact{border:1px solid #66593f;border-radius:4px;overflow:hidden}.add-controls.compact button{background:var(--accent-soft);color:var(--accent);padding-block:5px;font-size:9px}.add-controls.compact .quick-add-action{padding-left:8px}.add-controls.compact button:hover{background:var(--accent);color:var(--accent-contrast)}.add-controls.compact .choose-army-action{padding-inline:6px}.compact-details{border-top:1px solid var(--line);gap:18px;margin-top:0;padding:16px 0 2px;animation:.2s ease-out compact-open;display:grid}@keyframes compact-open{0%{opacity:0;transform:translateY(-4px)}}.compact-section-title{text-transform:uppercase;align-items:center;gap:7px;margin-bottom:7px;display:flex}.compact-section-title strong{letter-spacing:.07em;font:500 12px Oswald,sans-serif}.compact-section-title span{background:var(--surface-raised);width:17px;height:17px;color:var(--muted);border-radius:50%;place-items:center;font-size:8px;display:grid}.compact-table-wrap{overflow-x:auto}.compact-weapon-table{border-collapse:collapse;width:100%;min-width:500px;font-size:9px}.compact-weapon-table th{color:#bdc2b9;text-transform:uppercase;letter-spacing:.05em;text-align:center;background:#2d322d;padding:6px 5px;font-size:7px}.compact-weapon-table th:first-child{text-align:left}.compact-weapon-table td{border-bottom:1px solid var(--line);text-align:center;padding:7px 5px}.compact-weapon-table td:first-child{text-align:left;width:38%}.compact-weapon-table td strong{color:var(--text);display:block}.compact-weapon-table td small{color:var(--accent);text-transform:uppercase;margin-top:2px;font-size:7px;display:block}.compact-abilities{gap:6px;display:grid}.compact-ability{--phase:#6c746c;border-left:3px solid var(--phase);background:var(--surface-raised);padding:9px 10px}.compact-ability>div{justify-content:space-between;align-items:start;gap:8px;display:flex}.compact-ability strong{text-transform:uppercase;font:500 11px Oswald,sans-serif}.compact-ability small{color:var(--phase);text-transform:uppercase;text-align:right;font-size:7px;font-weight:700}.compact-ability .compact-ability-meta{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;font-size:7px;display:block}.compact-ability p{color:var(--muted);margin:5px 0 0;font-size:9px;line-height:1.5}.compact-ability .ability-legend{color:var(--text);opacity:.7;border-bottom:1px solid var(--line);padding-bottom:6px;font-style:italic}.full-view-action{border:1px solid var(--line);width:100%;color:var(--accent);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;background:0 0;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:9px;font-weight:700;display:flex}.full-view-action:hover{background:var(--accent-soft);border-color:#66593f}.compact-ability-timing{flex-direction:column;align-items:flex-end;gap:3px;display:flex}.compact-ability-timing b,.ability-cost,.inline-cost{background:var(--phase);color:#fff;text-transform:uppercase;white-space:nowrap;border-radius:3px;padding:3px 6px;font-size:8px;line-height:1}.ability-name-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.ability-name-row h3{min-width:0}.inline-cost{background:var(--accent);color:var(--accent-contrast);vertical-align:middle;margin-left:7px;display:inline-block}.compact-keywords{flex-wrap:wrap;gap:5px;display:flex}.compact-keywords span{border:1px solid var(--line);background:var(--surface-raised);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-radius:3px;padding:4px 6px;font-size:7px;font-weight:700}.weapon-group+.weapon-group{margin-top:13px}.weapon-group h4{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:0 0 5px;font:500 10px Oswald,sans-serif}.weapon-group.full h3{text-transform:uppercase;letter-spacing:.09em;color:#555b53;border-left:3px solid #8c7343;margin:14px 0 7px;padding-left:8px;font:500 13px Oswald,sans-serif}.army-toolbar{align-items:end;gap:10px;margin:-8px 0 18px;display:flex}.army-toolbar label{color:var(--muted);text-transform:uppercase;letter-spacing:.13em;flex-direction:column;flex:1;gap:6px;font-size:9px;display:flex}.army-toolbar select{border:1px solid var(--line);background:var(--surface);height:44px;color:var(--text);text-transform:none;letter-spacing:0;border-radius:5px;padding:0 12px;font-size:13px}.army-toolbar>button,.create-army-action{background:var(--accent-soft);height:44px;color:var(--accent);cursor:pointer;border:1px solid #6c5a37;border-radius:5px;justify-content:center;align-items:center;gap:8px;padding:0 15px;font-size:11px;font-weight:700;display:flex}.army-toolbar>button:hover,.create-army-action:hover{background:var(--accent);color:var(--accent-contrast)}.role-icon{cursor:pointer;border:0}.role-icon:hover{color:var(--accent-strong)}.army-toolbar>.danger-action{color:#cf746d;background:#9d40391a;border-color:#713f3c}.army-toolbar>.danger-action:hover{color:#fff;background:#9d4039}.empty-armies{border:1px dashed var(--line);background:var(--surface);text-align:center;min-height:340px;color:var(--muted);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:30px;display:flex}.empty-armies h2{text-transform:uppercase;color:var(--text);margin:14px 0 4px;font:500 25px Oswald,sans-serif}.empty-armies p{margin:0 0 20px;font-size:12px}.empty-armies>button{background:var(--accent);color:var(--accent-contrast);cursor:pointer;border:0;border-radius:5px;align-items:center;gap:8px;padding:11px 15px;font-size:11px;font-weight:700;display:flex}.army-toolbar>.start-game-action{background:var(--accent);color:var(--accent-contrast)}.army-toolbar>.start-game-action:disabled{opacity:.35;cursor:not-allowed}.army-ruleset-panel{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.army-ruleset-panel label{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;flex-direction:column;gap:7px;font-size:9px;display:flex}.army-ruleset-panel select{border:1px solid var(--line);background:var(--surface);height:42px;color:var(--text);text-transform:none;letter-spacing:0;border-radius:5px;padding:0 11px;font-size:13px}.army-ruleset-panel p{color:var(--muted);margin:8px 0 0;font-size:10px;line-height:1.5}.army-rules-panel{border-top:1px solid var(--line);margin-top:24px;padding-top:22px}.army-rules-heading{justify-content:space-between;align-items:end;gap:18px;margin-bottom:14px;display:flex}.army-rules-heading h2{text-transform:uppercase;margin:0;font:500 24px Oswald,sans-serif}.army-rules-heading small{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:10px}.army-rule-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;display:grid}.army-rule-card{border:1px solid var(--line);background:#1b1f1b;border-radius:6px;padding:13px}.army-rule-card label{flex-direction:column;gap:7px;display:flex}.army-rule-card label>span{color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:700}.army-rule-card select{border:1px solid var(--line);background:var(--surface);height:38px;color:var(--text);border-radius:4px;min-width:0;padding:0 9px;font-size:12px}.hero-assignment{margin-top:9px}.army-rule-preview{border-top:1px solid var(--line);margin-top:11px;padding-top:10px}.army-rule-preview>strong{text-transform:uppercase;font:500 16px Oswald,sans-serif;display:block}.army-rule-preview>small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-top:2px;font-size:8px;display:block}.army-rule-preview p{color:var(--muted);margin:9px 0 0;font-size:10px;line-height:1.55}.army-rule-preview p span{color:var(--text);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-size:9px;font-weight:700;display:block}.army-rule-empty{color:var(--muted);margin:10px 0 0;font-size:10px;line-height:1.5}.selected-rule-list{border-top:1px solid var(--line);gap:7px;margin-top:4px;padding-top:13px;display:grid}.selected-rule-list span{flex-direction:column;gap:2px;display:flex}.selected-rule-list small{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:8px}.selected-rule-list strong{text-transform:uppercase;color:var(--text);font-size:11px}.selected-rule-list em{color:var(--accent);font-size:9px;font-style:normal}.army-warning-list{border-top:1px solid var(--line);gap:6px;margin-top:12px;padding-top:12px;display:grid}.army-warning-list span{color:#d7c58e;background:#b4912617;border-left:3px solid #b49126;padding:7px 8px;font-size:9px;line-height:1.35}.army-peek{z-index:60;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#191c19f5;border:1px solid #444940;border-radius:8px;width:min(330px,100vw - 28px);position:fixed;bottom:24px;right:24px;overflow:hidden;box-shadow:0 18px 55px #00000073}.army-peek-summary{width:100%;height:58px;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:7px 11px;display:flex}.army-peek-summary:hover{background:var(--surface-raised)}.army-peek-sigil{width:34px;height:34px;color:var(--faction-color);border:1px solid color-mix(in srgb,var(--faction-color),transparent 40%);background:color-mix(in srgb,var(--faction-color),transparent 88%);border-radius:50%;place-items:center;display:grid}.army-peek-summary>span:nth-child(2){flex-direction:column;flex:1;min-width:0;display:flex}.army-peek-summary>span:nth-child(2) small{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-size:8px}.army-peek-summary>span:nth-child(2) strong{white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.army-peek-points{color:var(--accent);align-items:baseline;gap:2px;display:flex}.army-peek-points strong{font:600 20px Oswald}.army-peek-points small{color:var(--muted);font-size:8px}.army-peek-summary>svg{color:var(--muted);transition:transform .2s}.army-peek-body{border-top:1px solid var(--line);animation:.2s ease-out compact-open}.army-peek-heading{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;padding:10px 12px 7px;font-size:8px;display:flex}.army-peek-list{max-height:250px;padding:0 7px;overflow-y:auto}.army-peek-item{border-bottom:1px solid var(--line);align-items:center;gap:8px;display:flex}.army-peek-unit{min-width:0;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;padding:9px 6px}.army-peek-unit:hover{background:var(--surface-raised)}.army-peek-unit>span{flex-direction:column;min-width:0;display:flex}.army-peek-list strong{white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.army-peek-list small{color:var(--muted);margin-top:2px;font-size:8px}.army-peek-quantity{flex:none;align-items:center;gap:6px;display:flex}.army-peek-quantity button{border:1px solid var(--line);width:25px;height:25px;color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;place-items:center;display:grid}.army-peek-quantity button:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.army-peek-quantity strong{text-align:center;min-width:12px;color:var(--text);font-size:9px}.army-peek-builder{background:var(--accent-soft);width:100%;color:var(--accent);cursor:pointer;border:0;justify-content:center;align-items:center;gap:6px;padding:10px;font-size:9px;font-weight:700;display:flex}.army-peek-builder:hover{background:var(--accent);color:var(--accent-contrast)}.army-peek-rules{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:0 10px 8px;display:grid}.army-peek-rules span{border:1px solid var(--line);background:var(--surface-raised);border-radius:4px;min-width:0;padding:6px}.army-peek-rules small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis;font-size:7px;display:block;overflow:hidden}.army-peek-rules strong,.army-peek-rules em{color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:8px;display:block;overflow:hidden}.army-peek-rules em{color:var(--accent);font-style:normal}.modal-backdrop{z-index:110;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#050705c2;place-items:center;padding:20px;animation:.2s ease-out modal-in;display:grid;position:fixed;inset:0}@keyframes modal-in{0%{opacity:0}}.army-picker-modal{background:var(--surface);border:1px solid #484c45;border-radius:9px;width:min(520px,100%);max-height:calc(100svh - 40px);padding:24px;overflow:auto;box-shadow:0 30px 100px #0009}.modal-heading{border-bottom:1px solid var(--line);justify-content:space-between;gap:18px;padding-bottom:18px;display:flex}.modal-heading h2{text-transform:uppercase;margin:0 0 5px;font:500 25px/1.2 Oswald,sans-serif}.modal-heading p{color:var(--muted);margin:0;font-size:11px}.army-choice-list{gap:7px;margin:18px 0;display:grid}.army-choice-list>button{border:1px solid var(--line);background:var(--surface-raised);width:100%;color:var(--text);text-align:left;cursor:pointer;border-radius:6px;align-items:center;gap:12px;padding:11px;display:flex}.army-choice-list>button:hover{background:var(--accent-soft);border-color:#766744}.army-choice-list>button>span:nth-child(2){flex-direction:column;flex:1;display:flex}.army-choice-list strong{font-size:13px}.army-choice-list small{color:var(--muted);margin-top:2px;font-size:10px}.army-choice-list>button>svg{color:var(--accent)}.army-choice-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.no-armies{color:var(--muted);text-align:center;padding:18px;font-size:12px}.create-army-action{width:100%}.army-choice-row{border:1px solid var(--line);background:var(--surface-raised);border-radius:6px;align-items:center;gap:11px;padding:10px;display:flex}.army-choice-copy{flex-direction:column;flex:1;min-width:0;display:flex}.army-choice-actions{gap:5px;display:flex}.army-choice-actions button{border:1px solid var(--line);height:32px;color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;align-items:center;gap:5px;padding:0 8px;font-size:8px;font-weight:700;display:flex}.army-choice-actions button:hover{border-color:var(--accent);color:var(--accent)}.army-choice-actions .reinforced-add{background:var(--accent-soft);color:var(--accent-strong);border-color:#6c5a37}.create-army-buttons{gap:7px;display:grid}.warscroll-backdrop{z-index:100}.warscroll-detail{color:#24251f;background:#e7e2d4;border:1px solid #a79c83;border-radius:10px;width:min(1080px,100%);max-height:calc(100svh - 40px);overflow-y:auto;box-shadow:0 30px 100px #000000ad}.warscroll-header{color:#f1efe8;background:linear-gradient(120deg,#282d29,#394039);border-bottom:5px solid #a88748;padding:32px 76px 28px 34px;position:relative}.warscroll-header .eyebrow{margin:0 0 7px!important}.warscroll-header h2{text-transform:uppercase;letter-spacing:-.02em;margin:0 0 14px;font:600 clamp(30px,5vw,48px)/1 Oswald,sans-serif}.warscroll-header>div>p:last-child{color:#c2c6bd;max-width:830px;margin:0;font-size:12px;line-height:1.6}.close-warscroll{color:#d9ddd5;cursor:pointer;background:0 0;border:1px solid #555d55;border-radius:50%;place-items:center;width:40px;height:40px;display:grid;position:absolute;top:22px;right:22px}.close-warscroll:hover{background:#4a514a}.warscroll-profile{background:#f4f0e6;border-bottom:1px solid #beb6a4;justify-content:space-between;align-items:center;gap:24px;padding:24px 34px;display:flex}.profile-orbs{flex-wrap:wrap;gap:13px;display:flex}.profile-orbs>span{background:#faf8f1;border:3px solid #4d554d;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:76px;height:76px;display:flex;box-shadow:inset 0 0 0 3px #d7d1c2}.profile-orbs small{letter-spacing:.12em;color:#666b63;font-size:8px}.profile-orbs strong{color:#22251f;font:600 23px Oswald,sans-serif}.unit-cost{border-left:1px solid #c9c1af;grid-template-columns:auto auto;align-items:center;column-gap:10px;padding-left:24px;display:grid}.unit-cost small{letter-spacing:.15em;color:#73766f;grid-column:1/-1;font-size:8px}.unit-cost strong{font:600 28px Oswald}.unit-cost span{color:#755c2d;font-size:12px;font-weight:700}.weapons-section,.abilities-section{padding:24px 34px}.warscroll-section-heading{text-transform:uppercase;border-bottom:2px solid #555b53;align-items:center;gap:9px;margin-bottom:10px;padding-bottom:8px;display:flex}.warscroll-section-heading span{letter-spacing:.05em;font:600 18px Oswald}.warscroll-section-heading small{color:#f4f0e6;background:#515951;border-radius:50%;place-items:center;width:20px;height:20px;font-size:9px;display:grid}.weapon-table-wrap{overflow-x:auto}.weapon-table{border-collapse:collapse;width:100%;min-width:680px;font-size:11px}.weapon-table th{color:#f5f2e9;text-transform:uppercase;letter-spacing:.08em;text-align:center;background:#5b625b;padding:8px;font-size:8px}.weapon-table th:first-child{text-align:left}.weapon-table td{text-align:center;border-bottom:1px solid #c7c0b0;padding:9px 8px}.weapon-table td:first-child{text-align:left;width:40%}.weapon-table td strong{font-size:11px;display:block}.weapon-table td small{color:#786d58;text-transform:uppercase;margin-top:2px;font-size:8px;display:block}.abilities-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ability-card{--phase:#6c746c;--phase-soft:#d6d8d2;border:1px solid #bcb6a7;border-top:4px solid var(--phase);background:#f7f4ec;border-radius:5px;padding:14px}.ability-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.ability-heading>span{background:var(--phase-soft);color:#252720;text-transform:uppercase;letter-spacing:.07em;border-radius:12px;padding:3px 8px;font-size:8px;font-weight:700}.ability-heading small{color:var(--phase);text-transform:uppercase;text-align:right;font-size:8px;font-weight:700}.ability-card h3{text-transform:uppercase;margin:10px 0 7px;font:600 16px Oswald}.ability-card p{color:#32362f;margin:0;font-size:10px;line-height:1.55}.ability-card .ability-legend{color:#4f514b;border-bottom:1px solid #d4cdbd;margin-bottom:8px;padding-bottom:8px;font-style:italic}.phase-hero{--phase:#c9931d;--phase-soft:#f5e1a5}.phase-movement{--phase:#68706b;--phase-soft:#e0e2df}.phase-shooting{--phase:#2f6f9f;--phase-soft:#cfe3f1}.phase-charge{--phase:#d0611f;--phase-soft:#f3d1b8}.phase-fight{--phase:#a53a34;--phase-soft:#ebd0cd}.phase-end{--phase:#7453a5;--phase-soft:#dfd4ef}.ability-rule-text{gap:8px;display:grid}.ability-rule-text p{margin:0}.ability-rule-text p+p{border-top:1px solid #ddd6c7;padding-top:8px}.ability-rule-text strong{color:var(--phase);text-transform:uppercase;letter-spacing:.04em;font-size:9px}.warscroll-footer{background:#d8d2c3;border-top:1px solid #bcb4a3;justify-content:space-between;align-items:center;gap:20px;padding:18px 34px;display:flex}.keyword-list{flex-wrap:wrap;gap:5px;display:flex}.keyword-list span{color:#4f514b;border:1px solid #a69d89;border-radius:3px;padding:4px 6px;font-size:8px;font-weight:700}.warscroll-footer>button{color:#f5f2e9;cursor:pointer;background:#424a43;border:0;border-radius:4px;flex:none;align-items:center;gap:8px;padding:10px 14px;font-size:11px;font-weight:700;display:flex}.warscroll-footer>button:hover{background:#755c2d}.warscroll-footer .add-controls{border-radius:4px;flex:none;overflow:hidden}.warscroll-footer .add-controls button{color:#f5f2e9;background:#424a43;padding:10px 12px;font-size:10px}.warscroll-footer .add-controls button:hover{background:#755c2d}.warscroll-footer .add-controls .choose-army-action{border-left-color:#697069}[data-theme=light] .army-picker-modal{border-color:#c3beb0;box-shadow:0 30px 100px #322d2340}[data-theme=light] .army-toolbar>button,[data-theme=light] .create-army-action{border-color:#aa8a50}[data-theme=light] .modal-backdrop{background:#22201b94}[data-theme=light] .compact-weapon-table th{color:#fff;background:#666d64}[data-theme=light] .compact-ability{background:#eeece4}[data-theme=light] .army-peek{background:#faf9f4f7;border-color:#c5c1b5;box-shadow:0 18px 55px #322d2338}[data-theme=light] .army-rule-card{background:#fbfaf5}[data-theme=light] .army-warning-list span{color:#705719;background:#75541d1a}[data-theme=light] .content-group{background:#faf9f480}@media (width>=701px) and (width<=1100px){.army-peek{bottom:94px}}@media (width<=700px){.army-toolbar{align-items:stretch}.army-toolbar>button{width:44px;padding:0;font-size:0}.roster-item{flex-wrap:wrap;align-items:flex-start}.roster-copy{min-width:calc(100% - 70px)}.roster-entry-actions{justify-content:flex-end;width:100%}.roster-entry-actions .reinforce-toggle{margin-right:auto}.army-rule-grid{grid-template-columns:1fr}.army-rules-heading{align-items:start}.army-peek{width:calc(100vw - 28px);bottom:72px;right:14px}.army-peek.open .army-peek-list{max-height:35svh}.content-group-heading{height:48px;padding-inline:12px}.content-group-heading strong{font-size:16px}.content-group>.unit-grid,.content-group>.rule-grid{padding:9px}.rules-toolbar>span{max-width:50%;line-height:1.2}.army-picker-modal{width:calc(100% + 40px);max-height:85svh;padding:22px 20px calc(22px + env(safe-area-inset-bottom));border-radius:14px 14px 0 0;align-self:end}.warscroll-backdrop{padding:0}.warscroll-detail{border:0;border-radius:0;width:100%;height:100svh;max-height:none}.warscroll-header{padding:26px 58px 24px 20px}.warscroll-header h2{font-size:32px}.warscroll-header>div>p:last-child{max-height:80px;overflow:auto}.close-warscroll{top:18px;right:14px}.warscroll-profile{padding:18px 14px;display:block}.profile-orbs{justify-content:center;gap:6px}.profile-orbs>span{border-width:2px;width:60px;height:60px;box-shadow:inset 0 0 0 2px #d7d1c2}.profile-orbs strong{font-size:19px}.unit-cost{border:0;border-top:1px solid #c9c1af;justify-content:center;gap:9px;margin-top:14px;padding:12px 0 0;display:flex}.unit-cost small{font-size:8px}.unit-cost strong{font-size:18px}.weapons-section,.abilities-section{padding:20px 14px}.abilities-grid{grid-template-columns:1fr}.warscroll-footer{padding:16px 14px calc(76px + env(safe-area-inset-bottom));flex-direction:column;align-items:flex-start}.warscroll-footer .add-controls{width:100%}.warscroll-footer .quick-add-action{flex:1}}.game-shell{background:radial-gradient(circle at 50% -20%,#292b21 0,var(--background) 42rem);min-height:100svh;padding-bottom:40px}.game-header{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:40;background:#111311e6;grid-template-columns:1fr auto 1fr;align-items:center;height:70px;padding:0 26px;display:grid;position:sticky;top:0}.game-header>div{flex-direction:column;align-items:center;display:flex}.game-header small{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:8px}.game-header strong{text-transform:uppercase;font:500 17px Oswald,sans-serif}.game-header>span{color:var(--accent);text-transform:uppercase;letter-spacing:.1em;justify-self:end;font-size:10px}.game-exit{color:var(--muted);cursor:pointer;background:0 0;border:0;justify-self:start;align-items:center;gap:7px;padding:8px;font-size:10px;display:flex}.game-exit:hover{color:var(--text)}.game-tabs{border:1px solid var(--line);background:var(--surface);border-radius:7px;grid-template-columns:1fr 1fr;width:min(720px,100% - 28px);margin:22px auto 0;padding:5px;display:grid}.game-tabs button{height:43px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;gap:8px;font-size:11px;font-weight:700;display:flex}.game-tabs button.active{background:var(--accent);color:var(--accent-contrast)}.game-content{width:min(960px,100% - 32px);margin:28px auto}.victory-tracker{border:1px solid var(--line);background:var(--surface);border-radius:7px;grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:12px;width:min(520px,100%);margin:0 auto 18px;padding:10px 14px;display:grid}.victory-tracker>svg{color:var(--accent)}.score-divider{color:var(--muted);font:600 23px Oswald}.score-control{justify-content:space-between;align-items:center;gap:10px;display:flex}.score-control>small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:8px}.score-control>span{align-items:center;gap:7px;display:flex}.score-control button{border:1px solid var(--line);background:var(--surface-raised);width:27px;height:27px;color:var(--muted);cursor:pointer;border-radius:4px;place-items:center;display:grid}.score-control button:disabled{opacity:.3}.score-control strong{text-align:center;min-width:24px;color:var(--text);font:600 21px Oswald}.game-stage-card,.game-phase{border:1px solid var(--line);background:var(--surface);border-radius:9px;padding:clamp(24px,5vw,48px)}.game-stage-card>h1,.game-phase-title h1,.game-section-heading h1{text-transform:uppercase;margin:0;font:600 clamp(32px,5vw,48px)/1 Oswald,sans-serif}.game-stage-summary{color:var(--muted);max-width:680px;margin:15px 0 27px;font-size:13px;line-height:1.65}.game-checklist{gap:8px;display:grid}.game-checklist label{border:1px solid var(--line);background:var(--surface-raised);cursor:pointer;border-radius:5px;align-items:center;gap:11px;padding:13px 14px;font-size:12px;display:flex}.game-checklist input{accent-color:var(--accent);width:16px;height:16px}.game-reminders{border-left:3px solid var(--accent);background:var(--accent-soft);gap:6px;margin-top:20px;padding:14px;display:grid}.game-reminders strong{text-transform:uppercase;letter-spacing:.08em;font-size:10px}.game-reminders span{color:var(--muted);font-size:11px}.player-choice{border-top:1px solid var(--line);margin-top:25px;padding-top:20px}.player-choice p{margin:0 0 10px;font-size:12px;font-weight:700}.player-choice>div{gap:8px;display:flex}.player-choice button{border:1px solid var(--line);background:var(--surface-raised);color:var(--muted);cursor:pointer;border-radius:5px;flex:1;justify-content:center;align-items:center;gap:7px;padding:12px;font-size:11px;display:flex}.player-choice button.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.game-step-actions{justify-content:space-between;gap:12px;margin-top:15px;display:flex}.game-step-actions button{border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:5px;align-items:center;gap:8px;padding:12px 17px;font-size:11px;font-weight:700;display:flex}.game-step-actions button:disabled{opacity:.35;cursor:not-allowed}.game-step-actions .game-next{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);margin-left:auto}.game-phase{border-top:5px solid var(--phase)}.game-phase.phase-neutral{--phase:var(--accent)}.game-phase-title,.game-section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px;padding-bottom:22px;display:flex}.game-phase-title>span,.game-section-heading>span{color:var(--phase);border:1px solid var(--phase);text-transform:uppercase;letter-spacing:.08em;border-radius:20px;padding:6px 10px;font-size:9px}.game-action-list{border:1px solid var(--line);background:var(--surface-raised);border-radius:6px;padding:17px}.game-action-list h2,.game-ability-section>h2{text-transform:uppercase;margin:0 0 12px;font:500 19px Oswald,sans-serif}.game-action-list>div{color:var(--muted);align-items:center;gap:9px;padding:7px 0;font-size:11px;display:flex}.game-action-list svg{color:var(--phase)}.game-ability-section{margin-top:28px}.game-ability-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;display:grid}.game-ability-grid>article,.game-rule-list>article{border:1px solid var(--line);background:var(--surface-raised);border-radius:6px;overflow:hidden}.game-ability-grid>article>button{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;grid-template-columns:1fr auto;padding:12px;display:grid}.game-ability-grid>article>button span{color:var(--phase);text-transform:uppercase;grid-column:1/-1;font-size:8px}.game-ability-grid>article>button strong{text-transform:uppercase;font:500 16px Oswald,sans-serif}.game-ability{padding:13px}.game-ability+.game-ability{border-top:1px solid var(--line)}.game-ability small,.game-rule-list small{color:var(--phase);text-transform:uppercase;font-size:8px;font-weight:700}.game-ability h3,.game-rule-list h3{text-transform:uppercase;margin:5px 0 8px;font:500 15px Oswald,sans-serif}.game-ability p,.game-rule-list p{color:var(--muted);font-size:10px;line-height:1.55}.game-rule-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.game-rule-list>article{padding:14px}.game-empty-note{border:1px dashed var(--line);text-align:center;color:var(--muted);border-radius:5px;margin-top:24px;padding:18px;font-size:11px}.game-unit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;display:grid}.game-unit{border:1px solid var(--line);background:var(--surface);border-radius:7px;transition:all .2s;overflow:hidden}.game-unit.dead{opacity:.55;filter:grayscale()}.game-unit.dead .dead-toggle{color:var(--accent-strong);font-weight:700}.game-unit-open{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:70px 1fr auto;align-items:center;gap:13px;padding:10px;display:grid}.game-unit-open .unit-image.compact{width:70px;height:70px}.game-unit-open>span{flex-direction:column;min-width:0;display:flex}.game-unit-open small{color:var(--accent);text-transform:uppercase;font-size:8px}.game-unit-open strong{text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font:500 18px Oswald,sans-serif;overflow:hidden}.game-unit-open em{color:var(--muted);margin-top:3px;font-size:9px;font-style:normal}.unit-health-controls{border-top:1px solid var(--line);background:var(--surface-raised);grid-template-columns:1fr auto 1fr 1fr;align-items:center;display:grid}.unit-health-controls button{border:0;border-right:1px solid var(--line);height:34px;color:var(--muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:5px;font-size:8px;display:flex}.unit-health-controls button:disabled{opacity:.3;cursor:not-allowed}.unit-health-controls>strong{text-align:center;min-width:58px;color:var(--text);font:600 17px Oswald}.unit-health-controls>strong small{color:var(--muted);font:500 8px DM Sans}.unit-health-controls .dead-toggle{color:#c96861;border-right:0}.game-section-heading .eyebrow{margin:0 0 8px!important}.resource-trackers{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;display:grid}.resource-trackers .victory-tracker,.command-tracker{border:1px solid var(--line);background:var(--surface);border-radius:7px;grid-template-columns:auto 1fr auto 1fr;align-items:center;gap:10px;width:100%;margin:0;padding:10px 12px;display:grid}.command-tracker>svg{color:#8d72c3}.game-command-section{margin-top:28px}.game-command-heading{justify-content:space-between;align-items:end;margin-bottom:12px;display:flex}.game-command-heading h2{text-transform:uppercase;margin:0;font:500 19px Oswald,sans-serif}.game-command-heading>span{color:var(--phase);text-transform:uppercase;font-size:9px;font-weight:700}.game-command-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.game-command-grid article{border:1px solid color-mix(in srgb,var(--phase),var(--line) 60%);background:var(--surface-raised);border-radius:6px;flex-direction:column;padding:14px;display:flex}.game-command-grid header{justify-content:space-between;gap:10px;display:flex}.game-command-grid header small{color:var(--phase);text-transform:uppercase;font-size:8px;font-weight:700}.game-command-grid h3{text-transform:uppercase;margin:4px 0 10px;font:500 17px Oswald,sans-serif}.game-command-grid header>b{background:var(--phase);color:#fff;white-space:nowrap;border-radius:3px;height:25px;padding:5px 7px;font-size:9px}.game-command-grid p{color:var(--muted);margin:4px 0;font-size:10px;line-height:1.5}.game-command-grid p>strong{color:var(--text);text-transform:uppercase;font-size:8px}.game-command-grid footer{flex-wrap:wrap;gap:4px;margin:10px 0;display:flex}.game-command-grid footer span{border:1px solid var(--line);color:var(--muted);text-transform:uppercase;border-radius:3px;padding:3px 5px;font-size:7px}.game-command-grid>article>button{background:var(--phase);color:#fff;cursor:pointer;border:0;border-radius:4px;justify-content:center;align-items:center;gap:6px;min-height:34px;margin-top:auto;font-size:9px;font-weight:700;display:flex}.game-command-grid>article>button.used{background:var(--surface);border:1px solid var(--phase);color:var(--phase)}.game-command-grid>article>button:disabled{opacity:.35;cursor:not-allowed}.game-header>.game-header-actions{justify-self:end;align-items:flex-end;gap:4px}.game-header-actions>span{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-size:9px}.game-header-actions .language-control{align-items:flex-end}[data-theme=light] .game-header{background:#faf9f4eb}@media (width<=700px){.game-header{grid-template-columns:70px 1fr 100px;height:62px;padding:0 10px}.game-header strong{font-size:14px}.game-header>span{text-align:right;font-size:8px}.game-header-actions>span,.game-header-actions .language-control>small{display:none}.game-exit{font-size:0}.game-tabs{margin-top:12px}.game-content{margin-top:16px}.resource-trackers{grid-template-columns:1fr}.victory-tracker,.command-tracker{grid-template-columns:auto 1fr auto 1fr;gap:6px;padding:8px}.score-control{flex-direction:column;gap:3px}.score-control>small{font-size:6px}.game-stage-card,.game-phase{padding:22px 16px}.game-stage-card>h1,.game-phase-title h1,.game-section-heading h1{font-size:31px}.game-ability-grid,.game-rule-list,.game-unit-grid,.game-command-grid{grid-template-columns:1fr}.player-choice>div{flex-direction:column}.game-phase-title,.game-section-heading{align-items:start}.game-unit-open{grid-template-columns:60px 1fr auto}.game-unit-open .unit-image.compact{width:60px;height:60px}}.unit-image{border:1px solid var(--line);background:linear-gradient(135deg,#252923,#171a17);border-radius:6px;min-height:150px;position:relative;overflow:hidden}.unit-image.compact{aspect-ratio:16/8;min-height:0;margin:-4px 0 15px}.unit-image img{object-fit:cover;width:100%;height:100%;display:block}.unit-image-placeholder{height:100%;min-height:inherit;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:10px;display:flex}.unit-image-placeholder a{color:var(--accent);background:var(--accent-soft);border:1px solid #66593f;border-radius:4px;padding:5px 8px;font-size:9px;font-weight:700;text-decoration:none}.unit-image-placeholder a:hover{background:var(--accent);color:var(--accent-contrast)}.warscroll-header{grid-template-columns:minmax(0,1fr) 220px;align-items:start;gap:24px;display:grid}.warscroll-header>.unit-image{border-color:#555d55;min-height:160px;margin-top:14px}.warscroll-header>.unit-image .unit-image-placeholder{background:#0000001f;min-height:160px}[data-theme=light] .unit-image{background:linear-gradient(135deg,#ebe7dc,#faf9f4)}.points-limit-field{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:center;margin:12px 0;font-size:9px;display:flex}.points-limit-field select{border:1px solid var(--line);background:var(--surface-raised);color:var(--text);border-radius:4px;padding:7px 9px}.stat-line em,.profile-orbs em{color:var(--muted);text-transform:uppercase;white-space:nowrap;font-size:6px;font-style:normal;line-height:1}.profile-orbs em{color:#77796f;margin-top:1px}.ritual-tracker{border-top:1px solid var(--line);background:var(--surface-raised);justify-content:flex-end;align-items:center;gap:7px;padding:7px 10px;display:flex}.ritual-tracker span{color:var(--muted);text-transform:uppercase;margin-right:auto;font-size:8px}.ritual-tracker button{border:1px solid var(--line);background:var(--surface);width:24px;height:24px;color:var(--text);border-radius:4px;place-items:center;display:grid}.ritual-tracker button:disabled{opacity:.3}.game-ability.used{opacity:.6}.ability-used-toggle{border:1px solid var(--phase);color:var(--phase);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;gap:5px;margin-top:8px;padding:6px 8px;font-size:8px;display:flex}.ability-used-toggle:disabled{cursor:not-allowed}.army-composition-panel{border-top:1px solid var(--line);margin-top:22px;padding-top:22px}.army-composition-panel .army-rules-heading button{border:1px solid var(--line);background:var(--surface-raised);color:var(--accent);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:8px 10px;display:flex}.general-select,.regiment-card label,.composition-assignments label{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;gap:5px;font-size:9px;display:grid}.general-select select,.regiment-card select,.composition-assignments select{border:1px solid var(--line);background:var(--surface-raised);color:var(--text);border-radius:4px;padding:9px}.regiment-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.regiment-card{border:1px solid var(--line);background:var(--surface-raised);border-radius:5px;padding:12px}.regiment-card header{justify-content:space-between;align-items:center;margin-bottom:9px;display:flex}.regiment-card header button{color:var(--muted);cursor:pointer;background:0 0;border:0}.regiment-card>div{gap:4px;margin-top:9px;display:grid}.regiment-card>div span{color:var(--muted);justify-content:space-between;font-size:9px;display:flex}.regiment-card>div b{color:var(--accent);text-transform:uppercase;font-size:7px}.composition-assignments{gap:7px;margin-top:14px;display:grid}.composition-assignments>strong{text-transform:uppercase;font:500 16px Oswald}.composition-assignments label{grid-template-columns:minmax(120px,1fr) 180px;align-items:center}.army-error-list{gap:5px;margin-top:14px;display:grid}.army-error-list span{color:#e19a94;background:#b64c431f;border-left:3px solid #b64c43;padding:7px 9px;font-size:9px;line-height:1.35}.roster-entry-actions button:disabled{opacity:.35;cursor:not-allowed}@media (width<=700px){.warscroll-header{grid-template-columns:1fr}.warscroll-header>.unit-image{width:100%;min-height:140px;margin-top:0}}.warscroll-notes{color:#4f514b;background:#ebe7dc;border-bottom:1px solid #c7c0b0;padding:12px 34px;font-size:10px}.warscroll-notes p{margin:4px 0}.warscroll-notes strong{text-transform:uppercase;color:#755c2d;letter-spacing:.05em;font-size:8px}.damage-calculator{background:#f1ede3;border:1px solid #c7c0b0;border-radius:5px;margin-top:16px;overflow:hidden}.damage-calculator-toggle{color:#3c413a;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;display:flex}.damage-calculator-toggle>span{align-items:center;gap:7px;display:flex}.damage-calculator-toggle strong{text-transform:uppercase;letter-spacing:.05em;font:500 12px Oswald}.damage-calculator-toggle small{color:#77766f;font-size:8px}.damage-calculator-body{border-top:1px solid #d2ccbd;padding:12px}.damage-inputs{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.damage-inputs label{color:#77766f;text-transform:uppercase;letter-spacing:.07em;gap:4px;font-size:7px;display:grid}.damage-inputs input,.damage-inputs select{color:#252821;background:#faf8f1;border:1px solid #bbb3a2;border-radius:3px;width:100%;padding:7px}.damage-results{gap:3px;margin-top:10px;display:grid}.damage-results>div{border-top:1px solid #d8d2c4;justify-content:space-between;align-items:center;padding:7px 2px;display:flex}.damage-results>div>span{flex-direction:column;display:flex}.damage-results strong{color:#343831;font-size:10px}.damage-results small{color:#7a796f;text-transform:uppercase;font-size:7px}.damage-results b{color:#755c2d;font:600 18px Oswald}.damage-calculator-body>p{color:#77766f;margin:8px 0 0;font-size:7px;line-height:1.45}.compact-damage-estimate{color:var(--muted);justify-content:flex-end;align-items:center;gap:8px;padding:5px 2px 0;font-size:8px;display:flex}.compact-damage-estimate>small{text-transform:uppercase;letter-spacing:.05em;margin-right:auto;font-size:7px}.compact-damage-estimate span{white-space:nowrap}.compact-damage-estimate b{color:var(--accent-strong);font:600 11px Oswald}.unit-card-head{grid-template-columns:78px minmax(0,1fr);align-items:stretch;gap:13px;margin-bottom:14px;display:grid}.unit-card-title{flex-direction:column;justify-content:space-between;min-width:0;display:flex}.unit-card-head .unit-topline{min-height:24px}.unit-card-head .open-warscroll{align-items:flex-end;gap:8px;min-height:46px}.unit-card-head .open-warscroll h2{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:21px;display:-webkit-box;overflow:hidden}.unit-image.compact{aspect-ratio:auto;align-self:stretch;width:78px;height:78px;min-height:0;margin:0}.unit-image.compact .unit-image-placeholder{gap:5px;min-height:0;font-size:8px}.unit-image.compact .unit-image-placeholder a{padding:3px 5px;font-size:7px}.stat-line small{letter-spacing:.08em;font-size:8px}.stat-line{grid-template-columns:repeat(5,1fr)}.unit-topline .unit-topline-meta{color:var(--text);letter-spacing:.02em;white-space:nowrap;margin-left:auto;margin-right:1.5em;font:500 11px Oswald,sans-serif}.unit-topline-meta b{color:var(--accent-strong);font-size:15px}.unit-footer{justify-content:flex-end}.unit-card-actions{margin-left:auto}@media (width<=700px){.unit-card-head{grid-template-columns:70px minmax(0,1fr);gap:11px;margin-bottom:13px}.unit-card-head .open-warscroll{min-height:42px}.unit-card-head .open-warscroll h2{margin:0;font-size:20px}.unit-image.compact{width:70px;height:70px}}.font-scale-control{border:1px solid var(--line);background:var(--surface);border-radius:5px;align-items:center;height:31px;display:flex;overflow:hidden}.font-scale-control button{min-width:30px;height:100%;color:var(--text);cursor:pointer;background:0 0;border:0;font-size:9px;font-weight:700}.font-scale-control button:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-strong)}.font-scale-control button:disabled{opacity:.3;cursor:not-allowed}.font-scale-control span{min-width:36px;color:var(--muted);text-align:center;font-size:7px}.game-display-controls{gap:6px;flex-direction:row!important;align-items:center!important;display:flex!important}.legends-filter{color:#bb8daf;border-color:#77536f}.legends-filter.active{color:#d2a8c6;background:#7e4d712e;border-color:#9a6c8d}.publication-badge{letter-spacing:.07em;vertical-align:1px;border:1px solid;border-radius:3px;margin-left:6px;padding:2px 4px;font-size:6px;font-style:normal;line-height:1;display:inline-block}.publication-badge.legends{color:#bd81ad}.publication-badge.legends-soon{color:#d19a55}.points-range-filter{border:1px solid var(--line);background:var(--surface);border-radius:6px;margin:12px 0 0;padding:9px 12px}.points-range-heading{justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.points-range-heading>span{color:var(--muted);text-transform:uppercase;letter-spacing:.09em;font-size:8px}.points-range-heading button{color:var(--accent);cursor:pointer;background:0 0;border:0;font-size:8px}.points-range-heading button:disabled{opacity:.3}.points-range-controls{grid-template-columns:76px 1fr 76px;align-items:end;gap:12px;display:grid}.points-range-controls>label{gap:3px;display:grid}.points-range-controls>label span{color:var(--muted);text-transform:uppercase;font-size:7px}.points-range-controls>label input{border:1px solid var(--line);background:var(--surface-raised);width:100%;height:29px;color:var(--text);border-radius:4px;padding:0 7px;font-size:10px}.dual-range{align-items:center;height:29px;display:flex;position:relative}.dual-range-track{background:linear-gradient(to right,var(--line) 0 var(--range-start),var(--accent) var(--range-start) var(--range-end),var(--line) var(--range-end) 100%);border-radius:3px;height:4px;position:absolute;left:0;right:0}.dual-range input{appearance:none;pointer-events:none;background:0 0;width:100%;height:4px;margin:0;position:absolute;left:0}.dual-range input::-webkit-slider-thumb{border:2px solid var(--surface);appearance:none;background:var(--accent);pointer-events:auto;cursor:grab;border-radius:50%;width:15px;height:15px;box-shadow:0 0 0 1px #67583b}.dual-range input::-moz-range-thumb{border:2px solid var(--surface);background:var(--accent);pointer-events:auto;cursor:grab;border-radius:50%;width:12px;height:12px;box-shadow:0 0 0 1px #67583b}.dual-range input::-moz-range-track{background:0 0;border:0}@media (width<=700px){.points-range-controls{grid-template-columns:62px 1fr 62px;gap:8px}.points-range-filter{padding-inline:9px}}.modal-backdrop,.account-backdrop{width:var(--scaled-viewport-width,100vw);height:var(--scaled-viewport-height,100svh);inset:0 auto auto 0}.warscroll-detail,.army-picker-modal,.account-panel{max-height:calc(var(--scaled-viewport-height,100svh) - 40px)}@media (width<=700px){.warscroll-detail{height:var(--scaled-viewport-height,100svh);max-height:var(--scaled-viewport-height,100svh)}}.points-range-heading>div{align-items:center;gap:7px;display:flex}.points-range-heading .auto-fit{border:1px solid var(--line);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;max-width:260px;padding:5px 7px;overflow:hidden}.points-range-heading .auto-fit.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.points-range-filter.compact{grid-template-columns:auto minmax(280px,1fr) auto;align-items:center;gap:10px;padding:6px 9px;display:grid}.points-range-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:8px}.points-range-filter.compact .points-range-controls{grid-template-columns:58px minmax(120px,1fr) 58px;gap:8px}.points-range-filter.compact .points-range-controls>label{display:block}.points-range-filter.compact .points-range-controls>label span{display:none}.points-range-filter.compact .points-range-controls>label input{height:26px}.points-range-actions{align-items:center;gap:5px;display:flex}.points-range-actions button{height:26px;color:var(--accent);cursor:pointer;background:0 0;border:0;font-size:8px}.points-range-actions button:disabled{opacity:.3}.points-range-actions .auto-fit{border:1px solid var(--line);max-width:190px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;padding:0 7px;overflow:hidden}.points-range-actions .auto-fit.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.roster-regiment-select{border:1px solid var(--regiment-color);background:color-mix(in srgb,var(--regiment-color),var(--surface) 88%);max-width:142px;height:29px;color:var(--text);border-left-width:6px;border-radius:4px;padding:0 5px;font-size:8px;font-weight:700}.regiment-card{border-top:4px solid var(--regiment-color)}.regiment-card header{justify-content:flex-start}.regiment-card header i{background:var(--regiment-color);color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font:600 11px Oswald;display:grid}.regiment-card header strong{flex:1}.roster-legends-badge{color:#c78fb8;vertical-align:1px;border:1px solid #9a6c8d;border-radius:3px;margin-left:6px;padding:2px 4px;font-size:6px;font-style:normal}.roster-item.legends-entry{border-color:color-mix(in srgb,#9a6c8d,var(--line) 45%)}.regiment-card header input{border:0;border-bottom:1px solid color-mix(in srgb,var(--regiment-color),transparent 55%);min-width:0;color:var(--text);background:0 0;outline:0;flex:1;padding:3px 2px;font:500 14px Oswald,sans-serif}.regiment-card header input:focus{border-bottom-color:var(--regiment-color)}.roster-regiment-control{flex:0 0 150px;position:relative}.roster-regiment-trigger{border:1px solid color-mix(in srgb,var(--regiment-color),var(--line) 20%);background:color-mix(in srgb,var(--regiment-color),var(--surface) 90%);width:100%;height:31px;color:var(--text);cursor:pointer;text-align:left;border-radius:5px;grid-template-columns:21px minmax(0,1fr) auto;align-items:center;gap:6px;padding:3px 7px 3px 4px;display:grid}.roster-regiment-trigger i,.roster-regiment-menu i{background:var(--regiment-color);color:#fff;border-radius:4px;place-items:center;width:21px;height:21px;font:600 10px Oswald;display:grid}.roster-regiment-trigger span{text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:700;overflow:hidden}.roster-regiment-trigger svg{color:var(--muted)}.roster-regiment-menu{z-index:80;border:1px solid var(--line);background:var(--surface);border-radius:6px;gap:3px;width:210px;padding:5px;display:grid;position:absolute;top:35px;right:0;box-shadow:0 14px 34px #00000059}.roster-regiment-menu button{--regiment-color:#777d75;width:100%;height:34px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;grid-template-columns:23px minmax(0,1fr) 14px;align-items:center;gap:7px;padding:4px;display:grid}.roster-regiment-menu button:hover{background:color-mix(in srgb,var(--regiment-color),var(--surface) 88%);border-color:color-mix(in srgb,var(--regiment-color),var(--line) 35%)}.roster-regiment-menu button.selected{background:color-mix(in srgb,var(--regiment-color),var(--surface) 82%);border-color:var(--regiment-color)}.roster-regiment-menu span{text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;overflow:hidden}.roster-regiment-menu svg{color:var(--regiment-color)}@media (width<=700px){.roster-regiment-control{flex:160px}.roster-regiment-menu{left:0;right:auto}.points-range-filter.compact{grid-template-columns:1fr auto}.points-range-label{display:none}.points-range-filter.compact .points-range-controls{grid-template-columns:54px minmax(80px,1fr) 54px}.points-range-actions .auto-fit{max-width:115px}.roster-regiment-select{max-width:calc(100% - 116px);margin-left:auto}}
