:root{color:#17201c;font-synthesis:none;text-rendering:optimizelegibility;--canvas:#eef1ef;--surface:#fff;--surface-subtle:#f6f8f7;--surface-strong:#e3e9e6;--ink:#17201c;--ink-soft:#3d4943;--muted:#66716b;--border:#cbd3cf;--border-strong:#9eaaa4;--green:#1d5b42;--green-dark:#143f2e;--green-soft:#e5f0ea;--amber:#ad7424;--amber-soft:#f7eddd;--red:#a33f39;--red-soft:#f8e9e7;--steel:#356276;--shadow:0 14px 38px #17201c24;background:#eef1ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100dvh;overflow-x:hidden}html.builder-scroll-lock,body.builder-scroll-lock{overscroll-behavior:none;overflow:hidden}button,input,select{color:inherit;font:inherit;letter-spacing:0}button{border:0}button:not(:disabled),select:not(:disabled),input[type=checkbox]:not(:disabled){cursor:pointer}button:disabled{cursor:default;opacity:.42}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #35627652}h1,h2,h3,p{margin:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-root{min-height:100dvh}.brand{align-items:center;gap:12px;min-width:0;display:inline-flex}.brand-mark{border-radius:8px;flex:none;width:42px;height:42px}.brand-name{color:var(--ink);font-size:24px;font-weight:800}.brand-compact{gap:9px}.brand-compact .brand-mark{width:34px;height:34px}.brand-compact .brand-name{font-size:19px}.button,.icon-text-button,.icon-button,.text-button{border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:40px;font-weight:700;display:inline-flex}.button{border:1px solid #0000;padding:0 15px}.button-primary{color:#fff;background:var(--green);border-color:var(--green)}.button-primary:hover{background:var(--green-dark)}.button-secondary{color:var(--ink);background:var(--surface);border-color:var(--border)}.button-secondary:hover{background:var(--surface-subtle);border-color:var(--border-strong)}.button-small{min-height:34px;padding-inline:11px;font-size:13px}.icon-button{width:40px;min-width:40px;color:var(--ink-soft);background:0 0;padding:0}.icon-button:hover{background:var(--surface-strong);color:var(--ink)}.icon-text-button{min-height:38px;color:var(--ink-soft);background:0 0;padding:0 11px}.icon-text-button:hover{background:var(--surface-strong);color:var(--ink)}.text-button{min-height:34px;color:var(--green);background:0 0;padding:0 4px}.game-picker{background:var(--canvas);grid-template-rows:auto 1fr auto;min-height:100dvh;padding:24px clamp(18px,4vw,54px);display:grid}.game-picker-header,.game-picker-footer{justify-content:space-between;align-items:center;width:min(1040px,100%);margin:0 auto;display:flex}.game-choice-panel{align-self:center;width:min(860px,100%);margin:38px auto}.section-kicker{color:var(--green);text-transform:uppercase;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:800;display:flex}.game-choice-panel h1{margin-bottom:24px;font-size:34px;line-height:1.15}.game-choice-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.game-choice{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:8px;grid-template-columns:56px minmax(0,1fr) 24px;align-items:center;min-height:128px;padding:22px;display:grid;box-shadow:0 3px 10px #17201c0d}.game-choice:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:0 8px 22px #17201c17}.game-choice-warhammer_40k{border-top:4px solid var(--green)}.game-choice-legion{border-top:4px solid var(--steel)}.game-choice-icon{color:#fff;background:var(--green);border-radius:8px;place-items:center;width:48px;height:48px;display:grid}.game-choice-legion .game-choice-icon{background:var(--steel)}.game-choice-copy{flex-direction:column;gap:6px;min-width:0;display:flex}.game-choice-copy strong{font-size:19px}.game-choice-copy span{color:var(--muted);text-overflow:ellipsis;font-size:13px;line-height:1.4;overflow:hidden}.game-choice-arrow{color:var(--muted);font-size:30px;line-height:1}.game-picker-footer{color:var(--muted);font-size:12px}.app-version{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:baseline;gap:6px;display:inline-flex}.app-version strong{color:var(--ink-soft);font-weight:800}.app-version code{color:var(--muted);font-family:inherit;font-size:inherit}.app-version-separator{color:var(--border-strong)}.builder-shell{background:var(--canvas);overscroll-behavior:none;flex-direction:column;width:100%;height:100dvh;min-height:0;display:flex;position:fixed;top:0;left:0;overflow:hidden}.topbar{z-index:10;background:var(--surface);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:8px;min-height:58px;padding:8px 14px;display:flex}.brand-button,.game-switcher{background:0 0;align-items:center;display:inline-flex}.brand-button{border-radius:6px;padding:2px 8px 2px 2px}.brand-button:hover,.game-switcher:hover{background:var(--surface-subtle)}.game-switcher{min-height:36px;color:var(--ink-soft);border-left:1px solid var(--border);border-radius:0 6px 6px 0;gap:6px;padding:0 10px;font-size:13px;font-weight:700}.topbar-spacer{flex:1}.builder-setup{background:var(--surface-subtle);border-bottom:1px solid var(--border);flex:none;grid-template-columns:minmax(180px,1.5fr) minmax(180px,1fr) auto auto;align-items:end;gap:12px;padding:10px 16px;display:grid}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field>span,.points-summary>span{color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:800}.field input,.field select{background:var(--surface);border:1px solid var(--border);border-radius:5px;width:100%;min-width:0;height:38px;padding:0 10px}.field input:hover,.field select:hover{border-color:var(--border-strong)}.points-summary{background:var(--green-soft);border:1px solid #b9d0c3;border-radius:5px;flex-direction:column;justify-content:center;min-width:126px;height:38px;padding:0 12px;display:flex;position:relative}.points-summary-button{color:inherit;text-align:left}.points-summary-button:hover{border-color:var(--green);background:#dcebe3}.points-summary-button:active{transform:translateY(1px)}.points-summary strong{color:var(--green-dark);white-space:nowrap;padding-right:14px;font-size:14px}.points-summary-chevron{color:var(--green-dark);position:absolute;bottom:6px;right:7px}.points-summary.points-over{background:var(--red-soft);border-color:#dfb7b3}.points-summary.points-over strong{color:var(--red)}.save-button{height:38px}.builder-main{flex:1;grid-template-columns:minmax(430px,1.35fr) minmax(330px,.8fr);min-height:0;display:grid}.workspace-panel{background:var(--surface);flex-direction:column;min-width:0;min-height:0;display:flex}.catalog-panel{border-right:1px solid var(--border)}.roster-panel{background:var(--surface-subtle)}.panel-heading{flex:none;justify-content:space-between;align-items:center;gap:12px;min-height:64px;padding:10px 16px;display:flex}.panel-heading h2{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:17px;line-height:1.25;overflow:hidden}.panel-eyebrow{color:var(--muted);text-transform:uppercase;margin-bottom:2px;font-size:10px;font-weight:800;display:block}.result-count{color:var(--muted);flex:none;font-size:12px;font-weight:700}.catalog-tools{flex:none;gap:8px;padding:0 16px 10px;display:flex}.search-field{min-width:0;height:40px;color:var(--muted);background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;flex:1;align-items:center;gap:8px;padding:0 10px;display:flex}.search-field:focus-within{color:var(--green);background:var(--surface);border-color:var(--green)}.search-field input{background:0 0;border:0;outline:0;width:100%;min-width:0;height:100%;padding:0}.search-field button{width:26px;height:26px;color:var(--muted);background:0 0;border-radius:4px;flex:none;place-items:center;display:grid}.filter-button{background:var(--surface-subtle);border:1px solid var(--border);height:40px}.panel-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;overflow-y:auto}.catalog-scroll{padding:0 12px 20px}.unit-group{margin-bottom:9px}.unit-group-header{text-align:left;width:100%;min-height:39px;color:var(--ink-soft);border:1px solid var(--border-strong);background:#edf1ef;border-radius:5px;grid-template-columns:24px minmax(0,1fr) auto 20px;align-items:center;gap:8px;padding:0 10px;display:grid}.unit-group-header:hover{background:#e4ebe7;border-color:#7e8d85}.unit-group-header>span:not(.rank-icon){color:var(--muted);font-size:12px}.rank-icon{width:24px;height:24px;color:var(--green);place-items:center;display:grid}.unit-list{border-left:2px solid #d9dfdc;margin:5px 0 0 8px}.unit-row{background:var(--surface);border-bottom:1px solid #e3e7e5;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-height:68px;padding:5px 7px 5px 8px;display:grid}.unit-row:hover{background:var(--surface-subtle)}.unit-row-main{text-align:left;background:0 0;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;padding:0;display:grid}.unit-thumbnail{object-fit:contain;border:1px solid var(--border);background:#eef1ef;border-radius:5px;width:52px;height:52px}.unit-image-fallback{color:var(--green);grid-template-rows:1fr auto;place-items:center;padding:5px;display:grid}.unit-image-fallback span{font-size:9px;font-weight:900}.unit-row-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.unit-row-copy strong,.roster-row-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.25;overflow:hidden}.unit-row-copy>span,.roster-row-copy>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.count-badge{min-width:22px;height:22px;color:var(--green-dark);background:var(--green-soft);border:1px solid #b9d0c3;border-radius:8px;place-items:center;padding:0 6px;font-size:11px;font-weight:900;display:grid}.unit-points{color:var(--ink-soft);white-space:nowrap;font-size:12px;font-weight:800}.unit-row-actions{align-items:center;gap:8px;display:flex}.add-button,.remove-button,.roster-info-button{border-radius:5px;place-items:center;width:36px;height:36px;display:grid}.add-button{color:#fff;background:var(--green)}.add-button:hover{background:var(--green-dark)}.loading-list{gap:7px;padding-top:8px;display:grid}.loading-list span{background:#e4e9e6;border-radius:5px;height:64px;animation:1.2s ease-in-out infinite alternate loading-pulse}@keyframes loading-pulse{to{opacity:.48}}.roster-heading{padding-bottom:8px}.roster-detachment-button{text-align:left;width:calc(100% - 32px);min-height:50px;color:var(--ink-soft);background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;flex:none;grid-template-columns:30px minmax(0,1fr) auto 18px;align-items:center;gap:8px;margin:0 16px 9px;padding:7px 9px;display:grid}.roster-detachment-button:hover{background:#f5f8f6;border-color:#7e8d85}.roster-detachment-button:focus-visible{outline:2px solid var(--green);outline-offset:2px}.roster-detachment-icon{width:30px;height:30px;color:var(--green);background:var(--green-soft);border-radius:5px;place-items:center;display:grid}.roster-detachment-copy{flex-direction:column;gap:1px;min-width:0;display:flex}.roster-detachment-copy>span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:800}.roster-detachment-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.3;overflow:hidden}.roster-detachment-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;line-height:1.25;overflow:hidden}.roster-detachment-points{color:var(--amber);white-space:nowrap;font-size:12px;font-weight:800}.roster-detachment-points.points-over,.settings-section-heading.points-over span{color:var(--red)}.roster-detachment-button>svg{color:var(--muted)}.catalog-detachment-button{display:none}.roster-progress{background:#dfe5e2;border-radius:3px;flex:none;height:5px;margin:0 16px 10px;overflow:hidden}.roster-progress span{background:var(--green);max-width:100%;height:100%;transition:width .18s;display:block}.roster-progress-unlimited span{background:0 0}.roster-scroll{padding:0 12px}.roster-list{background:var(--surface);border:1px solid var(--border);border-radius:6px;overflow:hidden}.roster-formation-group{border-bottom:1px solid var(--border-strong);box-shadow:inset 3px 0 0 var(--green)}.roster-formation-group:last-child{border-bottom:0}.roster-formation-group>header{min-height:44px;color:var(--green-dark);background:var(--green-soft);border-bottom:1px solid var(--border);grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 9px;display:grid}.roster-formation-group>header>span{flex-direction:column;gap:1px;min-width:0;display:flex}.roster-formation-group>header>span:last-child{text-align:right;align-items:flex-end}.roster-formation-group>header strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.roster-formation-group>header small{color:var(--muted);text-transform:uppercase;white-space:nowrap;font-size:8px;font-weight:800}.roster-formation-members .roster-row:last-child{border-bottom:0}.roster-row{border-bottom:1px solid #e2e7e4;grid-template-columns:32px minmax(0,1fr) auto 34px;align-items:center;gap:7px;min-height:58px;padding:6px 7px;display:grid}.roster-row:last-child{border-bottom:0}.roster-row-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.roster-row-title{align-items:center;gap:5px;min-width:0;display:flex}.roster-row-title>strong{flex:0 auto;min-width:0}.roster-attachment-role{color:var(--green-dark);text-transform:uppercase;background:var(--green-soft);border:1px solid #b8cec2;border-radius:3px;flex:none;padding:2px 4px;font-size:8px;font-weight:900;line-height:1}.roster-attachment-role.role-support{color:var(--steel);background:#e8eff2;border-color:#bdcbd1}.roster-attachment-role.role-bodyguard{color:var(--muted);background:var(--surface-subtle);border-color:var(--border)}.roster-role-actions{flex-wrap:wrap;gap:3px;min-width:0;margin-top:1px;display:flex}.roster-role-button{min-width:0;max-width:100%;min-height:23px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;background:var(--surface-subtle);border:1px solid var(--border);border-radius:4px;align-items:center;gap:3px;padding:2px 6px;font-size:10px;font-weight:800;display:inline-flex;overflow:hidden}.roster-role-button:hover,.roster-role-button.active{color:var(--green-dark);background:var(--green-soft);border-color:#abc8b7}.roster-info-button{width:30px;height:30px;color:var(--steel);background:#e8eff2}.roster-row-points{white-space:nowrap;font-size:13px}.remove-button{width:32px;height:32px;color:var(--muted);background:0 0}.remove-button:hover{color:var(--red);background:var(--red-soft)}.model-count-select select{width:100%;max-width:220px;height:26px;color:var(--muted);background:var(--surface-subtle);border:1px solid var(--border);border-radius:4px;padding:0 23px 0 5px;font-size:11px}.roster-total{background:var(--surface);border-top:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:10px;min-height:68px;padding:10px 16px;display:flex}.roster-total>div{flex-direction:column;display:flex}.roster-total span{color:var(--muted);font-size:11px;font-weight:700}.roster-total strong{font-size:20px}.limit-warning{align-items:center;gap:5px;display:inline-flex;color:var(--red)!important}.empty-state{min-height:250px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:9px;padding:30px 20px;display:flex}.empty-state strong{color:var(--ink-soft)}.empty-state span{max-width:320px;font-size:13px}.compact-empty{min-height:190px}.error-state svg{color:var(--red)}.mobile-tabs,.mobile-only{display:none}.modal-backdrop,.details-backdrop,.nested-backdrop{z-index:50;background:#0f18148f;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border-strong);width:min(620px,100%);max-height:min(760px,100dvh - 40px);box-shadow:var(--shadow);border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:12px;min-height:66px;padding:12px 16px;display:flex}.modal-header h2{font-size:19px}.modal-body{flex:1;min-height:0;padding:16px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);flex:none;justify-content:flex-end;align-items:center;min-height:60px;padding:10px 16px;display:flex}.settings-body{flex-direction:column;gap:16px;display:flex}.points-limit-modal{width:min(440px,100%)}.battle-size-list{border:1px solid var(--border);border-radius:6px;overflow:hidden}.battle-size-option{background:var(--surface);border-bottom:1px solid var(--border);grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:54px;padding:6px 10px;display:grid}.battle-size-option:last-child{border-bottom:0}.battle-size-option:hover{background:var(--green-soft)}.battle-size-option:has(input:checked){background:var(--green-soft)}.battle-size-option input{width:18px;height:18px;accent-color:var(--green);margin:0}.battle-size-option>span{flex-direction:column;gap:1px;min-width:0;display:flex}.battle-size-option strong{font-size:13px}.battle-size-option small{color:var(--muted);font-size:11px}.battle-size-option b{color:var(--amber);font-size:12px}.custom-points-controls{flex-direction:column;gap:10px;display:flex}.points-limit-modal .modal-footer{gap:8px}.attachment-modal{width:min(520px,100%)}.attachment-body{flex-direction:column;gap:18px;display:flex}.attachment-clear-button{min-height:36px;color:var(--red);background:var(--red-soft);border:1px solid #dfb7b5;border-radius:5px;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:800;display:flex}.attachment-section h3{color:var(--ink-soft);text-transform:uppercase;margin-bottom:7px;font-size:12px}.attachment-list{border:1px solid var(--border);border-radius:5px;overflow:hidden}.attachment-option{width:100%;min-height:52px;color:var(--ink-soft);text-align:left;background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;display:flex}.attachment-option:last-child{border-bottom:0}.attachment-option:hover:not(:disabled),.attachment-option.selected{color:var(--green-dark);background:var(--green-soft)}.attachment-option:disabled{opacity:.5}.attachment-option>span:first-child{flex-direction:column;gap:2px;min-width:0;display:flex}.attachment-option strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.attachment-option small,.attachment-option>span:last-child{color:var(--muted);font-size:10px}.attachment-empty{color:var(--muted);margin:0;padding:14px;font-size:12px}.toggle-row{background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;gap:16px;min-height:58px;padding:9px 12px;display:flex}.toggle-row>span,.detachment-option-choice>span{flex-direction:column;gap:2px;min-width:0;display:flex}.toggle-row small,.detachment-option-choice small,.settings-section-heading span{color:var(--muted);font-size:11px}.toggle-row input,.detachment-option-choice input{width:19px;height:19px;accent-color:var(--green);flex:none}.detachment-settings{flex-direction:column;gap:8px;display:flex}.settings-section-heading{justify-content:space-between;align-items:center;display:flex}.settings-section-heading>div{flex-direction:column;display:flex}.detachment-list{border:1px solid var(--border);border-radius:6px;flex-direction:column;max-height:310px;display:flex;overflow-y:auto}.detachment-group h3{z-index:1;color:var(--green-dark);text-transform:uppercase;border-bottom:1px solid var(--border-strong);background:#e7efea;margin:0;padding:7px 10px;font-size:10px;position:sticky;top:0}.detachment-group+.detachment-group h3{border-top:1px solid var(--border-strong)}.detachment-option{border-bottom:1px solid #e1e6e3;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;min-height:53px;display:grid}.detachment-option-choice{cursor:pointer;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:7px 4px 7px 10px;display:grid}.detachment-option:last-child{border-bottom:0}.detachment-option:hover{background:var(--surface-subtle)}.detachment-option.selected{background:#f5f8f6}.detachment-option.selected .detachment-option-choice{align-items:start}.detachment-option.selected .detachment-option-choice>input,.detachment-option.selected .detachment-option-actions{margin-top:2px}.detachment-option-details{border-top:1px solid var(--border);gap:3px;margin-top:5px;padding-top:5px;display:grid}.detachment-option-detail{color:var(--ink-soft);justify-content:space-between;align-items:baseline;gap:10px;font-size:11px;line-height:1.3;display:flex}.detachment-option-detail>b{flex:none}.detachment-option-actions{align-self:start;align-items:center;gap:4px;padding:6px 8px 6px 2px;display:flex}.detachment-option-actions>b{color:var(--amber);white-space:nowrap;font-size:12px}.detachment-rule-button{width:32px;height:32px;color:var(--green)}.detachment-rule-button:hover{color:var(--green-dark);background:var(--green-soft)}.unit-upgrades-modal{width:min(560px,100%)}.unit-loadout-modal{width:min(700px,100%)}.unit-loadout-body{flex-direction:column;gap:12px;display:flex}.unit-loadout-body>*{flex:none}.loadout-size-field{border:1px solid var(--border);border-radius:5px;grid-template-columns:minmax(0,1fr) minmax(170px,auto);align-items:center;gap:12px;min-height:54px;padding:7px 10px;display:grid}.loadout-size-field>span,.loadout-choice-copy{flex-direction:column;gap:2px;min-width:0;display:flex}.loadout-size-field small,.loadout-choice-copy small{color:var(--muted);font-size:10px;line-height:1.25}.loadout-size-field select,.loadout-slot select,.loadout-pair-grid select{width:100%;min-width:0;height:34px;color:var(--ink);background:var(--surface);border:1px solid var(--border-strong);border-radius:4px;padding:0 28px 0 8px}.loadout-groups{flex-direction:column;gap:9px;display:flex}.loadout-group{border:1px solid var(--border);border-radius:5px;overflow:hidden}.loadout-group.disabled{opacity:.62}.loadout-group>header{background:var(--surface-subtle);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;min-height:43px;padding:6px 9px;display:flex}.loadout-group>header>div{flex-direction:column;gap:1px;min-width:0;display:flex}.loadout-group>header strong{font-size:13px}.loadout-group>header span,.loadout-group>header b{color:var(--green-dark);font-size:10px}.loadout-group>p{color:var(--muted);border-bottom:1px solid var(--border);margin:0;padding:7px 9px;font-size:10px;line-height:1.35}.loadout-options,.loadout-slot-list{flex-direction:column;display:flex}.loadout-option{border-bottom:1px solid var(--border);grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:48px;padding:5px 9px;display:grid}.loadout-option:last-child,.loadout-slot:last-child{border-bottom:0}.loadout-option:hover,.loadout-option.selected{background:var(--green-soft)}.loadout-option:has(input:checked){background:var(--green-soft)}.loadout-option>input{width:17px;height:17px;accent-color:var(--green);margin:0}button.loadout-default-option{width:100%;color:inherit;font:inherit;text-align:left;border:0;border-bottom:1px solid var(--border);cursor:pointer;background:0 0}button.loadout-default-option:disabled{cursor:default}.loadout-default-marker{color:#fff;border:2px solid var(--muted);border-radius:50%;place-items:center;width:17px;height:17px;display:grid}.loadout-default-marker.active{background:var(--green);border-color:var(--green)}.loadout-choice-copy strong{font-size:12px;line-height:1.25}.loadout-choice-copy em{color:var(--amber);font-size:10px;font-style:normal;font-weight:800}.loadout-quantity{grid-template-columns:31px 32px 31px;width:96px;height:32px}.loadout-quantity button{width:31px;height:30px}.loadout-slot{border-bottom:1px solid var(--border);grid-template-columns:minmax(100px,.45fr) minmax(150px,.75fr) minmax(0,1fr);align-items:center;gap:8px;min-height:55px;padding:6px 9px;display:grid}.loadout-slot>span:first-child,.loadout-pair-grid label>span:first-child{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:800}.loadout-custom-pair-option{border-bottom:0}.loadout-pair-grid{background:var(--surface-subtle);border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:8px 9px;display:grid}.loadout-pair-grid label{flex-direction:column;gap:4px;min-width:0;display:flex}.unit-loadout-footer{gap:8px}.unit-loadout-footer>span{color:var(--muted);margin-right:auto;font-size:11px;font-weight:700}.unit-upgrades-body{gap:18px}.upgrade-total-summary{min-height:46px;color:var(--muted);background:var(--surface-subtle);border:1px solid var(--border);border-radius:5px;justify-content:space-between;align-items:center;gap:12px;padding:8px 11px;font-size:12px;display:flex}.upgrade-total-summary strong{color:var(--green-dark);font-size:17px}.upgrade-section{flex-direction:column;gap:7px;display:flex}.paid-wargear-list,.enhancement-group{border:1px solid var(--border);border-radius:5px;overflow:hidden}.paid-wargear-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:54px;padding:7px 9px;display:grid}.paid-wargear-row:last-child{border-bottom:0}.paid-wargear-row>span,.enhancement-option>span,.enhancement-option-choice>span{flex-direction:column;gap:2px;min-width:0;display:flex}.paid-wargear-row strong,.enhancement-option strong{font-size:13px}.paid-wargear-row small,.enhancement-option small{color:var(--muted);font-size:10px}.quantity-stepper{background:var(--surface);border:1px solid var(--border-strong);border-radius:5px;grid-template-columns:34px 40px 34px;align-items:center;width:108px;height:34px;display:grid;overflow:hidden}.quantity-stepper button{width:34px;height:32px;color:var(--green-dark);background:var(--surface-subtle);place-items:center;display:grid}.quantity-stepper button:hover:not(:disabled){background:var(--green-soft)}.quantity-stepper button:disabled{color:#aeb8b2}.quantity-stepper strong{text-align:center;font-size:13px}.enhancement-group h3{color:var(--muted);text-transform:uppercase;background:var(--surface-subtle);border-bottom:1px solid var(--border);margin:0;padding:6px 9px;font-size:10px}.enhancement-option{border-bottom:1px solid var(--border);grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:52px;padding:6px 9px;display:grid}.enhancement-option:last-child{border-bottom:0}.enhancement-option:hover{background:var(--green-soft)}.enhancement-option:has(input:checked){background:var(--green-soft)}.enhancement-option.disabled{opacity:.55}.enhancement-option-with-info{grid-template-columns:minmax(0,1fr) 32px auto}.enhancement-option-choice{cursor:pointer;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:8px;min-width:0;height:100%;display:grid}.enhancement-info-button{width:30px;height:30px;color:var(--green-dark);background:var(--surface);border:1px solid var(--border-strong);cursor:pointer;border-radius:5px;place-items:center;display:grid}.enhancement-info-button:hover{background:var(--green-soft)}.enhancement-option input{width:18px;height:18px;accent-color:var(--green);margin:0}.enhancement-option b{color:var(--amber);font-size:12px}.enhancement-none-option{border:1px solid var(--border);border-radius:5px}.unit-upgrades-footer{gap:8px}.unit-upgrades-footer>span{color:var(--muted);margin-right:auto;font-size:11px;font-weight:700}.transfer-toolbar{background:var(--surface-subtle);border-bottom:1px solid var(--border);flex:none;gap:8px;padding:10px 16px;display:flex}.saved-list-body{padding:10px 12px 16px}.saved-list{border:1px solid var(--border);border-radius:6px;overflow:hidden}.saved-list-row{border-bottom:1px solid #e1e6e3;grid-template-columns:minmax(0,1fr) 40px 40px;align-items:center;gap:3px;padding:5px;display:grid}.saved-list-row:last-child{border-bottom:0}.saved-list-open{min-width:0;min-height:52px;color:var(--green);text-align:left;background:0 0;border-radius:4px;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:8px;padding:5px 8px;display:grid}.saved-list-open:hover{background:var(--surface-subtle)}.saved-list-open>span{flex-direction:column;gap:3px;min-width:0;display:flex}.saved-list-open strong,.saved-list-open small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.saved-list-open strong{color:var(--ink)}.saved-list-open small{color:var(--muted)}.danger-button:hover{color:var(--red);background:var(--red-soft)}.details-backdrop{z-index:60;justify-content:flex-end;align-items:stretch;padding:0;display:flex}.details-drawer{background:var(--surface);border-left:1px solid var(--border-strong);flex-direction:column;width:min(620px,100%);height:100dvh;animation:.17s ease-out drawer-in;display:flex;position:relative;overflow:hidden;box-shadow:-12px 0 34px #0f18142e}@keyframes drawer-in{0%{opacity:.72;transform:translate(28px)}to{opacity:1;transform:translate(0)}}.drawer-handle{display:none}.details-header{background:var(--surface);border-bottom:1px solid var(--border);flex:none;grid-template-columns:minmax(0,1fr) auto 40px;align-items:center;gap:10px;min-height:82px;padding:12px 12px 10px 18px;display:grid}.details-title-copy{min-width:0}.details-title-copy h2{overflow-wrap:anywhere;font-size:20px;line-height:1.2}.details-title-copy>span:last-child{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:12px;display:block;overflow:hidden}.details-count{background:var(--surface-subtle);border:1px solid var(--border-strong);border-radius:6px;grid-template-columns:34px 32px 34px;align-items:center;height:36px;display:grid;overflow:hidden}.details-count button{height:100%;color:var(--green);background:0 0;place-items:center;display:grid}.details-count button:hover:not(:disabled){color:#fff;background:var(--green)}.details-count strong{text-align:center}.details-scroll{overscroll-behavior:contain;touch-action:pan-y;flex:1;min-height:0;padding:14px 18px 30px;overflow:hidden auto}.details-hero{grid-template-columns:minmax(0,1fr) 116px;gap:12px;margin-bottom:14px;display:grid}.unit-image-button{background:0 0;border-radius:6px;min-width:0;padding:0;display:block}.details-image{object-fit:contain;border:1px solid var(--border);background:#f0f3f1;border-radius:6px;place-items:center;width:100%;height:224px;display:grid}.details-hero-summary{background:var(--green-dark);border-radius:6px;flex-direction:column;justify-content:flex-end;gap:6px;padding:12px;display:flex}.details-hero-summary strong{color:#fff;font-size:22px}.details-hero-summary span{color:#dce9e2;font-size:11px;line-height:1.35}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(62px,1fr));gap:5px;margin-bottom:16px;display:grid}.stat-box{border:1px solid var(--border-strong);background:#f1f4f2;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;min-height:62px;display:flex}.stat-box span{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:900}.stat-box strong{margin-top:3px;font-size:20px;line-height:1}.details-section{margin-top:18px}.details-section-heading{min-height:32px;color:var(--green-dark);border-bottom:2px solid var(--green);align-items:center;gap:8px;margin-bottom:7px;display:flex}.details-section-heading h3{font-size:15px}.section-symbol{color:#fff;background:var(--green);border-radius:4px;place-items:center;width:21px;height:21px;font-size:11px;font-weight:900;display:grid}.section-action{width:100%;min-height:54px;color:var(--green-dark);text-align:left;background:var(--green-soft);border:1px solid #b8d0c2;border-radius:6px;grid-template-columns:28px minmax(0,1fr) 22px;align-items:center;gap:8px;padding:8px 12px;display:grid}.section-action>span{flex-direction:column;display:flex}.section-action small{color:var(--muted);font-size:11px}.section-chevron-open{transform:rotate(-90deg)}.leader-list{background:var(--border);border:1px solid var(--border);border-radius:5px;grid-template-columns:1fr 1fr;gap:1px;margin-top:5px;display:grid;overflow:hidden}.leader-list span{background:var(--surface);padding:8px 10px;font-size:12px}.compact-rule-section,.composition-details,.weapon-profile-notes{color:var(--ink-soft);background:var(--surface-subtle);border:1px solid var(--border);border-radius:5px;padding:9px 11px;font-size:12px;line-height:1.5}.compact-rule-section p,.composition-details p,.weapon-profile-notes p{margin:0}.composition-details p+p,.weapon-profile-notes p+p{margin-top:5px}.model-profile-list{border:1px solid var(--border-strong);border-radius:5px;overflow:hidden}.model-profile-list article{border-bottom:1px solid var(--border);padding:8px 9px}.model-profile-list article:last-child{border-bottom:0}.model-profile-list>article>strong{margin-bottom:6px;font-size:12px;display:block}.mini-stat-grid{grid-template-columns:repeat(auto-fit,minmax(42px,1fr));gap:4px;display:grid}.mini-stat-grid>span{background:var(--surface-subtle);border:1px solid var(--border);border-radius:3px;flex-direction:column;justify-content:center;align-items:center;min-height:39px;display:flex}.mini-stat-grid small,.selection-limit{color:var(--muted);text-transform:uppercase;font-size:9px;font-weight:900}.mini-stat-grid b{margin-top:1px;font-size:14px}.weapon-table-scroll{border:1px solid var(--border-strong);border-radius:5px;width:100%;overflow-x:auto}.weapon-table{border-collapse:collapse;width:100%;font-size:12px}.weapon-table th{color:#fff;text-align:center;text-transform:uppercase;background:#31423a;border-right:1px solid #54635c;height:31px;padding:5px 7px;font-size:10px}.weapon-table th:first-child{text-align:left;min-width:186px}.weapon-table td{text-align:center;vertical-align:middle;border-bottom:1px solid #d9dfdc;border-right:1px solid #d9dfdc;min-width:45px;padding:6px 7px}.forty-k-weapons td:not(:first-child){font-variant-numeric:tabular-nums;padding:4px 6px;font-size:14px;line-height:1.1}.weapon-table td:first-child{text-align:left;min-width:186px}.weapon-table tr:last-child td{border-bottom:0}.weapon-table td:last-child,.weapon-table th:last-child{border-right:0}.weapon-table tbody tr:nth-child(2n){background:var(--surface-subtle)}.weapon-table td>strong{line-height:1.25;display:block}.weapon-keywords{flex-wrap:wrap;gap:3px;margin-top:3px;display:flex}.weapon-keywords button{color:var(--steel);text-align:left;background:0 0;padding:0;font-size:9px;line-height:1.25;text-decoration:underline}.legion-weapons th:first-child,.legion-weapons td:first-child{width:66%}.dice-pool{gap:4px;display:inline-flex}.die{border:1px solid #222;border-radius:50%;place-items:center;width:24px;height:24px;font-size:11px;font-weight:900;display:grid}.die-red{color:#fff;background:#a43d38}.die-black{color:#fff;background:#252b28}.die-white{background:#fff}.wargear-rules,.ability-list{border:1px solid var(--border);border-radius:5px;flex-direction:column;display:flex;overflow:hidden}.wargear-rules article,.ability-list article{border-bottom:1px solid #dfe4e1;padding:10px 12px}.wargear-rules article:last-child,.ability-list article:last-child{border-bottom:0}.wargear-rules strong,.ability-list strong{font-size:12px;line-height:1.4}.wargear-rules ul{color:var(--ink-soft);margin:6px 0 0;padding-left:20px;font-size:12px;line-height:1.55}.ability-list p{color:var(--ink-soft);margin-top:4px;font-size:12px;line-height:1.5}.ability-rule-link{color:var(--steel);font:inherit;font-weight:700;line-height:inherit;text-align:left;text-underline-offset:2px;background:0 0;padding:0;text-decoration:underline;display:inline}.ability-rule-link:hover,.ability-rule-link:focus-visible{color:var(--green-dark)}.selection-limit{background:var(--surface-subtle);border:1px solid var(--border);border-radius:3px;margin-top:6px;padding:2px 5px;display:inline-block}.nested-ability-list{border-top:1px solid var(--border);margin-top:8px}.nested-ability-list>div{border-left:2px solid var(--green);padding:8px 0 0 12px}.keyword-section h4{color:var(--muted);text-transform:uppercase;margin:12px 0 6px;font-size:10px}.keyword-list{flex-wrap:wrap;gap:5px;display:flex}.keyword-list button{min-height:29px;color:var(--steel);background:#e8f0f3;border:1px solid #bdcfd6;border-radius:5px;padding:4px 8px;font-size:11px;font-weight:700}.keyword-list button:hover{color:#fff;background:var(--steel)}.details-navigation{background:var(--surface-subtle);border-top:1px solid var(--border);flex:none;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;min-height:56px;padding:8px 12px;display:grid}.details-navigation button{min-width:0;min-height:38px;color:var(--ink-soft);background:0 0;border-radius:5px;align-items:center;gap:5px;padding:0 7px;display:flex}.details-navigation button:last-child{text-align:right;justify-content:flex-end}.details-navigation button:hover:not(:disabled){background:var(--surface-strong)}.details-navigation button span{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:700;overflow:hidden}.details-navigation>span{color:var(--muted);white-space:nowrap;font-size:11px}.image-lightbox{z-index:80;background:#080d0be0;place-items:center;width:100%;height:100%;padding:28px;display:grid;position:fixed;inset:0}.image-lightbox .unit-image-fallback,.lightbox-image{object-fit:contain;color:#fff;width:min(920px,94vw);height:min(780px,86dvh)}.nested-backdrop{z-index:90}.keyword-dialog{background:var(--surface);border:1px solid var(--border-strong);width:min(470px,100%);max-height:calc(100dvh - 40px);box-shadow:var(--shadow);border-radius:8px;padding:16px;overflow-y:auto}.keyword-dialog header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.keyword-dialog h3{font-size:18px}.keyword-dialog p{color:var(--ink-soft);font-size:13px;line-height:1.55}.enhancement-info-dialog{flex-direction:column;width:min(500px,100%);max-height:calc(100dvh - 40px);padding:0;display:flex;overflow:hidden}.enhancement-info-dialog>header{border-bottom:1px solid var(--border);flex:none;margin:0;padding:14px 16px}.enhancement-info-title{min-width:0;color:var(--green);align-items:center;gap:10px;display:flex}.enhancement-info-title>div{min-width:0}.enhancement-info-title h3{color:var(--ink)}.enhancement-info-meta{color:var(--muted);background:var(--surface-subtle);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:11px;font-weight:700;display:flex}.enhancement-info-meta strong{color:var(--amber);font-size:12px}.enhancement-info-restriction{background:var(--green-soft);border-bottom:1px solid var(--border);gap:3px;padding:10px 16px;display:grid}.enhancement-info-restriction span{color:var(--green-dark);text-transform:uppercase;font-size:10px;font-weight:800}.enhancement-info-restriction strong{color:var(--ink);font-size:13px;line-height:1.35}.enhancement-info-effect{overscroll-behavior:contain;min-height:0;padding:16px;overflow-y:auto}.enhancement-info-effect article>strong{color:var(--green-dark);font-size:14px}.enhancement-info-effect p{margin-top:8px}.detachment-rules-dialog{flex-direction:column;width:min(560px,100%);max-height:calc(100dvh - 40px);padding:0;display:flex;overflow:hidden}.detachment-rules-dialog>header{border-bottom:1px solid var(--border);flex:none;margin:0;padding:14px 16px}.detachment-rules-title{min-width:0;color:var(--green);align-items:center;gap:10px;display:flex}.detachment-rules-title>div{min-width:0}.detachment-rules-title h3{color:var(--ink)}.detachment-rules-list{overscroll-behavior:contain;min-height:0;display:grid;overflow-y:auto}.detachment-rules-list article{padding:14px 16px}.detachment-rules-list article+article{border-top:1px solid var(--border)}.detachment-rules-list h4{color:var(--green-dark);margin-bottom:10px;font-size:15px}.detachment-rule-content{gap:10px;display:grid}.detachment-rule-content p{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.5}.detachment-rule-choice,.detachment-rule-note,.detachment-rule-restriction{border-left:3px solid var(--green);background:var(--surface-subtle);gap:3px;padding:7px 9px 7px 10px;display:grid}.detachment-rule-content h5{color:var(--ink);margin:0;font-size:12px;line-height:1.3}.detachment-rule-note{border-left-color:var(--border-strong)}.detachment-rule-restriction{border-left-color:var(--amber);background:var(--amber-soft)}.detachment-rules-meta{color:var(--muted);background:var(--surface-subtle);border-top:1px solid var(--border);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:11px;display:flex}.detachment-rules-meta strong{color:var(--amber)}.rules-reference-dialog{width:min(760px,100%);max-height:min(760px, calc(var(--rules-viewport-height,100dvh) - 40px))}.rules-reference-title{min-width:0;color:var(--green);align-items:center;gap:10px;display:flex}.rules-reference-title>div{min-width:0}.rules-reference-title h2{color:var(--ink);font-size:18px}.rules-reference-search{border-bottom:1px solid var(--border);flex:none;padding:10px 14px;position:relative}.rules-reference-search svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:26px;transform:translateY(-50%)}.rules-reference-search input{width:100%;min-height:42px;color:var(--ink);background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;padding:8px 12px 8px 39px;font-size:16px}.rules-reference-search input:focus{border-color:var(--steel);outline:3px solid #35627633}.rules-reference-list{flex:1;min-height:180px;overflow-y:auto}.rules-reference-list.state-only,.rules-reference-list.state-only .rules-reference-state{min-height:96px}.rules-reference-list article{border-bottom:1px solid var(--border);padding:12px 16px}.rules-reference-list article:last-child{border-bottom:0}.rules-reference-list h3{margin-bottom:4px;font-size:13px}.rules-reference-list p{color:var(--ink-soft);font-size:12px;line-height:1.5}.rules-reference-state{min-height:180px;color:var(--muted);justify-content:center;align-items:center;gap:8px;padding:20px;font-size:13px;display:flex}.toast,.update-notice{z-index:120;color:#fff;box-shadow:var(--shadow);background:#25332c;border:1px solid #536159;border-radius:7px;align-items:center;gap:12px;display:flex;position:fixed}.toast{max-width:min(420px,100vw - 36px);min-height:44px;padding:10px 14px;font-size:13px;bottom:18px;right:18px}.update-notice{min-height:52px;padding:8px 9px 8px 15px;font-size:13px;font-weight:700;bottom:18px;left:50%;transform:translate(-50%)}@media (width<=900px){.builder-main{grid-template-columns:minmax(400px,1.2fr) minmax(300px,.8fr)}.brand-compact .brand-name{display:none}.builder-setup{grid-template-columns:minmax(160px,1.3fr) minmax(160px,1fr) auto auto}}@media (width<=720px){.game-picker{padding:18px}.game-picker-header .button span{display:none}.game-choice-panel{margin:24px auto}.game-choice-panel h1{margin-bottom:18px;font-size:28px}.game-choice-grid{grid-template-columns:1fr;gap:10px}.game-choice{min-height:108px;padding:16px}.game-picker-footer{flex-direction:column;align-items:flex-start;gap:3px}.topbar{min-height:54px;padding:7px 9px}.game-switcher{padding-inline:7px}.icon-text-button span,.optional-action{display:none}.icon-text-button{width:40px;min-width:40px;padding:0}.builder-setup{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) auto;gap:7px;padding:8px 10px}.field>span,.points-summary>span{font-size:9px}.field input,.field select,.points-summary{height:36px}.points-summary{min-width:92px;padding-inline:7px}.points-summary strong{padding-right:11px;font-size:11px}.points-summary-chevron{width:12px;height:12px;bottom:5px;right:4px}.save-button{z-index:22;border-radius:6px;gap:6px;width:92px;min-width:92px;height:40px;padding:0 12px;font-size:11px;position:fixed;bottom:9px;right:8px}.save-button svg{width:19px;height:19px}.builder-main{min-height:0;display:block}.workspace-panel{height:100%;display:none}.workspace-panel.mobile-active{display:flex}.catalog-panel{border-right:0}.panel-heading{min-height:57px;padding:8px 12px}.roster-detachment-button{width:calc(100% - 24px);margin-inline:12px}.catalog-detachment-button{width:100%;margin:0 0 8px;display:grid}.catalog-tools{padding:0 10px 8px}.catalog-scroll,.roster-scroll{padding-inline:8px}.unit-list{margin-left:4px}.unit-row{grid-template-columns:minmax(0,1fr) auto}.unit-row-main{grid-template-columns:48px minmax(0,1fr) auto}.unit-thumbnail{width:48px;height:48px}.mobile-tabs{z-index:20;min-height:58px;padding:5px calc(108px + env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) 8px;background:var(--surface);border-top:1px solid var(--border);flex:none;grid-template-columns:1fr 1fr;display:grid}.mobile-tabs button{min-width:0;color:var(--muted);background:0 0;border-radius:5px;justify-content:center;align-items:center;gap:6px;font-size:11px;font-weight:800;display:flex;position:relative}.mobile-tabs button.active{color:var(--green-dark);background:var(--green-soft)}.mobile-tabs button>span{color:#fff;background:var(--green);border-radius:8px;place-items:center;min-width:18px;height:18px;font-size:9px;display:grid}.mobile-only{display:inline-flex}.modal-backdrop{align-items:end;padding:8px}.modal{width:100%;max-height:calc(100dvh - 16px)}.transfer-toolbar .button{flex:1;min-width:0;padding-inline:8px;font-size:12px}.details-backdrop{background:#0f18146b;align-items:end}.details-drawer{border:0;border-radius:8px 8px 0 0;width:100%;height:min(94dvh,900px);animation-name:drawer-up;box-shadow:0 -10px 28px #0f181433}@keyframes drawer-up{0%{opacity:.75;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}.drawer-handle{background:var(--surface);touch-action:none;flex:none;place-items:center;width:100%;height:24px;display:grid}.drawer-handle span{background:var(--border-strong);border-radius:3px;width:42px;height:4px}.details-header{min-height:70px;padding:7px 7px 8px 13px}.details-title-copy h2{font-size:17px}.details-count{grid-template-columns:32px 28px 32px}.details-scroll{padding:10px 12px 24px}.details-hero{grid-template-columns:minmax(0,1fr) 92px;gap:8px}.details-image{height:190px}.details-hero-summary{padding:9px}.details-hero-summary strong{font-size:18px}.stat-grid{grid-template-columns:none;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column}.stat-box{min-width:0;min-height:57px}.stat-box strong{font-size:17px}.leader-list{grid-template-columns:1fr}.details-navigation{padding-bottom:calc(8px + env(safe-area-inset-bottom))}.details-navigation button span{max-width:105px}.toast{right:10px;bottom:calc(68px + env(safe-area-inset-bottom));max-width:calc(100vw - 20px)}.update-notice{bottom:calc(70px + env(safe-area-inset-bottom))}}@media (width<=430px){.brand-name{font-size:21px}.game-choice{grid-template-columns:48px minmax(0,1fr) 18px;padding:14px}.game-choice-icon{width:42px;height:42px}.game-choice-copy strong{font-size:16px}.game-choice-copy span{-webkit-line-clamp:2;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box}.builder-setup{grid-template-columns:minmax(0,1fr) minmax(0,.95fr) 88px}.field-list-name input,.field-faction select{font-size:12px}.unit-row{grid-template-columns:minmax(0,1fr) auto;gap:5px;padding-right:5px}.unit-row-actions{gap:5px}.unit-points{font-size:10px}.details-close{width:34px;min-width:34px}.details-header{grid-template-columns:minmax(0,1fr) auto 34px;gap:5px}.details-hero{grid-template-columns:minmax(0,1fr) 84px}.details-image{height:164px}.details-hero-summary span{font-size:10px}.forty-k-weapons{table-layout:fixed;font-size:10px}.forty-k-weapons th,.forty-k-weapons td{min-width:0;padding:5px 2px}.forty-k-weapons th{font-size:8px}.forty-k-weapons th:first-child,.forty-k-weapons td:first-child{overflow-wrap:anywhere;width:40%;min-width:0;padding-left:6px}.forty-k-weapons th:nth-child(2),.forty-k-weapons td:nth-child(2){width:12%}.forty-k-weapons th:nth-child(3),.forty-k-weapons td:nth-child(3),.forty-k-weapons th:nth-child(5),.forty-k-weapons td:nth-child(5){width:8%}.forty-k-weapons th:nth-child(4),.forty-k-weapons td:nth-child(4){width:12%}.forty-k-weapons th:nth-child(6),.forty-k-weapons td:nth-child(6),.forty-k-weapons th:nth-child(7),.forty-k-weapons td:nth-child(7){width:10%}.forty-k-weapons td:not(:first-child){padding:2px 1px;font-size:12px;line-height:1.05}}.game-preference-choice{position:relative}.game-preference-choice.selected{background:var(--green-soft);border-color:var(--green)}.game-preference-choice.game-choice-legion.selected{border-color:var(--steel);background:#e7eff3}.game-preference-check{color:#fff;background:var(--border);border:1px solid var(--border-strong);border-radius:5px;place-items:center;width:26px;height:26px;display:grid}.game-preference-choice.selected .game-preference-check{background:var(--green);border-color:var(--green)}.game-preference-choice.game-choice-legion.selected .game-preference-check{background:var(--steel);border-color:var(--steel)}.game-preference-submit{justify-content:flex-end;margin-top:18px;display:flex}.hub-shell,.transfer-screen,.game-setup-screen,.game-session-screen{min-height:100dvh;color:var(--ink);background:var(--canvas)}.hub-header,.transfer-header,.game-session-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:64px;padding:9px clamp(14px,3vw,34px);display:flex}.hub-header{justify-content:space-between}.hub-header-actions{align-items:center;gap:6px;display:flex}.game-hub-switch{white-space:nowrap;min-width:112px}.hub-content,.transfer-content,.game-setup-content,.game-session-content{width:min(1160px,100%);margin:0 auto;padding:26px clamp(14px,3vw,34px) 40px}.hub-title-row{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.hub-title-row h1{font-size:28px;line-height:1.15}.hub-grid{background:var(--surface);border:1px solid var(--border);border-radius:7px;grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr);display:grid;overflow:hidden}.hub-section{min-width:0;padding:22px}.hub-section+.hub-section{border-left:1px solid var(--border)}.hub-section-heading,.setup-section-title{color:var(--green);align-items:center;gap:10px;margin-bottom:17px;display:flex}.hub-section-heading>div,.setup-section-title>div{min-width:0}.hub-section-heading h2,.setup-section-title h2,.import-preview-panel h2{color:var(--ink);font-size:18px}.hub-form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.format-fieldset{border:0;margin:18px 0 0;padding:0}.format-fieldset legend,.transfer-text-label{color:var(--muted);text-transform:uppercase;margin-bottom:7px;font-size:10px;font-weight:800}.format-option-list{border:1px solid var(--border);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.format-option{background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:20px minmax(0,1fr);align-items:center;gap:8px;min-height:54px;padding:7px 10px;display:grid}.format-option:nth-child(2n){border-right:0}.format-option:nth-last-child(-n+2){border-bottom:0}.format-option:has(input:checked){background:var(--green-soft)}.format-option input,.game-format-row input{width:17px;height:17px;accent-color:var(--green);margin:0}.format-option>span,.game-format-row label>span{flex-direction:column;gap:2px;min-width:0;display:flex}.format-option strong,.game-format-row strong{font-size:13px}.format-option small,.game-format-row small{color:var(--muted);font-size:10px}.hub-custom-points{grid-template-columns:minmax(0,1fr) minmax(150px,.6fr);align-items:end;gap:10px;margin-top:10px;display:grid}.hub-primary-actions,.transfer-button-row,.player-roster-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.hub-primary-actions{margin-top:18px}.hub-action-list,.hub-saved-list{border:1px solid var(--border);border-radius:6px;overflow:hidden}.hub-action-list>button,.hub-saved-list>button{width:100%;min-height:58px;color:var(--green);text-align:left;background:var(--surface);border-bottom:1px solid var(--border);grid-template-columns:28px minmax(0,1fr) 20px;align-items:center;gap:8px;padding:8px 10px;display:grid}.hub-saved-list>button{grid-template-columns:minmax(0,1fr) 20px;min-height:50px}.hub-action-list>button:last-child,.hub-saved-list>button:last-child{border-bottom:0}.hub-action-list>button:hover,.hub-saved-list>button:hover{background:var(--surface-subtle)}.hub-action-list button>span,.hub-saved-list button>span{min-width:0;color:var(--ink);flex-direction:column;gap:2px;display:flex}.hub-action-list strong,.hub-saved-list strong{font-size:13px}.hub-action-list small,.hub-saved-list small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.hub-saved-heading{color:var(--ink-soft);justify-content:space-between;align-items:center;margin:19px 0 7px;font-size:12px;display:flex}.hub-saved-heading span{color:var(--muted);font-variant-numeric:tabular-nums}.hub-empty-list{min-height:74px;color:var(--muted);background:var(--surface-subtle);border:1px dashed var(--border);border-radius:6px;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.transfer-header>div:last-child,.game-session-title{flex-direction:column;min-width:0;display:flex}.transfer-header h1,.game-session-header h1{font-size:17px}.segmented-control{background:var(--surface-strong);border:1px solid var(--border);border-radius:6px;padding:3px;display:grid}.segmented-control button{min-height:36px;color:var(--muted);background:0 0;border-radius:4px;justify-content:center;align-items:center;gap:7px;font-size:12px;font-weight:800;display:flex}.segmented-control button.active{color:var(--green-dark);background:var(--surface);box-shadow:0 1px 4px #17201c1f}.transfer-mode-tabs{grid-template-columns:1fr 1fr;width:min(430px,100%);margin:0 auto 16px}.transfer-workspace{grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);gap:14px;display:grid}.transfer-panel,.game-setup-options,.player-roster-section{background:var(--surface);border:1px solid var(--border);border-radius:7px;min-width:0;padding:18px}.import-method-tabs{grid-template-columns:1fr 1fr;margin-bottom:16px}.transfer-input-panel{flex-direction:column;display:flex}.transfer-textarea,.share-code-input,.game-notes textarea{width:100%;color:var(--ink);letter-spacing:0;resize:vertical;background:var(--surface-subtle);border:1px solid var(--border);border-radius:5px;padding:11px;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.transfer-textarea{min-height:340px;margin-bottom:12px}.import-details-repair{background:var(--surface-subtle);border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:0 0 12px;padding:12px 0}.import-details-heading{flex-direction:column;gap:2px;padding:0 10px 10px;display:flex}.import-details-heading strong{color:var(--ink);font-size:13px}.import-details-heading span{color:var(--muted);font-size:11px}.import-details-fields{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:8px;padding:0 10px;display:grid}.import-detail-selections{flex-wrap:wrap;gap:5px;padding:9px 10px 0;display:flex}.import-detail-selections button{min-width:0;min-height:30px;color:var(--green-dark);background:var(--green-soft);border:1px solid #1c69514d;border-radius:4px;align-items:center;gap:5px;padding:4px 7px 4px 9px;font-size:11px;font-weight:750;display:inline-flex}.import-detail-selections button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.share-code-input{resize:none;min-height:76px}.transfer-textarea:focus,.share-code-input:focus,.game-notes textarea:focus{border-color:var(--steel);outline:3px solid #3562763d}.transfer-alert,.transfer-loading{min-height:44px;color:var(--ink-soft);background:var(--amber-soft);border:1px solid #dec69e;border-radius:5px;align-items:center;gap:8px;padding:9px 11px;font-size:12px;display:flex}.transfer-input-panel>.transfer-alert{margin-top:10px}.transfer-loading{background:var(--surface);border-color:var(--border);justify-content:center;width:min(440px,100% - 28px);margin:60px auto}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.import-preview-panel{flex-direction:column;min-height:460px;display:flex}.transfer-empty{min-height:260px;color:var(--muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:7px;display:flex}.transfer-empty strong{color:var(--ink-soft)}.transfer-empty span{font-size:12px}.import-summary{border:1px solid var(--border);border-radius:6px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.import-summary>div{border-right:1px solid var(--border);border-bottom:1px solid var(--border);flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:54px;padding:8px 10px;display:flex}.import-summary>div:nth-child(2n){border-right:0}.import-summary>div:nth-last-child(-n+2){border-bottom:0}.import-summary span,.import-detachments span{color:var(--muted);text-transform:uppercase;font-size:9px;font-weight:800}.import-summary strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.import-detachments{background:var(--green-soft);border-left:3px solid var(--green);flex-direction:column;gap:3px;margin-top:10px;padding:9px 10px;display:flex}.import-detachments strong{font-size:12px}.import-warning-list{background:var(--amber-soft);border:1px solid #dec69e;border-radius:5px;margin-top:10px;padding:10px}.import-warning-list>strong{color:#78501b;align-items:center;gap:6px;margin-bottom:6px;font-size:12px;display:flex}.import-warning-list p{color:var(--ink-soft);border-top:1px solid #ad742433;padding:5px 0;font-size:11px}.import-warning-list p b{font-weight:800}.import-warning-scroll{max-height:138px;overflow-y:auto}.import-resolve-button{background:var(--surface);width:100%;min-height:36px;margin-top:8px}.import-save-actions{margin-top:auto;padding-top:14px}.qr-import-options{flex-direction:column;gap:10px;display:flex}.qr-import-action{min-height:64px;color:var(--green);text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:6px;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;padding:8px 12px;display:grid}.qr-import-action:hover{background:var(--surface-subtle);border-color:var(--border-strong)}.qr-import-action>span{color:var(--ink);flex-direction:column;gap:2px;display:flex}.qr-import-action small{color:var(--muted);font-size:10px}.qr-camera-view{flex-direction:column;gap:8px;display:flex;position:relative}.qr-camera-view video{aspect-ratio:4/3;object-fit:cover;background:#111;border-radius:6px;width:100%}.qr-camera-frame{aspect-ratio:1;pointer-events:none;border:2px solid #fff;border-radius:6px;width:50%;position:absolute;top:15%;left:25%;box-shadow:0 0 0 999px #00000038}.export-panel{width:min(900px,100%);margin:0 auto}.export-roster-select{width:min(520px,100%);margin-bottom:12px}.export-method-tabs{grid-template-columns:1fr 1fr;width:min(520px,100%);margin-bottom:18px}.qr-export-layout{grid-template-columns:minmax(260px,390px) minmax(0,1fr);align-items:center;gap:28px;display:grid}.qr-export-visual{justify-items:center;gap:8px;min-width:0;display:grid}.qr-export-image{aspect-ratio:1;border:1px solid var(--border);background:#fff;border-radius:6px;place-items:center;width:100%;padding:12px;display:grid}.qr-export-image img{object-fit:contain;width:100%;height:100%;display:block}.qr-frame-controls{width:min(100%,390px);min-height:42px;color:var(--ink-soft);grid-template-columns:42px minmax(0,1fr) 42px 42px;align-items:center;gap:4px;display:grid}.qr-frame-controls strong{text-align:center;min-width:0;font-size:12px}.qr-frame-controls .icon-button{width:42px;height:42px;min-height:42px}.qr-frame-controls .qr-auto-button.active{color:#fff;background:var(--green);border-color:var(--green)}.text-export-preview{min-height:390px;margin:0}.qr-export-details h2{margin-top:3px;font-size:23px}.qr-export-details p{color:var(--muted);margin-top:5px;font-size:12px}.export-action-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;display:grid}.qr-export-details>.transfer-alert{margin-top:10px}.game-setup-content{flex-direction:column;gap:14px;display:flex}.game-setup-options{grid-template-columns:minmax(190px,.8fr) minmax(360px,1.4fr) minmax(200px,.8fr);align-items:end;gap:16px;display:grid}.game-setup-options .setup-section-title{margin:0}.game-format-row{border:1px solid var(--border);border-radius:6px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.game-format-row.three-options{grid-template-columns:repeat(3,minmax(0,1fr))}.game-format-row label{border-right:1px solid var(--border);grid-template-columns:20px minmax(0,1fr);align-items:center;gap:8px;min-height:54px;padding:7px 10px;display:grid}.game-format-row label:last-child{border-right:0}.game-format-row label.selected{background:var(--green-soft)}.combat-patrol-format-note{min-height:54px;color:var(--green-dark);background:var(--green-soft);border:1px solid var(--green);border-radius:6px;align-items:center;gap:9px;padding:8px 10px;display:flex}.combat-patrol-format-note>span,.combat-patrol-rule-line>span,.combat-patrol-split-option>span{flex-direction:column;gap:2px;min-width:0;display:flex}.combat-patrol-format-note strong,.combat-patrol-split-option strong{font-size:11px}.combat-patrol-format-note small,.combat-patrol-split-option small{color:var(--muted);font-size:9px;line-height:1.35}.player-roster-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.player-marker{background:var(--green);border:4px solid var(--green-soft);border-radius:50%;width:20px;height:20px}.selected-roster-summary{background:var(--surface-subtle);border-left:3px solid var(--green);flex-direction:column;justify-content:center;gap:2px;min-height:76px;margin-top:10px;padding:10px 12px;display:flex}.combat-patrol-side{min-width:0}.combat-patrol-summary{background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;margin-top:10px;overflow:hidden}.combat-patrol-summary>header{color:#fff;background:var(--green-dark);justify-content:space-between;align-items:center;gap:10px;min-height:58px;padding:9px 11px;display:flex}.combat-patrol-summary>header>div{flex-direction:column;min-width:0;display:flex}.combat-patrol-summary>header span{color:#dce9e2;text-transform:uppercase;font-size:8px;font-weight:800}.combat-patrol-summary>header strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.combat-patrol-summary>header b{background:#ffffff1f;border:1px solid #ffffff59;border-radius:4px;flex:none;padding:4px 6px;font-size:10px}.combat-patrol-rule-line{color:var(--green-dark);background:var(--green-soft);border-bottom:1px solid var(--border);grid-template-columns:20px minmax(0,1fr);align-items:center;gap:7px;padding:8px 11px;display:grid}.combat-patrol-rule-line small,.combat-patrol-included>span{color:var(--muted);text-transform:uppercase;font-size:8px;font-weight:800}.combat-patrol-rule-line strong{font-size:11px}.combat-patrol-summary ul{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.combat-patrol-summary li{min-width:0;color:var(--ink-soft);border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:7px 10px;font-size:10px;line-height:1.3}.combat-patrol-summary li:nth-child(2n){border-right:0}.combat-patrol-included{flex-direction:column;gap:4px;padding:8px 10px;display:flex}.combat-patrol-included small{color:var(--ink-soft);align-items:center;gap:4px;font-size:9px;display:flex}.combat-patrol-split-option{background:var(--surface);border:1px solid var(--border-strong);border-radius:5px;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:8px;min-height:52px;margin-top:10px;padding:7px 10px;display:grid}.selected-roster-summary span,.selected-roster-summary small{color:var(--muted);font-size:11px}.player-roster-actions{margin-top:12px}.game-setup-footer{background:var(--surface);border:1px solid var(--border);border-radius:7px;justify-content:space-between;align-items:center;gap:14px;min-height:66px;padding:10px 14px;display:flex}.game-setup-footer>span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.game-session-header .game-session-title{flex:1}.game-status-bar{background:var(--surface-subtle);border-bottom:1px solid var(--border);align-items:center;gap:15px;min-height:60px;padding:8px clamp(14px,3vw,34px);display:flex}.game-stepper{grid-template-columns:auto 32px 30px 32px;align-items:center;gap:3px;display:grid}.game-stepper>span{color:var(--ink-soft);margin-right:3px;font-size:11px;font-weight:800}.game-stepper .icon-button{background:var(--surface);border:1px solid var(--border);width:32px;min-width:32px;height:32px;min-height:32px}.game-stepper strong{text-align:center;font-variant-numeric:tabular-nums}.game-status-bar .icon-text-button.active{color:var(--green-dark);background:var(--green-soft)}.game-notes{background:var(--surface);border-bottom:1px solid var(--border);padding:8px clamp(14px,3vw,34px)}.game-notes textarea{resize:vertical;min-height:70px}.game-session-content{padding-top:18px}.game-side-bar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.game-side-tabs{grid-template-columns:1fr 1fr;width:min(360px,100%)}.game-roster-total{align-items:baseline;gap:9px;min-width:0;display:flex}.game-roster-total strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.game-roster-total span{color:var(--green);flex:none;font-size:12px;font-weight:800}.game-unit-list{background:var(--surface);border:1px solid var(--border);border-radius:6px;overflow:hidden}.game-unit-row{border-bottom:1px solid var(--border);grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:64px;padding:7px 12px 7px 7px;display:grid}.game-unit-row:last-child{border-bottom:0}.game-unit-row.destroyed{background:var(--surface-subtle);opacity:.6}.game-unit-row.destroyed>div strong{text-decoration:line-through}.game-unit-state{width:38px;height:38px;color:var(--green);background:var(--green-soft);border-radius:5px;place-items:center;display:grid}.game-unit-row.destroyed .game-unit-state{color:var(--red);background:var(--red-soft)}.game-unit-row>div{flex-direction:column;gap:2px;min-width:0;display:flex}.game-unit-row>div strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.game-unit-row>div span,.game-unit-row>div small{color:var(--muted);font-size:10px}.game-unit-row>b{color:var(--green-dark);white-space:nowrap;font-size:12px}@media (width<=900px){.hub-grid,.transfer-workspace{grid-template-columns:1fr}.hub-section+.hub-section{border-top:1px solid var(--border);border-left:0}.game-setup-options{grid-template-columns:1fr 1fr}.game-setup-options .setup-section-title{grid-column:1/-1}}@media (width<=720px){.hub-header,.transfer-header,.game-session-header{min-height:56px;padding:7px 10px}.hub-header .brand-name,.game-session-header .brand-name{display:none}.hub-content,.transfer-content,.game-setup-content,.game-session-content{padding:16px 10px 28px}.hub-title-row{align-items:center}.hub-title-row h1{font-size:23px}.hub-title-row .button{white-space:nowrap;min-width:112px;padding-inline:12px;font-size:13px}.hub-title-row .button svg{width:19px;height:19px}.hub-section,.transfer-panel,.game-setup-options,.player-roster-section{padding:14px}.hub-form-grid,.hub-custom-points,.player-roster-grid,.game-setup-options,.qr-export-layout,.format-option-list{grid-template-columns:1fr}.format-option,.format-option:nth-child(2n),.format-option:nth-last-child(-n+2){border-right:0;border-bottom:1px solid var(--border)}.format-option:last-child{border-bottom:0}.hub-primary-actions,.transfer-button-row{flex-direction:column-reverse;align-items:stretch}.hub-primary-actions .button,.transfer-button-row .button{width:100%}.transfer-textarea{min-height:280px}.import-details-fields{grid-template-columns:1fr}.import-preview-panel{min-height:350px}.qr-export-layout{gap:16px}.qr-export-image{width:min(360px,100%);margin:0 auto}.game-setup-options .setup-section-title{grid-column:auto}.game-format-row.three-options{grid-template-columns:1fr}.game-format-row.three-options label{border-right:0;border-bottom:1px solid var(--border)}.game-format-row.three-options label:last-child{border-bottom:0}.game-setup-footer{flex-direction:column;align-items:stretch}.game-setup-footer>span{text-align:center}.game-session-header>.button{min-width:40px;padding-inline:9px;font-size:0}.game-status-bar{grid-template-columns:1fr 1fr;gap:7px;padding:8px 10px;display:grid}.game-stepper{grid-template-columns:minmax(58px,1fr) 30px 28px 30px}.game-stepper:first-child{grid-column:1/-1}.game-status-bar .icon-text-button{width:100%}.game-side-bar{flex-direction:column;align-items:stretch}.game-side-tabs{width:100%}.game-roster-total{justify-content:space-between}}@media (width<=430px){.game-hub-switch{gap:5px;width:auto;min-width:78px;padding-inline:8px}.export-action-grid,.game-format-row{grid-template-columns:1fr}.game-format-row label{border-right:0;border-bottom:1px solid var(--border)}.game-format-row label:last-child{border-bottom:0}.game-status-bar{grid-template-columns:1fr}.game-stepper:first-child{grid-column:auto}.game-unit-row{grid-template-columns:40px minmax(0,1fr) auto;padding-right:8px}}@media (width<=340px){.forty-k-weapons th:first-child,.forty-k-weapons td:first-child{width:34%}.forty-k-weapons th:nth-child(2),.forty-k-weapons td:nth-child(2){width:13%}.forty-k-weapons th:nth-child(3),.forty-k-weapons td:nth-child(3),.forty-k-weapons th:nth-child(4),.forty-k-weapons td:nth-child(4){width:12%}.forty-k-weapons th:nth-child(6),.forty-k-weapons td:nth-child(6){width:9%}.forty-k-weapons th:nth-child(7),.forty-k-weapons td:nth-child(7){width:12%}.forty-k-weapons td:first-child{padding:2px 4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.game-picker-actions{align-items:center;gap:8px;display:flex}.collection-shell{height:100dvh;min-height:560px;color:var(--ink);background:var(--canvas);grid-template-rows:auto auto auto minmax(0,1fr);display:grid;overflow:hidden}.collection-topbar{position:relative}.collection-title{color:var(--ink-soft);font-size:14px;position:absolute;left:50%;transform:translate(-50%)}.collection-setup{background:var(--surface-subtle);border-bottom:1px solid var(--border);grid-template-columns:minmax(180px,260px) minmax(180px,260px) auto auto;justify-content:start;align-items:end;gap:12px;padding:10px 18px;display:grid}.collection-legends-toggle{min-height:38px;color:var(--ink-soft);align-items:center;gap:8px;padding:0 10px;font-size:12px;font-weight:800;display:inline-flex}.collection-legends-toggle input{width:17px;height:17px;accent-color:var(--green)}.collection-legends-toggle>span{align-items:center;gap:3px;display:inline-flex}.collection-dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#111714;--surface:#19211d;--surface-subtle:#202a25;--surface-strong:#2b3731;--ink:#edf4f0;--ink-soft:#ced9d3;--muted:#98a79f;--border:#3a4740;--border-strong:#56655d;--green:#4e9a72;--green-dark:#b9e4cc;--green-soft:#203b2e;--amber:#e0aa55;--amber-soft:#42331d;--red:#e08178;--red-soft:#432825;--steel:#83b5c7;--shadow:0 14px 38px #00000061}.collection-dark .collection-metric>svg,.collection-dark .priority-low,.collection-dark .metadata-tags b{background:#243941}.collection-dark .collection-thumb-large,.collection-dark .collection-thumb,.collection-dark .activity-thumb,.collection-dark .collection-editor-image{background:#151b18}.collection-tabs{background:var(--surface);border-bottom:1px solid var(--border);align-items:stretch;gap:2px;min-height:49px;padding:0 18px;display:flex}.collection-tabs button{min-width:118px;color:var(--muted);background:0 0;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:750;display:inline-flex;position:relative}.collection-tabs button:hover{color:var(--ink);background:var(--surface-subtle)}.collection-tabs button.active{color:var(--green-dark)}.collection-tabs button.active:after{content:"";background:var(--green);height:3px;position:absolute;bottom:-1px;left:10px;right:10px}.collection-tabs button b{color:#fff;background:var(--steel);border-radius:8px;place-items:center;min-width:19px;height:19px;padding:0 5px;font-size:10px;display:grid}.collection-main{min-height:0;overflow:hidden}.collection-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;height:100%;padding:22px clamp(18px,4vw,48px) 46px;overflow-y:auto}.collection-scroll>*{width:min(1160px,100%);margin-left:auto;margin-right:auto}.collection-page-heading{justify-content:space-between;align-items:center;gap:18px;min-height:68px;margin-bottom:18px;display:flex}.collection-page-heading>span{min-width:0}.collection-page-heading small{color:var(--green);text-transform:uppercase;margin-bottom:3px;font-size:10px;font-weight:850;display:block}.collection-page-heading h1{overflow-wrap:anywhere;font-size:27px;line-height:1.18}.collection-page-heading p{color:var(--muted);margin-top:4px;font-size:13px}.collection-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:24px;display:grid}.collection-metric{background:var(--surface);border:1px solid var(--border);border-radius:6px;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;min-height:92px;padding:13px;display:grid}.collection-metric>svg{box-sizing:content-box;color:var(--steel);background:#e7eff2;border-radius:5px;padding:8px}.collection-metric>span{flex-direction:column;min-width:0;display:flex}.collection-metric small,.count-stat small{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:800}.collection-metric strong{overflow-wrap:anywhere;margin-top:2px;font-size:20px}.collection-metric b{color:var(--muted);font-size:10px;font-weight:650}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:34px;display:grid}.collection-section{border-top:1px solid var(--border);min-width:0;padding:19px 0 24px}.section-heading{justify-content:space-between;align-items:baseline;gap:12px;min-width:0;margin-bottom:12px;display:flex}.section-heading strong{font-size:15px}.section-heading small{color:var(--muted);text-align:right;font-size:11px}.progress-list{gap:12px;display:grid}.progress-row>span{justify-content:space-between;gap:12px;margin-bottom:5px;font-size:12px;display:flex}.progress-row>span b{color:var(--muted)}.progress-row>div{background:var(--surface-strong);border-radius:3px;height:6px;overflow:hidden}.progress-row i{background:var(--green);height:100%;display:block}.recommendation-feature,.section-action-row{width:100%;color:var(--ink);text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:6px;align-items:center;gap:12px;padding:10px;display:grid}.recommendation-feature{grid-template-columns:68px minmax(0,1fr) 20px;margin-bottom:6px}.recommendation-feature:hover,.section-action-row:hover{background:var(--surface-subtle);border-color:var(--border-strong)}.recommendation-feature>span,.section-action-row>span{flex-direction:column;gap:3px;min-width:0;display:flex}.recommendation-feature strong,.section-action-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.recommendation-feature small,.section-action-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.collection-thumb-large,.collection-thumb,.activity-thumb,.collection-editor-image{object-fit:contain;border:1px solid var(--border);background:#eef1ef;border-radius:5px}.collection-thumb-large{width:68px;height:68px}.collection-thumb{width:54px;height:54px}.activity-thumb{width:42px;height:42px}.recommendation-stars{color:var(--amber);align-items:center;gap:7px;display:inline-flex}.recommendation-stars>span{gap:1px;display:inline-flex}.recommendation-stars b{color:var(--ink-soft);font-size:10px;font-weight:800}.coverage-list,.activity-list{gap:4px;display:grid}.coverage-row,.activity-list button{border-bottom:1px solid var(--surface-strong);background:0 0;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:50px;padding:6px 7px;display:grid}.coverage-row>svg{color:var(--green)}.coverage-row>span,.activity-list button>span{flex-direction:column;gap:2px;min-width:0;display:flex}.coverage-row strong,.activity-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.coverage-row small,.activity-list small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.coverage-row b{color:var(--ink-soft);font-size:11px}.section-action-row{grid-template-columns:32px minmax(0,1fr) 20px}.section-action-row>svg:first-child{color:var(--red)}.activity-list button{color:var(--ink);text-align:left;grid-template-columns:42px minmax(0,1fr) 20px}.activity-list button:hover{background:var(--surface-subtle)}.section-empty{color:var(--muted);font-size:12px}.collection-tools{margin-bottom:14px}.collection-search{background:var(--surface);width:100%;max-width:none}.quick-filters{scrollbar-width:thin;gap:6px;margin-top:9px;padding-bottom:2px;display:flex;overflow-x:auto}.quick-filters button{min-height:34px;color:var(--ink-soft);background:var(--surface);border:1px solid var(--border);border-radius:6px;flex:none;padding:0 11px;font-size:11px;font-weight:800}.quick-filters button.active{color:#fff;background:var(--green);border-color:var(--green)}.collection-unit-list,.store-unit-list,.wishlist-list{background:var(--surface);border:1px solid var(--border);border-radius:6px;overflow:hidden}.collection-unit-row{border-bottom:1px solid var(--surface-strong);grid-template-columns:minmax(0,1fr) 44px;align-items:center;min-height:70px;display:grid}.collection-unit-row:last-child,.store-unit-row:last-child,.wishlist-row:last-child{border-bottom:0}.collection-unit-row:hover,.store-unit-row:hover,.wishlist-row:hover{background:var(--surface-subtle)}.collection-unit-main{text-align:left;background:0 0;grid-template-columns:54px minmax(180px,1fr) minmax(280px,.8fr);align-items:center;gap:10px;min-width:0;padding:7px 9px;display:grid}.collection-unit-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.collection-unit-copy strong,.store-unit-copy>strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.collection-unit-copy small,.store-unit-copy>small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.collection-counts,.box-analysis-summary{grid-template-columns:repeat(4,minmax(52px,1fr));gap:5px;display:grid}.count-stat{text-align:center;flex-direction:column;gap:1px;min-width:0;display:flex}.count-stat strong{overflow-wrap:anywhere;font-size:14px}.quick-add-button{color:#fff;background:var(--green);border-radius:5px;place-items:center;width:34px;height:34px;display:grid}.store-unit-row{border-bottom:1px solid var(--surface-strong);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:106px;padding:9px 10px;display:grid}.store-unit-main{text-align:left;background:0 0;grid-template-columns:68px minmax(0,1fr);align-items:center;gap:12px;min-width:0;padding:0;display:grid}.store-unit-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.store-quantity-line{flex-wrap:wrap;align-items:center;gap:5px 11px;margin:3px 0;font-size:11px;display:flex}.store-quantity-line>span:not(.need-more):not(.need-covered){color:var(--muted)}.need-more,.need-covered{border-radius:4px;padding:2px 6px;font-weight:850}.need-more{color:var(--red);background:var(--red-soft)}.need-covered{color:var(--green-dark);background:var(--green-soft)}.store-actions{align-items:center;gap:5px;display:flex}.wishlist-button{border:1px solid var(--border)}.wishlist-button.active{color:var(--red);background:var(--red-soft)}.store-add-button{min-width:106px}.wishlist-row{width:100%;min-height:70px;color:var(--ink);text-align:left;border-bottom:1px solid var(--surface-strong);background:0 0;grid-template-columns:54px minmax(0,1fr) auto 36px 82px 20px;align-items:center;gap:10px;padding:7px 10px;display:grid}.wishlist-row>span:nth-child(2){flex-direction:column;gap:3px;min-width:0;display:flex}.wishlist-row>span:nth-child(2) strong,.wishlist-row>span:nth-child(2) small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wishlist-row>span:nth-child(2) strong{font-size:13px}.wishlist-row>span:nth-child(2) small,.wishlist-price{color:var(--muted);font-size:11px}.priority-badge{text-transform:uppercase;border-radius:4px;padding:3px 7px;font-size:10px;font-weight:850}.priority-high{color:var(--red);background:var(--red-soft)}.priority-medium{color:#795111;background:var(--amber-soft)}.priority-low{color:var(--steel);background:#e7eff2}.box-analysis-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.box-analysis{background:var(--surface);border:1px solid var(--border);border-radius:6px;min-width:0;overflow:hidden}.box-analysis>header{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto 38px 38px;align-items:center;gap:5px;min-height:66px;padding:9px 10px;display:grid}.box-analysis>header>span:first-child{flex-direction:column;min-width:0;display:flex}.box-analysis>header strong,.box-analysis>header small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.box-analysis>header strong{font-size:14px}.box-analysis>header small{color:var(--muted);font-size:10px}.danger-button,.danger-text{color:var(--red)}.box-analysis-summary{background:var(--surface-subtle);border-bottom:1px solid var(--border);grid-template-columns:repeat(5,minmax(0,1fr));padding:11px 8px}.box-item-list{padding:4px 10px 10px}.box-item-list>div{border-bottom:1px solid var(--surface-strong);grid-template-columns:minmax(0,1fr) 28px auto;align-items:center;gap:7px;min-height:36px;font-size:11px;display:grid}.box-item-list>div small{color:var(--muted)}.collection-empty{min-height:230px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.collection-empty strong{color:var(--ink-soft);font-size:14px}.collection-empty span{max-width:350px;font-size:12px;line-height:1.45}.collection-loading{gap:10px;width:min(900px,100% - 36px);margin:34px auto;display:grid}.collection-loading span{background:var(--surface-strong);border-radius:6px;height:78px;animation:1.2s ease-in-out infinite alternate loading-pulse}.collection-modal-wide{width:min(840px,100%)}.modal-drag-handle{display:none}.collection-editor-hero{grid-template-columns:128px minmax(0,1fr);align-items:center;gap:16px;margin-bottom:20px;display:grid}.collection-editor-image{width:128px;height:128px}.collection-editor-hero>.unit-image-button{cursor:zoom-in}.collection-editor-hero>.unit-image-button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.collection-editor-hero>span{flex-direction:column;gap:5px;min-width:0;display:flex}.collection-editor-hero>span>strong{font-size:19px}.collection-editor-hero>span>small{color:var(--muted);font-size:12px}.metadata-tags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.metadata-tags b{color:var(--steel);background:#e7eff2;border:1px solid #c4d3da;border-radius:4px;padding:3px 6px;font-size:9px}.editor-section{border-top:1px solid var(--border);padding:16px 0}.editor-section-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.editor-section-header .section-heading{flex:1;margin:0}.counter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px;display:grid}.counter-field{background:var(--surface-subtle);border:1px solid var(--border);border-radius:5px;justify-content:space-between;align-items:center;gap:8px;min-height:54px;padding:7px 8px 7px 10px;display:flex}.counter-field>span:first-child{flex-direction:column;min-width:0;display:flex}.counter-field>span strong{font-size:11px}.counter-field>span small{color:var(--muted);font-size:9px}.number-stepper{background:var(--surface);border:1px solid var(--border-strong);border-radius:5px;flex:none;grid-template-columns:36px minmax(42px,1fr) 36px;width:128px;height:36px;display:grid;overflow:hidden}.number-stepper button{color:var(--ink-soft);background:var(--surface-subtle);place-items:center;display:grid}.number-stepper input{text-align:center;background:var(--surface);border:0;border-right:1px solid var(--border);border-left:1px solid var(--border);appearance:textfield;outline:0;width:100%;min-width:0;padding:0}.editor-details{border-top:1px solid var(--border)}.editor-details summary{min-height:48px;color:var(--ink-soft);cursor:pointer;padding:15px 2px;font-size:12px;font-weight:800}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-bottom:14px;display:grid}.field-wide{grid-column:1/-1}.field textarea{resize:vertical;width:100%;min-height:76px;color:inherit;font:inherit;background:var(--surface);border:1px solid var(--border);border-radius:5px;padding:9px 10px}.money-field>span:last-child{height:38px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:5px;grid-template-columns:30px minmax(0,1fr);align-items:center;display:grid}.money-field>span:last-child svg{justify-self:center}.money-field>span:last-child input{border:0;outline:0;height:100%;padding-left:0}.compatibility-copy{color:var(--ink-soft);gap:9px;padding:0 2px 14px;font-size:11px;line-height:1.5;display:grid}.box-picker-section{border-top:1px solid var(--border);padding-top:16px}.box-picker-list{border:1px solid var(--border);border-radius:6px;margin-top:10px;overflow:hidden}.box-picker-row{border-bottom:1px solid var(--surface-strong);grid-template-columns:54px minmax(0,1fr) 128px;align-items:center;gap:10px;min-height:68px;padding:6px 8px;display:grid}.box-picker-row:last-child{border-bottom:0}.box-picker-row>span:nth-child(2){flex-direction:column;gap:2px;min-width:0;display:flex}.box-picker-row>span:nth-child(2) strong,.box-picker-row>span:nth-child(2) small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.box-picker-row>span:nth-child(2) strong{font-size:12px}.box-picker-row>span:nth-child(2) small{color:var(--muted);font-size:10px}.collection-mobile-tabs{display:none}@media (width<=900px){.collection-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.collection-tabs button{flex:1;min-width:0}.collection-unit-main{grid-template-columns:54px minmax(0,1fr) minmax(230px,.8fr)}.box-analysis-list{grid-template-columns:1fr}}@media (width<=720px){.game-picker-actions{gap:5px}.game-picker-actions .button{min-height:38px;padding-inline:10px;font-size:12px}.collection-shell{grid-template-rows:auto auto minmax(0,1fr) auto;min-height:0}.collection-title,.collection-tabs,.collection-topbar .brand-name{display:none}.collection-topbar .brand-mark{width:32px;height:32px}.collection-setup{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) auto auto;gap:7px;padding:8px 10px}.collection-setup .field>span{font-size:9px}.collection-setup .field select{height:36px;padding-inline:7px;font-size:11px}.collection-legends-toggle{flex-direction:column;justify-content:center;gap:0;min-height:36px;padding:0 5px;font-size:8px}.collection-legends-toggle input{width:15px;height:15px}.collection-scroll{padding:14px 10px 26px}.collection-page-heading{min-height:58px;margin-bottom:12px}.collection-page-heading h1{font-size:21px}.collection-page-heading p{font-size:11px}.collection-page-heading>.button{min-height:36px;padding-inline:10px;font-size:11px}.collection-metrics{gap:6px;margin-bottom:16px}.collection-metric{grid-template-columns:31px minmax(0,1fr);gap:7px;min-height:76px;padding:9px}.collection-metric>svg{width:17px;height:17px;padding:6px}.collection-metric strong{font-size:16px}.overview-grid{grid-template-columns:1fr}.collection-section{padding:16px 0 19px}.collection-tools{z-index:4;background:var(--canvas);padding-top:4px;padding-bottom:6px;position:sticky;top:-14px}.collection-unit-main{grid-template-columns:48px minmax(0,1fr) 122px;gap:7px;padding:6px 7px}.collection-thumb{width:48px;height:48px}.collection-counts{grid-template-columns:repeat(2,minmax(48px,1fr));row-gap:4px}.collection-counts .count-stat:nth-child(2),.collection-counts .count-stat:nth-child(4){display:none}.store-unit-row{grid-template-columns:minmax(0,1fr) 90px;align-items:stretch;gap:7px;min-height:124px;padding:8px}.store-unit-main{grid-template-columns:62px minmax(0,1fr);gap:9px}.collection-thumb-large{width:62px;height:62px}.store-actions{flex-direction:column;justify-content:center;align-items:stretch}.wishlist-button,.store-add-button{width:100%;min-width:0}.store-add-button{flex-direction:column;gap:1px;min-height:48px;padding:0 7px;font-size:11px}.wishlist-row{grid-template-columns:48px minmax(0,1fr) auto 20px;gap:7px;padding:6px 7px}.wishlist-row>b,.wishlist-price{display:none}.box-analysis>header{grid-template-columns:minmax(0,1fr) 38px 38px}.box-analysis>header .recommendation-stars{grid-area:2/1/auto/-1}.box-analysis-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.box-analysis-summary .count-stat:last-child{display:none}.box-item-list>div{grid-template-columns:minmax(0,1fr) 24px}.box-item-list>div small{grid-column:1/-1;padding-bottom:5px}.collection-mobile-tabs{z-index:20;min-height:62px;padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.collection-mobile-tabs button{min-width:0;color:var(--muted);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:8px;font-weight:800;display:flex;position:relative}.collection-mobile-tabs button.active{color:var(--green);background:var(--green-soft)}.collection-modal{max-height:calc(100dvh - 18px)}.collection-modal .modal-drag-handle{background:var(--border-strong);border-radius:2px;flex:none;width:42px;height:4px;margin:7px auto 0;display:block}.collection-modal .modal-header{min-height:56px;padding-top:7px}.collection-modal .modal-body{padding:12px}.collection-editor-hero{grid-template-columns:92px minmax(0,1fr);gap:11px}.collection-editor-image{width:92px;height:92px}.collection-editor-hero>span>strong{font-size:16px}.counter-grid{grid-template-columns:1fr;gap:6px}.form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.box-picker-row{grid-template-columns:44px minmax(0,1fr) 112px;gap:7px}.box-picker-row .collection-thumb{width:44px;height:44px}.box-picker-row .number-stepper{grid-template-columns:32px minmax(36px,1fr) 32px;width:112px}}@media (width<=430px){.game-picker-actions .button span,.collection-topbar .game-switcher span{display:none}.collection-unit-main{grid-template-columns:44px minmax(0,1fr) 54px}.collection-unit-main .collection-thumb{width:44px;height:44px}.collection-counts{grid-template-columns:1fr}.collection-counts .count-stat:nth-child(3),.store-unit-copy .recommendation-stars b{display:none}.store-quantity-line{gap:4px 7px}}.import-resolution-modal{width:min(760px,100%)}.import-resolution-body{padding:0}.import-resolution-intro{color:var(--muted);background:var(--surface-subtle);border-bottom:1px solid var(--border);padding:12px 16px;font-size:12px;line-height:1.45}.import-resolution-list{flex-direction:column;gap:10px;padding:12px 16px 18px;display:flex}.import-resolution-unit{background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;overflow:hidden}.import-resolution-unit.matched{border-color:#1c69518f}.import-resolution-unit-header{background:var(--surface-subtle);border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:60px;padding:9px 11px;display:grid}.import-resolution-unit-header>div:first-child{flex-direction:column;gap:2px;min-width:0;display:flex}.import-resolution-unit-header>div:first-child strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.import-resolution-unit-header>div:first-child span{color:var(--muted);font-size:10px}.import-resolution-totals{color:var(--muted);grid-template-columns:auto auto;gap:4px 10px;font-size:10px;display:grid}.import-resolution-totals b{color:var(--ink);margin-left:3px;font-size:13px}.import-resolution-status{color:#78501b;background:var(--amber-soft);border-bottom:1px solid #ad74243d;align-items:center;gap:5px;min-height:30px;padding:5px 11px;font-size:11px;font-weight:750;display:flex}.import-resolution-status.over{color:var(--red);background:#faeeee}.import-resolution-status.matched{color:var(--green-dark);background:var(--green-soft);border-bottom-color:#1c69512e}.import-resolution-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:11px;display:grid}.import-resolution-enhancement,.import-resolution-no-options{grid-column:1/-1}.import-resolution-wargear>span{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.import-resolution-wargear small{color:var(--muted);text-transform:none;font-size:9px;font-weight:650}.import-resolution-no-options{color:var(--muted);background:var(--surface-subtle);border-left:3px solid var(--border-strong);padding:8px 9px;font-size:11px;line-height:1.4}.import-resolution-footer{gap:8px}.import-resolution-footer>span{color:var(--muted);margin-right:auto;font-size:11px}.import-resolution-footer>span strong{color:var(--green-dark);font-size:14px}@media (width<=720px){.import-resolution-modal{border-radius:8px 8px 0 0;max-height:calc(100dvh - 8px)}.import-resolution-modal .modal-drag-handle{background:var(--surface);flex:none;place-items:center;width:100%;height:22px;display:grid}.import-resolution-modal .modal-drag-handle span{background:var(--border-strong);border-radius:2px;width:42px;height:4px}.import-resolution-modal .modal-header{min-height:58px;padding-top:7px}.import-resolution-list{padding:10px 10px 16px}.import-resolution-controls{grid-template-columns:1fr}.import-resolution-enhancement,.import-resolution-no-options{grid-column:auto}.import-resolution-footer{grid-template-columns:1fr 1fr;min-height:auto;display:grid}.import-resolution-footer>span{text-align:center;grid-column:1/-1;margin:0}}@media (width<=430px){.import-resolution-unit-header{grid-template-columns:1fr;gap:6px}.import-resolution-totals{justify-content:start}}@media (width<=720px){.unit-loadout-body{padding:10px}.loadout-slot{grid-template-columns:minmax(88px,.45fr) minmax(0,1fr)}.loadout-slot .loadout-choice-copy{grid-column:1/-1;padding-left:0}.unit-loadout-footer{padding-inline:10px}}@media (width<=430px){.loadout-size-field{grid-template-columns:1fr;gap:6px}.loadout-option{grid-template-columns:20px minmax(0,1fr) auto;gap:6px;padding-inline:7px}.loadout-quantity{grid-template-columns:27px 28px 27px;width:84px}.loadout-quantity button{width:27px}.loadout-slot,.loadout-pair-grid{grid-template-columns:1fr}.unit-loadout-footer>span{display:none}}.battle-scoreboard{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);align-items:stretch;gap:8px;width:min(1160px,100%);margin:14px auto 0;padding:0 clamp(14px,3vw,34px);display:grid}.battle-player-score{min-width:0;min-height:92px;color:var(--ink);text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:7px;grid-template-rows:auto auto auto 1fr;grid-template-columns:minmax(0,1fr) auto;gap:2px 14px;padding:12px 15px;display:grid}.battle-player-score:hover,.battle-player-score.selected{border-color:var(--green)}.battle-player-score.selected{box-shadow:inset 4px 0 0 var(--green)}.battle-player-score>span,.battle-player-score>strong,.battle-player-score>small,.battle-player-score>em{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.battle-player-score>strong{font-size:17px}.battle-player-score>small,.battle-player-score>em{color:var(--muted);font-size:10px;font-style:normal}.battle-player-score>b{color:var(--green-dark);font-variant-numeric:tabular-nums;white-space:nowrap;grid-area:1/2/-1;align-self:center;font-size:30px}.battle-player-score.mission-player{min-height:82px}.battle-player-score.mission-player>b{text-overflow:ellipsis;max-width:92px;font-size:15px;overflow:hidden}.battle-player-score>b span{font-size:12px}.battle-versus{color:var(--muted);place-items:center;font-size:10px;font-weight:900;display:grid}.battle-cp-dock{z-index:12;background:var(--border);border:1px solid var(--border-strong);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;width:min(760px,100% - 28px);margin:8px auto 0;display:grid;position:sticky;top:4px;overflow:hidden;box-shadow:0 4px 12px #1930271a}.battle-cp-dock>div{background:var(--surface);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:6px 8px;display:grid}.battle-cp-dock>div>span{flex-direction:column;min-width:0;display:flex}.battle-cp-dock>div>span small{color:var(--muted);text-transform:uppercase;font-size:8px;font-weight:850}.battle-cp-dock>div>span strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.battle-cp-dock .game-stepper{grid-template-columns:28px 24px 28px}.battle-cp-dock .game-stepper>span{display:none}.battle-cp-dock .game-stepper .icon-button{width:28px;min-width:28px;height:28px;min-height:28px}.battle-session-content{flex-direction:column;gap:10px;padding-top:14px;display:flex}.battle-round-tabs{background:var(--surface);border:1px solid var(--border);border-radius:6px;grid-template-columns:repeat(6,minmax(0,1fr));display:grid;overflow:hidden}.battle-round-tabs button{min-width:0;min-height:44px;color:var(--muted);border-right:1px solid var(--border);background:0 0;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:800;display:flex}.battle-round-tabs button:last-child{border-right:0}.battle-round-tabs button:hover{background:var(--surface-subtle)}.battle-round-tabs button.active{color:var(--green-dark);background:var(--green-soft);box-shadow:inset 0 -3px 0 var(--green)}.battle-play-workspace{width:min(760px,100%);margin:0 auto}.battle-mission-panel,.battle-scoring-panel,.battle-final-panel{background:var(--surface);border:1px solid var(--border);border-radius:7px;min-width:0;overflow:hidden}.battle-mission-panel{width:min(880px,100%);margin:0 auto}.battle-panel-heading{background:var(--surface-subtle);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:11px 14px;display:flex}.battle-panel-heading>div,.battle-unit-section>header>div,.battle-stratagem-section>header>div{min-width:0}.battle-panel-heading h2,.battle-unit-section h2,.battle-stratagem-section h2{text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.battle-panel-heading>small{max-width:180px;color:var(--muted);text-align:right;font-size:9px;line-height:1.3}.battle-mission-stage{border-bottom:1px solid var(--border)}.combat-patrol-match-summary{background:var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.combat-patrol-match-summary>article{background:var(--surface);min-width:0;padding:10px 12px}.combat-patrol-match-summary>article>header{flex-direction:column;min-width:0;margin-bottom:7px;display:flex}.combat-patrol-match-summary>article>header span,.combat-patrol-match-summary>article>div small{color:var(--muted);text-transform:uppercase;font-size:8px;font-weight:800}.combat-patrol-match-summary>article>header strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.combat-patrol-match-summary>article>div{color:var(--green-dark);grid-template-columns:20px minmax(0,1fr);align-items:center;gap:6px;display:grid}.combat-patrol-match-summary>article>div>span{flex-direction:column;min-width:0;display:flex}.combat-patrol-match-summary>article>div strong{font-size:11px}.combat-patrol-match-summary p{color:var(--ink-soft);margin:6px 0 0;font-size:10px;line-height:1.45}.battle-stage-heading{justify-content:space-between;align-items:center;gap:10px;min-height:50px;padding:8px 14px;display:flex}.battle-stage-heading>div{align-items:center;gap:9px;min-width:0;display:flex}.battle-stage-heading>div>span{color:#fff;background:var(--green-dark);border-radius:4px;flex:none;place-items:center;width:26px;height:26px;font-size:11px;font-weight:850;display:grid}.battle-stage-heading small,.battle-disposition-status>header span,.battle-player-options>header span,.battle-deployment-result small,.battle-role-choice>span{color:var(--muted);text-transform:uppercase;font-size:8px;font-weight:800;line-height:1.2;display:block}.battle-stage-heading h3{font-size:14px;line-height:1.2}.battle-stage-heading .button-quiet{min-height:32px;padding:5px 8px;font-size:10px}.battle-disposition-grid,.battle-player-options-grid{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.battle-disposition-status{border-right:1px solid var(--border);flex-direction:column;gap:10px;min-width:0;min-height:112px;padding:11px 14px;display:flex}.battle-disposition-status:last-child{border-right:0}.battle-disposition-status>header,.battle-player-options>header{justify-content:space-between;align-items:baseline;gap:10px;min-width:0;display:flex}.battle-disposition-status>header strong,.battle-player-options>header strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.battle-disposition-status>.button{width:100%;min-height:42px;margin-top:auto}.battle-disposition-hidden,.battle-disposition-revealed{min-width:0;color:var(--green-dark);background:var(--green-soft);border:1px solid var(--green);border-radius:5px;grid-template-columns:22px minmax(0,1fr);align-items:start;gap:8px;margin-top:auto;padding:9px;display:grid}.battle-disposition-hidden{color:var(--muted);background:var(--surface-subtle);border-color:var(--border)}.battle-disposition-hidden div,.battle-disposition-revealed div{flex-direction:column;gap:2px;min-width:0;display:flex}.battle-disposition-hidden strong,.battle-disposition-revealed strong{font-size:12px}.battle-disposition-hidden small,.battle-disposition-revealed small{color:var(--muted);font-size:9px;line-height:1.35}.battle-primary-matchup{color:var(--green-dark);background:var(--green-soft);border-top:1px solid var(--green);grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:9px;padding:12px 14px;display:grid}.battle-primary-matchup>svg{justify-self:center}.battle-primary-matchup>div{flex-direction:column;gap:2px;min-width:0;display:flex}.battle-primary-matchup>div:last-child{text-align:right}.battle-primary-matchup span,.battle-primary-matchup small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-weight:700;overflow:hidden}.battle-primary-matchup strong{overflow-wrap:anywhere;font-size:14px;line-height:1.2}.battle-player-options{border-right:1px solid var(--border);flex-direction:column;gap:11px;min-width:0;padding:11px 14px 13px;display:flex}.battle-player-options:last-child{border-right:0}.battle-player-options .battle-secondary-mode .segmented-control{width:100%}.battle-fixed-player-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.battle-fixed-player-options .field{min-width:0}.battle-fixed-player-options select{padding-inline:8px 26px;font-size:10px}.battle-player-options .battle-ready-mission{margin-top:auto}.battle-deployment-setup{border-top:1px solid var(--border);flex-direction:column;gap:11px;padding:0 14px 14px;display:flex}.battle-deployment-result{background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;margin-top:12px;padding:9px 10px;display:grid}.battle-deployment-result.drawn{color:var(--green-dark);background:var(--green-soft);border-color:var(--green)}.battle-deployment-result>div{flex-direction:column;gap:2px;min-width:0;display:flex}.battle-deployment-result strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.battle-deployment-result .button{min-height:34px;padding:6px 9px;font-size:10px}.battle-deployment-map{background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;grid-template-columns:minmax(120px,190px) minmax(0,1fr) auto;align-items:center;gap:12px;margin:0;padding:10px;display:grid}.battle-deployment-map figcaption{flex-direction:column;gap:2px;min-width:0;display:flex}.battle-deployment-map figcaption span{color:var(--muted);text-transform:uppercase;font-size:8px;font-weight:800}.battle-deployment-map figcaption strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.battle-deployment-map figcaption small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px;line-height:1.25;overflow:hidden}.battle-deployment-map-preview{width:min(250px,100%);min-width:0;text-align:inherit;background:0 0;border:0;justify-self:center;padding:0;display:block;position:relative}.battle-deployment-map-preview svg{aspect-ratio:17/13;width:100%;display:block}.battle-deployment-map-preview.event-terrain{width:min(175px,100%)}.battle-event-terrain-image{border:1px solid var(--border);background:#fff;border-radius:4px;width:100%;height:auto;display:block}.battle-map-expand-icon{width:24px;height:24px;color:var(--green-dark);border:1px solid var(--border);background:#ffffffe6;border-radius:4px;place-items:center;display:grid;position:absolute;bottom:2px;right:2px}.battle-map-field{fill:#f8faf8;stroke:var(--border-strong);stroke-width:.75px}.battle-map-zone{stroke-width:.75px}.battle-map-zone.attacker{fill:#f2d9d5;stroke:#9c4f43}.battle-map-zone.defender{fill:var(--green-soft);stroke:var(--green)}.battle-map-centre{fill:none;stroke:var(--border-strong);stroke-dasharray:1.5 1.5;stroke-width:.45px}.battle-deployment-map text,.battle-map-dialog text{fill:var(--ink);text-anchor:middle;dominant-baseline:middle;font-size:4px;font-weight:900}.battle-map-measurement,.battle-map-dimension{font-variant-numeric:tabular-nums;paint-order:stroke;stroke:#ffffffeb;stroke-width:.9px;font-size:2.5px!important}.battle-map-dimension{fill:var(--muted)!important;font-size:2.8px!important}.battle-map-objective circle:first-child{fill:#fff;stroke:var(--green-dark);stroke-width:.55px}.battle-map-objective circle:last-child{fill:var(--green-dark)}.combat-patrol-terrain{fill:#d7ddda;stroke:#65736b;stroke-width:.45px}.combat-patrol-map-graphic{aspect-ratio:44/30!important}.battle-map-backdrop,.battle-stratagem-backdrop{align-items:center}.battle-map-dialog{width:min(820px,100%)}.battle-map-dialog-content{background:var(--surface-subtle);min-height:0;padding:14px;overflow:auto}.battle-map-dialog-content svg{width:min(760px,100%);margin:0 auto;display:block}.battle-map-dialog-content.event-terrain{place-items:center;display:grid}.battle-map-dialog-content.event-terrain .battle-event-terrain-image{width:auto;max-width:100%;max-height:calc(100dvh - 210px)}.battle-map-source{color:var(--green-dark);text-align:center;text-underline-offset:2px;padding:8px 14px;font-size:10px;font-weight:750;text-decoration:underline}.battle-map-dialog-legend{border-top:1px solid var(--border);flex-direction:row;justify-content:center;padding:10px 14px}.battle-map-legend{flex-direction:column;gap:5px;font-size:9px;font-weight:750;display:flex}.battle-map-legend span{white-space:nowrap;align-items:center;gap:5px;display:flex}.battle-map-legend span:before{content:"";border:1px solid;border-radius:2px;width:9px;height:9px}.battle-map-legend .attacker:before{background:#f2d9d5;border-color:#9c4f43}.battle-map-legend .defender:before{background:var(--green-soft);border-color:var(--green)}.battle-deployment-map.event-terrain .battle-map-legend .defender:before,.battle-map-dialog.event-terrain .battle-map-legend .defender:before{background:#dbe8f5;border-color:#3d6f9e}.battle-role-choice{gap:6px;display:grid}.battle-turn-order-choice{border-top:1px solid var(--border);padding-top:9px}.battle-role-choice>div{border:1px solid var(--border);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.battle-role-choice button{text-align:left;background:var(--surface);border-right:1px solid var(--border);flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;min-width:0;min-height:48px;padding:7px 10px;display:flex}.battle-role-choice button:last-child{border-right:0}.battle-role-choice button.selected{color:var(--green-dark);background:var(--green-soft);box-shadow:inset 0 -3px 0 var(--green)}.battle-role-choice button strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;overflow:hidden}.battle-role-choice button small{color:var(--muted);font-size:9px}.battle-disposition-dialog{width:min(460px,100%)}.battle-disposition-dialog .modal-body{flex-direction:column;gap:14px;display:flex}.battle-disposition-dialog .modal-footer{gap:8px}.battle-private-choice{color:var(--green-dark);background:var(--green-soft);border:1px solid var(--green);border-radius:6px;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:8px;padding:10px;display:grid}.battle-private-choice>div{flex-direction:column;gap:2px;display:flex}.battle-private-choice strong{font-size:12px}.battle-private-choice small,.battle-disposition-dialog .field>small{color:var(--muted);font-size:10px;line-height:1.4}.battle-mission-grid,.battle-fixed-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding:13px 14px;display:grid}.battle-mission-grid .field,.battle-fixed-grid .field{min-width:0}.battle-mission-grid .field>small{min-height:26px;color:var(--muted);margin-top:5px;font-size:9px;line-height:1.35;display:block}.battle-fixed-grid{padding-top:0}.battle-secondary-mode{min-width:0}.battle-secondary-mode>span{color:var(--muted);text-transform:uppercase;margin-bottom:6px;font-size:10px;font-weight:800;display:block}.battle-secondary-mode .segmented-control{grid-template-columns:1fr 1fr;width:min(360px,100%)}.battle-ready-mission{background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;grid-template-columns:18px minmax(0,1fr);align-self:end;align-items:center;gap:8px;min-height:44px;padding:7px 10px;display:grid}.battle-ready-mission:has(input:checked){color:var(--green-dark);background:var(--green-soft);border-color:var(--green)}.battle-ready-mission input{width:16px;height:16px;accent-color:var(--green);margin:0}.battle-ready-mission>span{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.battle-ready-mission strong,.battle-ready-mission small{font-size:10px;font-weight:800}.battle-ready-mission small{color:var(--green-dark)}.battle-mission-footer{background:var(--surface-subtle);border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:64px;padding:10px 14px;display:flex}.battle-mission-footer>span{color:var(--muted);font-size:10px}.battle-score-lines{flex-direction:column;display:flex}.battle-tactical-draw{background:var(--green-soft);border-bottom:1px solid var(--green);justify-content:space-between;align-items:center;gap:10px;min-height:50px;padding:7px 10px;display:flex}.battle-tactical-draw>div,.battle-secondary-redraw>div:first-child{min-width:0;color:var(--green-dark);align-items:center;gap:8px;display:flex}.battle-tactical-draw span,.battle-secondary-redraw span{flex-direction:column;gap:1px;min-width:0;display:flex}.battle-tactical-draw strong,.battle-secondary-redraw strong{font-size:11px}.battle-tactical-draw small,.battle-secondary-redraw small{color:var(--muted);font-size:8px}.battle-tactical-draw .button{min-width:94px;min-height:34px;padding:5px 8px;font-size:10px}.battle-new-orders-status{color:var(--green-dark);background:var(--surface);border:1px solid var(--green);text-transform:uppercase;border-radius:4px;flex:none;padding:4px 7px;font-size:8px;font-weight:850}.battle-new-orders-status.used{color:var(--muted);background:var(--surface-subtle);border-color:var(--border)}.battle-secondary-redraw{background:var(--amber-soft);border-bottom:1px solid var(--amber);justify-content:space-between;align-items:center;gap:10px;min-height:58px;padding:8px 10px;display:flex}.battle-secondary-redraw>div:last-child{flex:none;gap:6px;display:flex}.battle-secondary-redraw .button{min-height:32px;padding:5px 8px;font-size:9px}.battle-score-line{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;min-height:64px;padding:7px 10px;display:grid}.battle-secondary-line{align-items:end}.battle-score-line>div:first-child,.battle-score-line>label{flex-direction:column;gap:4px;min-width:0;display:flex}.battle-score-line>div:first-child>span,.battle-score-line>label>span{color:var(--muted);text-transform:uppercase;align-items:center;gap:7px;font-size:10px;font-weight:800;display:flex}.battle-score-line>div:first-child>strong,.battle-score-line>label>strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.battle-secondary-mission-button{text-align:left;min-width:0;color:var(--ink);background:0 0;align-items:baseline;gap:7px;padding:0;display:flex}.battle-secondary-mission-button strong{min-width:0;text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:3px;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.battle-secondary-mission-button>small{color:var(--green-dark);flex:none;font-size:8px;font-weight:750}.battle-secondary-mission-button:hover strong{-webkit-text-decoration-color:var(--green);text-decoration-color:var(--green)}.battle-secondary-draw-button{width:fit-content;min-height:32px;padding:5px 10px;font-size:10px}.battle-secondary-dialog{width:min(560px,100%);max-height:min(760px,100dvh - 24px)}.battle-secondary-dialog .modal-body{flex-direction:column;gap:10px;min-height:0;display:flex;overflow-y:auto}.battle-secondary-state{color:var(--green-dark);background:var(--green-soft);border:1px solid var(--green);border-radius:5px;align-items:center;gap:8px;padding:9px 10px;font-size:10px;line-height:1.4;display:flex}.battle-secondary-rule{background:var(--surface-subtle);border:1px solid var(--border);border-radius:5px;padding:11px 12px}.battle-secondary-rule>span,.battle-secondary-actions>header span{color:var(--green-dark);text-transform:uppercase;margin-bottom:5px;font-size:9px;font-weight:850;display:block}.battle-secondary-rule p{color:var(--ink-soft);margin:0;font-size:11px;line-height:1.5}.battle-secondary-actions{border:1px solid var(--border);border-radius:5px;overflow:hidden}.battle-secondary-actions>header{background:var(--surface-subtle);border-bottom:1px solid var(--border);padding:9px 11px}.battle-secondary-actions>header span{margin-bottom:2px}.battle-secondary-actions>header small{color:var(--muted);font-size:9px}.battle-secondary-action{text-align:left;width:100%;min-height:54px;color:var(--ink);background:var(--surface);border-bottom:1px solid var(--border);grid-template-columns:20px minmax(0,1fr);align-items:start;gap:8px;padding:9px 11px;display:grid}.battle-secondary-action:last-child{border-bottom:0}.battle-secondary-action:hover:not(:disabled){background:var(--green-soft)}.battle-secondary-action.required{color:var(--amber);background:var(--amber-soft)}.battle-secondary-action>svg{margin-top:2px}.battle-secondary-action>span{flex-direction:column;gap:2px;min-width:0;display:flex}.battle-secondary-action strong{font-size:11px}.battle-secondary-action small{color:var(--muted);font-size:9px;line-height:1.4}.battle-score-line>label>span small{color:var(--green-dark);background:var(--green-soft);border-radius:3px;padding:2px 5px;font-size:8px}.battle-score-line select{width:100%;min-width:0;height:38px;padding-block:4px;font-size:12px}.vp-control{border:1px solid var(--border-strong);border-radius:6px;grid-template-columns:34px minmax(0,1fr) 34px;align-items:stretch;width:144px;display:grid;overflow:hidden}.vp-control .icon-button{width:34px;min-width:34px;height:38px;min-height:38px;color:var(--green);background:var(--surface-subtle);border-radius:0}.vp-control .icon-button:first-child{border-right:1px solid var(--border)}.vp-control .icon-button:last-child{border-left:1px solid var(--border)}.vp-control label{grid-template-columns:32px auto;place-content:center;align-items:baseline;gap:2px;min-width:0;display:grid}.vp-control input{text-align:right;appearance:textfield;background:0 0;border:0;border-radius:0;width:32px;min-width:0;padding:0;font-size:18px;font-weight:850;line-height:1}.vp-control input::-webkit-inner-spin-button{appearance:none;margin:0}.vp-control input::-webkit-outer-spin-button{appearance:none;margin:0}.vp-control label span{color:var(--muted);font-size:9px;font-weight:800;line-height:1}.battle-round-total-header{text-align:right;flex:none;grid-template-columns:auto auto;justify-content:end;align-items:baseline;gap:0 6px;display:grid}.battle-round-total-header>span{color:var(--muted);text-transform:uppercase;align-items:center;gap:4px;font-size:8px;font-weight:800;display:flex}.battle-round-total-header>span svg,.battle-round-total-header>strong{color:var(--green-dark)}.battle-round-total-header>strong{font-variant-numeric:tabular-nums;font-size:20px}.battle-round-total-header>strong small,.battle-round-total-header>small{color:var(--muted);font-size:8px;font-weight:800}.battle-round-total-header>small{grid-column:1/-1}.battle-round-footer{background:var(--surface-subtle);justify-content:flex-end;align-items:center;min-height:54px;padding:8px 10px;display:flex}.battle-final-panel{padding-bottom:14px}.battle-final-heading{min-height:72px;color:var(--green);background:var(--green-soft);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:13px 16px;display:flex}.battle-final-heading h2{color:var(--ink);font-size:20px}.battle-final-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;display:grid}.final-player-score{border:1px solid var(--border);border-radius:6px;overflow:hidden}.final-player-score>header{background:var(--surface-subtle);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:72px;padding:11px 13px;display:flex}.final-player-score>header h3{font-size:16px}.final-player-score>header>strong{color:var(--green-dark);white-space:nowrap;font-size:29px}.final-player-score>header>strong small{font-size:10px}.final-player-score dl{margin:0}.final-player-score dl>div{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:34px;padding:5px 12px;display:flex}.final-player-score dt{color:var(--ink-soft);font-size:11px}.final-player-score dd{font-variant-numeric:tabular-nums;margin:0;font-size:12px;font-weight:850}.final-player-score .final-score-total{color:var(--green-dark);background:var(--green-soft);border-bottom:0}.final-round-breakdown{border-top:1px solid var(--border);grid-template-columns:repeat(5,1fr);display:grid}.final-round-breakdown span{border-right:1px solid var(--border);flex-direction:column;justify-content:center;align-items:center;min-height:45px;display:flex}.final-round-breakdown span:last-child{border-right:0}.final-round-breakdown small{color:var(--muted);font-size:8px}.final-round-breakdown strong{font-size:12px}.battle-finish-button{margin:0 14px 0 auto;display:flex}.battle-reference-panel{min-width:0;padding-top:2px}.battle-reference-single{min-width:0}.battle-reference-dual,.battle-stratagem-dual{display:none}.battle-roster-tabs{background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));width:min(606px,100%);margin-bottom:8px;display:grid;overflow:hidden}.battle-roster-tabs button{min-width:0;min-height:48px;color:var(--muted);text-align:left;border:0;border-right:1px solid var(--border);background:0 0;flex-direction:column;justify-content:center;gap:2px;padding:7px 12px;display:flex}.battle-roster-tabs button:last-child{border-right:0}.battle-roster-tabs button:hover{color:var(--ink);background:var(--surface)}.battle-roster-tabs button.active{color:var(--green-dark);background:var(--green-soft);box-shadow:inset 0 -3px 0 var(--green)}.battle-roster-tabs span{text-transform:uppercase;font-size:8px;font-weight:850}.battle-roster-tabs strong{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.battle-reference-toolbar{grid-template-columns:minmax(0,520px) auto;align-items:stretch;gap:8px;width:min(606px,100%);margin-bottom:8px;display:grid}.battle-reference-tools{justify-content:flex-end;align-items:stretch;gap:8px;min-width:0;display:flex}.battle-army-layout-toggle{flex:none;grid-template-columns:repeat(2,minmax(0,1fr));width:184px;display:none}.battle-army-layout-toggle button{gap:5px;min-width:0;padding-inline:8px;font-size:10px}.battle-army-layout-toggle button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.battle-reference-tabs{grid-template-columns:repeat(auto-fit,minmax(72px,1fr));width:100%}.battle-rules-button{white-space:nowrap;min-height:44px;padding-inline:12px;font-size:12px}.battle-notes-panel{width:100%;min-width:0}.battle-notes-panel textarea{box-sizing:border-box;width:100%;min-height:clamp(240px,42dvh,480px);color:var(--ink);letter-spacing:0;resize:vertical;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:12px;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:block}.battle-notes-panel textarea:focus{border-color:var(--steel);outline:3px solid #3562763d}.combat-patrol-reference{min-width:0}.combat-patrol-reference>header{justify-content:space-between;align-items:center;gap:10px;min-height:50px;margin-bottom:8px;display:flex}.combat-patrol-reference>header h2{font-size:17px}.combat-patrol-reference>header>strong{color:var(--green-dark);background:var(--green-soft);border:1px solid var(--green);border-radius:4px;padding:5px 7px;font-size:10px}.combat-patrol-reference-grid{background:var(--surface);border:1px solid var(--border);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.combat-patrol-reference-grid article{border-right:1px solid var(--border);padding:12px}.combat-patrol-reference-grid article:last-child{border-right:0}.combat-patrol-reference-grid span,.combat-patrol-upgrade-reference article span{color:var(--muted);text-transform:uppercase;font-size:8px;font-weight:800}.combat-patrol-reference-grid h3,.combat-patrol-upgrade-reference h4{margin-top:3px;font-size:13px}.combat-patrol-reference-grid p,.combat-patrol-upgrade-reference p{color:var(--ink-soft);margin:5px 0 0;font-size:11px;line-height:1.5}.combat-patrol-upgrade-reference{margin-top:12px}.combat-patrol-upgrade-reference>header{margin-bottom:6px}.combat-patrol-upgrade-reference>header h3{font-size:15px}.combat-patrol-upgrade-reference>div{border:1px solid var(--border);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.combat-patrol-upgrade-reference article{background:var(--surface);border-right:1px solid var(--border);padding:11px 12px}.combat-patrol-upgrade-reference article:last-child{border-right:0}.combat-patrol-restriction-note{color:var(--green-dark);background:var(--green-soft);border:1px solid var(--green);border-radius:6px;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:7px;margin-top:12px;padding:9px 10px;display:grid}.combat-patrol-restriction-note>span{flex-direction:column;display:flex}.combat-patrol-restriction-note strong{font-size:11px}.combat-patrol-restriction-note small{color:var(--ink-soft);font-size:9px;line-height:1.4}.battle-unit-section,.battle-stratagem-section{min-width:0}.battle-roster-reference-summary{background:var(--surface-subtle);border:1px solid var(--border);border-bottom:0;border-radius:6px 6px 0 0;justify-content:space-between;align-items:center;gap:10px;min-height:44px;padding:7px 10px;display:flex}.battle-roster-reference-summary>div{min-width:0}.battle-roster-reference-summary h2{text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:14px;overflow:hidden}.battle-roster-reference-summary p{text-align:right;flex-direction:column;flex:none;align-items:flex-end;gap:1px;min-width:0;margin:0 0 0 auto;display:flex}.battle-roster-reference-summary p strong{color:var(--green-dark);white-space:nowrap;font-size:11px}.battle-roster-reference-summary p span{color:var(--muted);white-space:nowrap;font-size:8px}.battle-army-reference:not(.battle-army-reference-headed) .battle-roster-reference-summary p{text-align:left;flex-direction:row;justify-content:space-between;align-items:baseline;width:100%}.battle-unit-section>header,.battle-stratagem-section>header{justify-content:space-between;align-items:center;gap:12px;min-height:50px;margin-bottom:8px;display:flex}.battle-unit-section>header>strong,.battle-stratagem-section>header>strong{color:var(--green-dark);white-space:nowrap;font-size:13px}.configured-game-unit-list{border-radius:0 0 6px 6px;overflow:visible}.battle-formation-group{border-bottom:1px solid var(--border-strong);box-shadow:inset 3px 0 0 var(--green)}.battle-formation-group:last-child{border-bottom:0}.battle-formation-group>header{min-height:46px;color:var(--green-dark);background:var(--green-soft);border-bottom:1px solid var(--border);grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 10px;display:grid}.battle-formation-group>header>span{flex-direction:column;gap:1px;min-width:0;display:flex}.battle-formation-group>header>span:last-child{text-align:right;align-items:flex-end}.battle-formation-group>header strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.battle-formation-group>header small{color:var(--muted);text-transform:uppercase;white-space:nowrap;font-size:8px;font-weight:800}.battle-formation-members .game-unit-card:last-child{border-bottom:0}.game-unit-card{border-bottom:1px solid var(--border);overflow:hidden}.game-unit-card:last-child,.game-unit-card>.game-unit-row{border-bottom:0}.game-unit-card.destroyed{background:var(--surface-subtle);opacity:.65}.game-unit-card.destroyed .game-unit-expand strong{text-decoration:line-through}.game-unit-card .game-unit-expand{min-width:0;min-height:48px;color:var(--ink);text-align:left;grid-column:2/-1;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:10px;display:grid}.game-unit-expand>span{flex-direction:column;gap:2px;min-width:0;display:flex}.game-unit-expand>span strong,.game-unit-expand>span small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.game-unit-expand>span strong{font-size:13px}.game-unit-expand>span small{color:var(--muted);font-size:10px}.game-unit-expand>b{color:var(--green-dark);white-space:nowrap;font-size:12px}.game-unit-expand>svg{color:var(--muted);transition:transform .15s}.game-unit-card.expanded .game-unit-expand>svg{transform:rotate(180deg)}.game-unit-details{background:var(--surface-subtle);border-top:1px solid var(--border);min-width:0;padding:0 11px 12px 55px}.configured-unit-tags{flex-wrap:wrap;gap:5px;padding:9px 0;display:flex}.configured-unit-tags:empty{display:none}.configured-unit-tags span{color:var(--green-dark);background:var(--green-soft);border:1px solid #1c695133;border-radius:4px;align-items:center;gap:4px;padding:3px 6px;font-size:9px;font-weight:800;display:inline-flex}.battle-characteristic-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:100%;min-width:0;margin:0 0 8px;display:grid}.battle-characteristic-strip>span{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:4px;place-content:center;gap:1px;min-width:0;min-height:39px;display:grid}.battle-characteristic-strip small{color:var(--muted);font-size:7px;font-weight:800}.battle-characteristic-strip strong{color:var(--ink);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.game-weapon-table-wrap{border:1px solid var(--border);border-radius:5px;width:100%;min-width:0;overflow:hidden}.game-weapon-table{table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:11px}.game-weapon-table th{color:#fff;text-align:center;text-transform:uppercase;background:var(--green-dark);border-right:1px solid #ffffff29;height:28px;padding:3px 4px;font-size:8px}.game-weapon-table td{text-align:center;vertical-align:middle;border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-width:0;padding:5px 4px;line-height:1.25}.game-weapon-table tr:last-child td{border-bottom:0}.game-weapon-table th:last-child,.game-weapon-table td:last-child{border-right:0}.game-weapon-table th:first-child,.game-weapon-table td:first-child{width:7%}.game-weapon-table th:nth-child(2),.game-weapon-table td:nth-child(2){text-align:left;width:36%}.game-weapon-table th:nth-child(3),.game-weapon-table td:nth-child(3){width:11%}.game-weapon-table th:nth-child(4),.game-weapon-table td:nth-child(4){width:8%}.game-weapon-table th:nth-child(5),.game-weapon-table td:nth-child(5){width:11%}.game-weapon-table th:nth-child(6),.game-weapon-table td:nth-child(6){width:8%}.game-weapon-table th:nth-child(7),.game-weapon-table td:nth-child(7){width:10%}.game-weapon-table th:nth-child(8),.game-weapon-table td:nth-child(8){width:9%}.game-weapon-table td strong,.game-weapon-table td small{overflow-wrap:anywhere;display:block}.game-weapon-table td small{color:var(--green);margin-top:2px;font-size:8px;line-height:1.2}.game-weapon-table .weapon-keywords{gap:2px 4px;margin-top:2px}.game-weapon-table .weapon-keywords button{color:var(--green);font-size:8px}.configured-wargear-list{align-items:baseline;gap:7px;padding:9px 1px 0;font-size:10px;display:flex}.configured-wargear-list strong{color:var(--ink-soft);flex:none}.configured-wargear-list span{color:var(--muted);line-height:1.4}.game-unit-reference-actions{gap:6px;margin-top:9px;display:flex}.game-unit-reference-button{min-width:0;min-height:36px;color:var(--green-dark);flex:1;justify-content:flex-start;gap:7px;padding-inline:10px;font-size:11px}.game-unit-reference-button b{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:10px}.game-unit-reference-button>svg:last-child{color:var(--muted);margin-left:auto;transform:rotate(-90deg)}.game-unit-reference-button b+svg{margin-left:0}.unit-abilities-dialog{width:min(620px,100%)}.unit-abilities-title{min-width:0;color:var(--green);align-items:center;gap:10px;display:flex}.unit-abilities-title>div{min-width:0}.unit-abilities-title .panel-eyebrow{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.unit-abilities-title h2{color:var(--ink);font-size:18px}.unit-abilities-dialog-content{min-height:120px;overflow-y:auto}.unit-rule-group>h3,.battle-datasheet-section>h3{color:var(--green-dark);text-transform:uppercase;background:var(--surface-subtle);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:9px 16px 7px;font-size:10px}.unit-rule-group:first-child>h3,.battle-datasheet-section:first-child>h3{border-top:0}.unit-rule-reference>span{color:var(--muted);text-transform:uppercase;padding:9px 16px 0;font-size:8px;font-weight:800;display:block}.unit-rule-reference .ability-list article{padding-top:4px}.unit-abilities-dialog .ability-list{border:0;border-radius:0}.unit-abilities-dialog .ability-list article{padding:12px 16px}.drone-rule-reference>.game-weapon-table-wrap{width:calc(100% - 32px);margin:-2px 16px 12px}.battle-profile-list{padding:12px 16px}.battle-profile-list article>strong{margin-bottom:6px;font-size:11px;display:block}.battle-profile-list .battle-characteristic-strip{margin:0}.battle-datasheet-section>ul,.battle-datasheet-section>p,.battle-wargear-option{margin:0;padding:12px 16px}.battle-datasheet-section>ul,.battle-wargear-option ul{color:var(--ink-soft);gap:6px;padding-left:34px;font-size:11px;line-height:1.4;display:grid}.battle-datasheet-section>p,.battle-wargear-option p{color:var(--ink-soft);font-size:11px;line-height:1.45}.battle-wargear-option{border-bottom:1px solid var(--border)}.battle-wargear-option:last-child{border-bottom:0}.battle-wargear-option p{margin:0;font-weight:700}.battle-wargear-option ul{margin:8px 0 0;padding:0 0 0 18px}.battle-stratagem-section>header .game-stepper{flex:none}.battle-stratagem-group{gap:7px;margin-bottom:14px;display:grid}.battle-stratagem-group.core{border-top:1px solid var(--border);padding-top:12px}.battle-stratagem-group-heading{justify-content:space-between;align-items:end;gap:10px;min-width:0;display:flex}.battle-stratagem-group-heading>div{min-width:0}.battle-stratagem-group-heading span,.battle-stratagem-group-heading small{color:var(--muted);text-transform:uppercase;font-size:8px;font-weight:800}.battle-stratagem-group-heading h3{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.battle-stratagem-group-heading small{flex:none}.battle-stratagem-group-actions{flex:none;align-items:center;gap:6px;display:flex}.battle-stratagem-empty,.battle-stratagem-none{color:var(--muted);background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;align-items:center;gap:8px;margin:0 0 14px;padding:10px;font-size:10px;line-height:1.4;display:flex}.battle-stratagem-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.battle-stratagem-card{background:var(--surface);border:1px solid var(--border);border-radius:6px;flex-direction:column;min-width:0;min-height:148px;padding:8px;display:flex}.battle-stratagem-summary{min-width:0;color:inherit;text-align:left;background:0 0;border:0;flex-direction:column;flex:1;padding:0;display:flex}.battle-stratagem-summary>header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.battle-stratagem-summary>header span{color:var(--muted);text-transform:uppercase;font-size:8px;font-weight:800;line-height:1.25;display:block}.battle-stratagem-card h3{margin-top:2px;font-size:13px;line-height:1.2}.battle-stratagem-summary>header>b{color:#fff;background:var(--green-dark);border-radius:4px;flex:none;padding:4px 6px;font-size:10px}.battle-stratagem-summary p{color:var(--ink-soft);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:6px 0 0;font-size:10px;line-height:1.35;display:-webkit-box;overflow:hidden}.battle-stratagem-summary>small{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:5px;font-size:8px;line-height:1.3;display:-webkit-box;overflow:hidden}.battle-stratagem-use{width:100%;min-height:30px;margin-top:7px;padding:4px 7px;font-size:9px}.battle-stratagem-dialog{width:min(600px,100%)}.battle-stratagem-dialog-content{gap:0;min-height:0;display:grid;position:relative;overflow-y:auto}.battle-stratagem-dialog-content>section{border-bottom:1px solid var(--border);padding:13px 16px}.battle-stratagem-dialog-content>section:last-child{border-bottom:0}.battle-stratagem-dialog-content span{color:var(--green-dark);text-transform:uppercase;margin-bottom:4px;font-size:9px;font-weight:850;display:block}.battle-stratagem-dialog-content p{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.5}.battle-stratagem-cost{z-index:1;color:#fff;background:var(--green-dark);border-radius:4px;padding:5px 7px;font-size:11px;position:absolute;top:10px;right:12px}@media (width<=720px){.battle-scoreboard{grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);gap:4px;margin-top:10px;padding:0 10px}.battle-cp-dock{width:calc(100% - 20px);margin-top:6px}.battle-cp-dock>div{gap:5px;padding:5px 6px}.battle-cp-dock>div>span strong{font-size:9px}.battle-player-score{gap:1px 5px;min-height:82px;padding:9px}.battle-player-score.selected{box-shadow:inset 3px 0 0 var(--green)}.battle-player-score>strong{font-size:13px}.battle-player-score>small,.battle-player-score>em{font-size:8px}.battle-player-score>b{font-size:22px}.battle-player-score>b span{text-align:right;font-size:8px;display:block}.battle-versus{font-size:8px}.battle-session-content{gap:9px;padding-top:10px}.battle-round-tabs button{gap:2px;min-height:41px;font-size:11px}.battle-round-tabs button span{display:none}.battle-mission-grid,.battle-fixed-grid{grid-template-columns:1fr;gap:9px;padding:11px}.battle-stage-heading{padding-inline:11px}.battle-disposition-grid,.battle-player-options-grid,.combat-patrol-match-summary,.combat-patrol-reference-grid,.combat-patrol-upgrade-reference>div{grid-template-columns:1fr}.combat-patrol-match-summary>article,.combat-patrol-reference-grid article,.combat-patrol-upgrade-reference article{border-right:0;border-bottom:1px solid var(--border)}.combat-patrol-match-summary>article:last-child,.combat-patrol-reference-grid article:last-child,.combat-patrol-upgrade-reference article:last-child{border-bottom:0}.battle-disposition-status,.battle-player-options{border-right:0;border-bottom:1px solid var(--border);padding-inline:11px}.battle-disposition-status:last-child,.battle-player-options:last-child{border-bottom:0}.battle-disposition-status{min-height:102px}.battle-primary-matchup{padding-inline:11px}.battle-primary-matchup strong{font-size:12px}.battle-deployment-setup{padding-inline:11px}.battle-deployment-map{grid-template-columns:minmax(0,1fr) auto;gap:8px}.battle-deployment-map-preview{grid-area:2/1/auto/-1;width:min(270px,100%)}.battle-deployment-map-preview.event-terrain{width:min(190px,100%)}.battle-map-legend{flex-direction:row}.battle-deployment-result{grid-template-columns:24px minmax(0,1fr) auto}.battle-tactical-draw,.battle-secondary-redraw{padding-inline:8px}.battle-secondary-redraw{flex-direction:column;align-items:stretch}.battle-secondary-redraw>div:last-child{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.battle-fixed-grid{padding-top:0}.battle-mission-footer{flex-direction:column;align-items:stretch;gap:8px;padding:10px 11px}.battle-mission-footer>span{text-align:center}.battle-mission-footer .button{width:100%}.battle-score-line{grid-template-columns:minmax(0,1fr) 124px;gap:8px;padding-inline:8px}.battle-secondary-mission-button{flex-direction:column;align-items:flex-start;gap:2px}.battle-secondary-dialog{max-height:calc(100dvh - 16px)}.vp-control{grid-template-columns:31px minmax(0,1fr) 31px;width:124px}.vp-control .icon-button{width:31px;min-width:31px}.battle-round-footer{align-items:stretch}.battle-round-footer .button{width:100%}.battle-final-grid{grid-template-columns:1fr;padding:11px}.battle-finish-button{width:calc(100% - 22px);margin:0 11px}.battle-reference-tabs{width:100%}.battle-reference-toolbar{grid-template-columns:minmax(0,1fr) 78px;width:100%}.battle-rules-button{padding-inline:8px}.battle-notes-panel textarea{resize:none;min-height:max(260px,42dvh)}.game-unit-details{padding:0 7px 10px}.game-weapon-table{font-size:10px}.game-weapon-table th{padding-inline:2px;font-size:7px}.game-weapon-table td{padding:4px 2px}.game-weapon-table td small,.game-weapon-table .weapon-keywords button{font-size:7px}.battle-stratagem-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.battle-stratagem-card{min-height:144px;padding:7px}.battle-stratagem-card h3{font-size:12px}.battle-stratagem-summary>header{gap:5px}.battle-stratagem-summary>header>b{padding:3px 4px;font-size:8px}.battle-stratagem-summary p{font-size:9px}.battle-stratagem-use{padding-inline:4px;font-size:8px}.rules-reference-backdrop{align-items:start}.rules-reference-dialog{max-height:calc(var(--rules-viewport-height,100dvh) - 16px)}.rules-reference-list:not(.state-only){min-height:0}.rules-reference-list.state-only,.rules-reference-list.state-only .rules-reference-state{min-height:72px}}@media (width<=430px){.battle-panel-heading{padding-inline:11px}.battle-panel-heading>small{max-width:116px;font-size:8px}.battle-score-line{min-height:64px}.battle-deployment-result{grid-template-columns:22px minmax(0,1fr)}.battle-deployment-result .button{grid-column:1/-1;width:100%}.battle-role-choice button{padding-inline:8px}.battle-primary-matchup{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);gap:5px}.battle-fixed-player-options{grid-template-columns:1fr}.game-unit-card .game-unit-expand{gap:6px}.battle-reference-tabs button{gap:4px;font-size:10px}.game-weapon-table{font-size:9px}.game-weapon-table th:first-child,.game-weapon-table td:first-child{width:8%}.game-weapon-table th:nth-child(2),.game-weapon-table td:nth-child(2){width:34%}.game-weapon-table th:nth-child(3),.game-weapon-table td:nth-child(3),.game-weapon-table th:nth-child(5),.game-weapon-table td:nth-child(5){width:12%}}@media (width>=800px) and (orientation:landscape){.battle-reference-units .battle-reference-toolbar,.battle-reference-stratagems .battle-reference-toolbar{grid-template-columns:minmax(0,1fr) auto;width:100%}.battle-army-layout-toggle{width:220px;display:grid}.reference-layout-split.battle-reference-units .battle-roster-tabs,.reference-layout-split.battle-reference-stratagems .battle-roster-tabs,.reference-layout-split.battle-reference-units .battle-reference-single{display:none}.reference-layout-split.battle-reference-units .battle-reference-dual{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px;display:grid}.reference-layout-split.battle-reference-stratagems .battle-stratagem-single{display:none}.reference-layout-split.battle-reference-stratagems .battle-stratagem-dual{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px;display:grid}.battle-reference-dual .battle-army-reference,.battle-stratagem-dual>.battle-stratagem-section{overscroll-behavior:contain;scrollbar-gutter:stable;max-height:min(68dvh,720px);overflow-y:auto}.battle-reference-dual .battle-roster-reference-summary{z-index:2;position:sticky;top:0}.battle-stratagem-dual>.battle-stratagem-section>header{z-index:2;background:var(--surface-subtle);border:1px solid var(--border);border-radius:6px;min-height:44px;margin-bottom:8px;padding:7px 10px;position:sticky;top:0}.battle-stratagem-dual .battle-stratagem-grid{grid-template-columns:1fr}}@media (width>=1280px) and (orientation:landscape){.battle-stratagem-dual .battle-stratagem-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.readiness-backdrop{place-items:stretch end;padding:0}.readiness-panel{border-block:0;border-right:0;border-radius:0;width:min(680px,100%);height:100dvh;max-height:100dvh}.readiness-header{min-height:74px}.readiness-title,.readiness-header-actions,.readiness-status-badge,.readiness-section-heading,.readiness-pass-row,.readiness-data-note,.readiness-issue-actions{align-items:center;display:flex}.readiness-title{gap:11px;min-width:0}.readiness-title>svg{color:var(--green);flex:none}.readiness-header-actions{flex:none;gap:2px}.readiness-body{padding:0}.readiness-overview{background:var(--green-soft);border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px 20px;display:grid}.readiness-overview.readiness-review{background:var(--amber-soft)}.readiness-overview.readiness-attention{background:var(--red-soft)}.readiness-overview>div:first-child{flex-direction:column;gap:3px;min-width:0;display:flex}.readiness-overview>div:first-child>strong{font-size:21px}.readiness-overview>div:first-child>small{color:var(--ink-soft);font-size:12px}.readiness-status-badge{min-height:42px;color:var(--green-dark);background:var(--surface);border:1px solid #1d5b4270;border-radius:5px;flex:none;gap:8px;padding:6px 10px}button.readiness-status-badge:hover{background:var(--surface-subtle)}.readiness-status-badge.readiness-review{color:#825411;border-color:#ad74248a}.readiness-status-badge.readiness-attention{color:var(--red);border-color:#a33f398a}.readiness-status-badge>span{flex-direction:column;align-items:flex-start;line-height:1.15;display:flex}.readiness-status-badge strong{font-size:12px}.readiness-status-badge small{color:var(--muted);margin-top:2px;font-size:10px}.readiness-status-badge.compact{min-height:30px;padding:4px 7px}.readiness-status-badge.compact strong{font-size:11px}.readiness-facts{border-bottom:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.readiness-facts>div{border-right:1px solid var(--border);min-width:0;padding:11px 14px}.readiness-facts>div:last-child{border-right:0}.readiness-facts dt{color:var(--muted);text-transform:uppercase;font-size:9px;font-weight:800}.readiness-facts dd{text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-size:12px;font-weight:800;overflow:hidden}.readiness-sections{border-bottom:1px solid var(--border)}.readiness-section{border-top:1px solid var(--border)}.readiness-section:first-child{border-top:0}.readiness-section-heading{text-align:left;background:var(--surface);gap:11px;width:100%;min-height:66px;padding:10px 16px}.readiness-section-heading:hover{background:var(--surface-subtle)}.readiness-section-heading>svg:first-child{color:var(--green);flex:none}.readiness-section-error .readiness-section-heading>svg:first-child{color:var(--red)}.readiness-section-review .readiness-section-heading>svg:first-child{color:var(--amber)}.readiness-section-info .readiness-section-heading>svg:first-child{color:var(--steel)}.readiness-section-heading>span{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.readiness-section-heading strong{font-size:14px}.readiness-section-heading small{color:var(--muted);font-size:11px;line-height:1.35}.readiness-section-heading>b{min-width:34px;color:var(--muted);text-align:right;font-size:11px}.readiness-section-heading>svg:last-child{color:var(--muted);flex:none;transition:transform .15s}.readiness-section-heading>svg:last-child.expanded{transform:rotate(180deg)}.readiness-section-content{background:var(--surface-subtle);border-top:1px solid var(--border)}.readiness-pass-row{color:var(--green-dark);gap:8px;padding:13px 18px;font-size:12px}.readiness-issue{border-bottom:1px solid var(--border);grid-template-columns:28px minmax(0,1fr);gap:8px;padding:14px 16px;display:grid}.readiness-issue:last-child{border-bottom:0}.readiness-issue-marker{color:var(--steel);padding-top:2px}.readiness-issue-error .readiness-issue-marker{color:var(--red)}.readiness-issue-warning .readiness-issue-marker{color:var(--amber)}.readiness-issue-copy{flex-direction:column;align-items:flex-start;gap:5px;min-width:0;display:flex}.readiness-issue-copy>strong{font-size:13px}.readiness-issue-copy p{color:var(--ink-soft);font-size:12px;line-height:1.45}.readiness-issue-copy>small{color:var(--muted);font-size:10px}.readiness-issue-actions{flex-wrap:wrap;gap:10px;margin-top:3px}.readiness-issue-actions .button{min-height:32px;padding-inline:10px;font-size:11px}.readiness-issue-actions .text-button{min-height:32px;font-size:11px}.readiness-data-note{color:var(--ink-soft);background:var(--surface-subtle);border:1px solid var(--border);border-radius:5px;align-items:flex-start;gap:10px;margin:14px 16px 20px;padding:12px}.readiness-data-note>svg{color:var(--steel);flex:none;margin-top:1px}.readiness-data-note>span{flex-direction:column;gap:2px;display:flex}.readiness-data-note strong{font-size:12px}.readiness-data-note small{color:var(--muted);font-size:11px;line-height:1.4}.readiness-footer{justify-content:space-between}.readiness-footer>span{color:var(--muted);font-size:10px}.roster-readiness-total{flex-direction:row;align-items:center;gap:10px;display:flex}.roster-total>.roster-readiness-total{flex-direction:row}.roster-readiness-total .readiness-status-badge{min-width:132px}.setup-readiness-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-top:9px;padding-top:9px;display:flex}.setup-readiness-row>span:first-child{color:var(--muted);font-size:11px;font-weight:700}.readiness-override-modal{width:min(500px,100%)}.readiness-override-list{flex-direction:column;gap:8px;display:flex}.readiness-override-list>div{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.readiness-override-list>div:last-child{border-bottom:0}.readiness-override-list span{flex-direction:column;min-width:0;display:flex}.readiness-override-list small{color:var(--muted)}@media (width<=720px){.readiness-backdrop{padding:0}.readiness-panel{border:0;border-radius:0;height:100dvh;max-height:100dvh}.readiness-overview{padding:14px}.readiness-overview>div:first-child>strong{font-size:18px}.readiness-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.readiness-facts>div:nth-child(2){border-right:0}.readiness-facts>div:nth-child(n+3){border-top:1px solid var(--border)}.readiness-section-heading{min-height:62px;padding-inline:13px}.readiness-section-heading small{display:none}.readiness-issue{padding-inline:13px}}@media (width<=430px){.readiness-overview{grid-template-columns:minmax(0,1fr)}.readiness-overview .readiness-status-badge{justify-content:flex-start;width:100%}.roster-total{min-height:72px;padding-inline:11px}.roster-readiness-total{min-width:0}.roster-readiness-total .readiness-status-badge{min-width:0;padding-inline:8px}.roster-readiness-total .readiness-status-badge small{display:none}.readiness-footer>span{max-width:190px}}@media (width<=340px){.roster-readiness-total .readiness-status-badge strong{font-size:10px}.readiness-header{padding-inline:10px}}
