@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:-webkit-sticky;position:sticky}.container{width:100%}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.items-center{align-items:center}.justify-between{justify-content:space-between}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}body{margin:0;font-family:system-ui,sans-serif}#root{min-height:100vh}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{--color-primary: #aee6ff;--color-secondary: #244488;--color-accent: #1e90ff;--color-danger: #ff4444;--color-success: #36e36b;--color-warning: #ff9900;--hp-bar-player1: #1d4ed8;--hp-bar-player2: #cc2f2f;--hp-bar-lost: #444444;--hp-bar-damage-preview: #444444;--icon-move-color: #00cc66;--icon-move-bg-color: #00cc66;--icon-move-bg-rgb: 0, 204, 102;--icon-move-stroke: #ffffff;--icon-move-stroke-thickness: 3;--icon-move-size: 1.3;--icon-move-circle-size: .75;--icon-shoot-color: #2563eb;--icon-shoot-bg-color: #2563eb;--icon-shoot-bg-rgb: 37, 99, 235;--icon-shoot-stroke: #ffffff;--icon-shoot-stroke-thickness: 3;--icon-shoot-size: 1.5;--icon-shoot-square-size: .75;--icon-charge-color: #9966cc;--icon-charge-bg-color: #9966cc;--icon-charge-bg-rgb: 153, 102, 204;--icon-charge-stroke: #ffffff;--icon-charge-stroke-thickness: 3;--icon-charge-size: 1.5;--icon-charge-square-size: .75;--icon-charge-target-stroke: #ffffff;--icon-charge-target-stroke-thickness: 3;--icon-charge-target-size: 1.6;--icon-fight-color: #ff4444;--icon-fight-bg-color: #ff4444;--icon-fight-bg-rgb: 255, 68, 68;--icon-fight-stroke: #ffffff;--icon-fight-stroke-thickness: 3;--icon-fight-size: 1.5;--icon-fight-square-size: .75;--icon-advance-color: #ff8c00;--icon-advance-bg-color: #ff8c00;--icon-advance-bg-rgb: 255, 140, 0;--icon-advance-stroke: #ffffff;--icon-advance-stroke-thickness: 3;--icon-advance-size: 1.5;--icon-advance-square-size: .75;--icon-target-color: #ea580c;--icon-target-bg-color: #ea580c;--icon-target-bg-rgb: 234, 88, 12;--icon-target-stroke: #ffffff;--icon-target-stroke-thickness: 3;--icon-target-size: 1.8;--icon-target-square-size: .75;--icon-explosion-color: #ff6600;--icon-explosion-stroke: #ffffff;--icon-explosion-stroke-thickness: 3;--icon-explosion-size: 1.6;--icon-square-bg-alpha: 1;--icon-square-bg-alpha-gamelog: .6;--icon-square-border-alpha: 1;--icon-square-border-alpha-gamelog: 1;--icon-square-border-width: 2;--icon-square-border-color: #ffffff;--icon-square-border-radius: 4;--icon-square-icon-scale: .85;--icon-square-standard-size: .75;--bg-primary: #222;--bg-secondary: #444;--bg-tertiary: #002200;--bg-overlay: rgba(0, 0, 0, .8);--text-primary: #ffffff;--text-secondary: #888;--text-accent: var(--color-primary);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 20px;--spacing-2xl: 24px;--spacing-3xl: 32px;--font-family: "Arial", sans-serif;--font-size-sm: 11px;--font-size-md: 14px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-2xl: 32px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 700;--tooltip-bg: rgba(20, 20, 20, .98);--tooltip-border-color: #4caf50;--tooltip-border-width: 2px;--tooltip-border-radius: 6px;--tooltip-text-color: #b6f7c9;--tooltip-font-family: "Arial", sans-serif;--tooltip-font-size: 11px;--tooltip-font-weight: 400;--tooltip-line-height: 1.4;--tooltip-padding-y: 6px;--tooltip-padding-x: 8px;--tooltip-max-width: 600px;--tooltip-shadow: 0 8px 22px rgba(0, 0, 0, .45);--tutorial-dialog-bg: var(--tooltip-bg);--tutorial-dialog-border: var(--tooltip-border-width) solid var(--tooltip-border-color);--tutorial-dialog-radius: var(--tooltip-border-radius);--tutorial-dialog-color: var(--tooltip-text-color);--tutorial-dialog-font-family: var(--tooltip-font-family);--tutorial-dialog-font-size: var(--tooltip-font-size);--tutorial-dialog-font-weight: var(--tooltip-font-weight);--tutorial-dialog-line-height: var(--tooltip-line-height);--tutorial-dialog-shadow: var(--tooltip-shadow);--radius-sm: 4px;--radius-md: 7px;--radius-lg: 10px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .12);--shadow-md: 0 4px 6px rgba(0, 0, 0, .16);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .19);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease}*{box-sizing:border-box}body{margin:0;padding:0;font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);line-height:1.5}.app-container{display:flex;width:100vw;height:100vh;background:var(--bg-primary)}.sidebar{flex-shrink:0;width:200px;background:var(--bg-secondary);border-right:1px solid #555;overflow-y:auto}.main-content{flex:1;display:flex;flex-direction:column;min-width:0}.game-header{padding:var(--spacing-2xl) var(--spacing-lg);text-align:center;border-bottom:1px solid #333}.game-header h1{margin:0;color:var(--text-accent);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);letter-spacing:.04em}.game-area{flex:1;display:flex;justify-content:flex-start;align-items:stretch;padding:var(--spacing-lg);min-height:0;gap:var(--spacing-lg);height:100%}.game-board-section{flex-shrink:1;display:flex;flex-direction:column;align-items:center;justify-content:center;height:-webkit-fit-content;height:fit-content;max-width:100%;min-height:0;margin-bottom:var(--spacing-lg)}.game-footer{padding:var(--spacing-lg);border-top:1px solid #333;background:var(--bg-secondary)}.unit-selector{display:flex;flex-direction:column;gap:var(--spacing-sm);background:var(--bg-secondary);border:1px solid #555;border-radius:var(--radius-lg);padding:var(--spacing-md);margin:var(--spacing-md);color:var(--text-primary);min-width:160px}.unit-selector__title{margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-bold);color:var(--text-accent)}.unit-selector__button{background:var(--bg-secondary);color:var(--text-primary);border:1px solid #666;border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);outline:none}.unit-selector__button:hover:not(:disabled){background:#555;border-color:var(--color-accent)}.unit-selector__button:disabled{opacity:.5;cursor:not-allowed}.unit-selector__button--selected{background:var(--color-accent);color:var(--text-primary);font-weight:var(--font-weight-bold);outline:2px solid var(--text-accent)}.unit-selector__button-name{margin-right:var(--spacing-xs);font-weight:var(--font-weight-bold)}.unit-selector__button-type{font-size:var(--font-size-sm);opacity:.7}.unit-status-tables{display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%;max-width:900px;margin-left:var(--spacing-lg);margin-top:60px;height:auto;max-height:none;overflow-y:visible;padding-right:var(--spacing-xs)}@media(max-width:900px){.unit-status-tables{margin-left:0;max-width:100%;margin-top:20px}}.unit-status-table-container{background:var(--bg-secondary);border:1px solid #555;border-radius:var(--radius-lg);padding:var(--spacing-sm);color:var(--text-primary)}.replay-file-selector-container{background:var(--bg-secondary);border:1px solid #555;border-radius:var(--radius-lg);padding:var(--spacing-sm);margin-bottom:var(--spacing-sm);color:var(--text-primary)}.replay-playback-controls-container{background:var(--bg-secondary);border:1px solid #555;border-radius:var(--radius-lg);padding:var(--spacing-sm);margin-bottom:var(--spacing-sm);color:var(--text-primary);display:flex;flex-direction:column;gap:var(--spacing-sm)}.replay-controls-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.replay-step-buttons,.replay-nav-buttons{display:flex;align-items:center;gap:4px}.replay-speed-controls{display:flex;align-items:center;gap:var(--spacing-sm)}.replay-speed-label{font-size:12px;color:var(--text-secondary)}.replay-action-counter{font-size:14px;color:var(--text-secondary);white-space:nowrap}.replay-btn{padding:2px 7px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;border:none;transition:background-color var(--transition-fast);color:#fff;display:inline-flex;align-items:center;justify-content:center;line-height:1;height:20px}.replay-btn:disabled{opacity:.5;cursor:not-allowed}.replay-btn--nav{background:#fff;color:#1f2937;font-size:13px;padding:2px 7px}.replay-btn--nav:hover:not(:disabled){background:#e5e7eb}.replay-btn--play{padding:2px 9px;background:#16a34a;font-weight:var(--font-weight-bold);font-size:13px}.replay-btn--play:hover{background:#22c55e}.replay-btn--pause{padding:2px 9px;background:#ca8a04;font-weight:var(--font-weight-bold);font-size:13px}.board-column-overlay-anchor{position:relative}.test-start-overlay{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:#00000061;z-index:700}.test-start-modal{padding:20px 24px;border-radius:12px;border:1px solid #f59e0b;background:#111827f2;box-shadow:0 18px 40px #00000073}.test-start-bar__button{padding:12px 28px;border-radius:8px;border:1px solid #f59e0b;background:#fcd34d;color:#78350f;font-size:24px;font-weight:800;cursor:pointer;line-height:1}.test-start-bar__button:hover{background:#fde68a}.replay-btn--pause:hover{background:#eab308}.replay-btn--stop{background:#dc2626;padding:2px 7px;font-size:13px}.replay-btn--stop:hover{background:#ef4444}.replay-btn--speed{padding:2px 7px;font-size:13px;background:#fff;color:#1f2937}.replay-btn--speed:hover{background:#e5e7eb}.replay-btn--speed.active{background:#2563eb;color:#fff}.replay-icon{display:inline-block;font-size:15px}.replay-icon--start,.replay-icon--end{position:relative;top:-1px}.replay-icon--prev{position:relative;left:1px}.replay-icon--next{position:relative;left:-1px}.replay-progress-bar{width:100%;height:6px;background:#374151;border-radius:var(--radius-sm);overflow:hidden}.replay-progress-fill{height:100%;background:#2563eb;border-radius:var(--radius-sm);transition:width .2s ease}.replay-selector-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.replay-browse-group{display:flex;align-items:center;gap:var(--spacing-md)}.replay-file-select{font-size:var(--font-size-sm);cursor:pointer;background-color:#d4a843;color:#1f2937;border-radius:6px;border:1px solid #b8942f;box-shadow:0 2px 4px #0000004d,inset 0 1px #ffffff4d;transition:all .15s ease;padding:4px 12px;min-width:250px}.replay-file-select:hover{background-color:#e5b94d}.replay-file-select:focus{outline:none;border-color:#9a7a25;box-shadow:0 2px 4px #0000004d,inset 0 1px #ffffff4d,0 0 0 2px #d4a8434d}.replay-browse-btn{font-size:var(--font-size-sm);cursor:pointer;background-color:#d4a843;color:#1f2937;border-radius:6px;border:1px solid #b8942f;box-shadow:0 2px 4px #0000004d,inset 0 1px #ffffff4d;transition:all .15s ease;padding:1px 24px}.replay-browse-btn:hover{background-color:#e5b94d;box-shadow:0 3px 6px #0006,inset 0 1px #fff6}.replay-browse-btn:active{box-shadow:inset 0 2px 4px #0000004d}.replay-file-status{font-size:var(--font-size-sm);color:var(--text-secondary);margin-left:var(--spacing-md)}.replay-episode-select{padding:4px 8px;background:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-sm);min-width:120px;border:none;color:#1f2937}.replay-error{background:#7f1d1d;border:1px solid #b91c1c;border-radius:var(--radius-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.replay-empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:#fff;background:#111827}.replay-empty-state__content{text-align:center;padding:var(--spacing-xl)}.replay-empty-state__title{font-size:1.5rem;font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-md)}.replay-empty-state__subtitle{color:#9ca3af;margin-bottom:var(--spacing-sm)}.replay-empty-state__info{font-size:var(--font-size-xs);color:#6b7280}.unit-status-table-empty{text-align:center;color:var(--text-secondary);font-style:italic;padding:var(--spacing-lg)}.unit-status-table-wrapper{border-radius:var(--radius-md);border:1px solid #444}.unit-status-table{width:100%;border-collapse:collapse;font-size:12px;background:var(--bg-primary);min-width:800px;table-layout:fixed}.unit-status-table colgroup col:nth-child(1){width:6%}.unit-status-table colgroup col:nth-child(2){width:6%}.unit-status-table colgroup col:nth-child(3){width:18%}.unit-status-table colgroup col:nth-child(4){width:13.33%}.unit-status-table colgroup col:nth-child(5){width:13.33%}.unit-status-table colgroup col:nth-child(6){width:13.33%}.unit-status-table colgroup col:nth-child(7){width:13.33%}.unit-status-table colgroup col:nth-child(8){width:13.33%}.unit-status-table colgroup col:nth-child(9){width:13.33%}.unit-status-table colgroup col:nth-child(10){width:10%}.unit-status-table .unit-status-cell:nth-child(3),.unit-status-table .unit-status-cell--type{white-space:normal;overflow:visible;text-overflow:clip}.turn-phase-tracker-spacing{margin-bottom:var(--spacing-lg)}.turn-phase-tracker-right{width:100%;background:var(--bg-secondary);border:1px solid #555;border-radius:var(--radius-lg);margin-bottom:var(--spacing-sm)}.turn-phase-tracker-right .flex{flex-direction:row}.turn-phase-tracker-right>div{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px}.scoring-panel{width:100%;background:transparent;border:none;border-radius:0;margin:0 0 8px;padding:2px 0}.scoring-panel__bar{width:100%;height:28px;display:flex;align-items:center;overflow:hidden;position:relative;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:transparent}.scoring-panel__segment{height:100%}.scoring-panel__segment--p1{background:var(--hp-bar-player1)}.scoring-panel__segment--p2{background:var(--hp-bar-player2)}.scoring-panel__labels{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 8px;pointer-events:none}.scoring-panel__divider{position:absolute;left:50%;top:3px;bottom:3px;width:2px;background:#fff;transform:translate(-50%);opacity:.9;pointer-events:none}.scoring-panel__score{color:#fff;font-size:12px;font-weight:var(--font-weight-bold)}.deployment-panel{background:var(--bg-secondary);border:1px solid #555;border-radius:var(--radius-lg);padding:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.deployment-panel--dual{display:flex;flex-direction:column;gap:8px}.deployment-panel__roster{border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:6px;background:#0003}.deployment-panel__player-banner{padding:4px 8px;text-align:left;font-weight:700;font-size:16px;border:1px solid rgba(0,0,0,.2);border-radius:6px;margin-bottom:8px;color:#fff}.deployment-panel__player-banner--player1{background-color:var(--hp-bar-player1)}.deployment-panel__player-banner--player2{background-color:var(--hp-bar-player2)}.deployment-panel__toggle{background:#00000038;border:1px solid rgba(0,0,0,.35);color:#fff;border-radius:4px;min-width:24px;min-height:24px;cursor:pointer;font-size:16px;line-height:1}.deployment-panel__toggle:hover{background:#00000059}.deployment-panel__change-roster{background:#1e3a8a;color:#fff;border:1px solid #1d4ed8;border-radius:4px;padding:4px 10px;font-size:12px;font-weight:700;text-transform:lowercase;cursor:pointer}.deployment-panel__change-roster:hover{background:#1d4ed8}.deployment-panel__change-roster--player2{background:#991b1b;border-color:#dc2626}.deployment-panel__change-roster--player2:hover{background:#b91c1c}.deployment-panel__picker-backdrop{position:fixed;inset:0;background:#000000ad;z-index:30000;display:flex;align-items:center;justify-content:center}.rule-choice-overlay{position:fixed;inset:0;z-index:30000;pointer-events:none}.deployment-panel__picker-dismiss{position:absolute;inset:0;border:none;background:transparent;cursor:default}.deployment-panel__picker{width:min(760px,90vw);background:#111827;border:1px solid #374151;border-radius:8px;padding:12px;color:#e5e7eb;position:relative;z-index:1}.deployment-panel__picker--draggable{position:fixed;width:min(860px,94vw);margin:0;pointer-events:auto}.deployment-panel__picker--rule-choice{width:min(900px,95vw)}.deployment-panel__picker-title{font-size:15px;font-weight:700;margin-bottom:10px}.deployment-panel__picker-title--draggable{width:100%;border:none;background:transparent;color:inherit;text-align:left;padding:0;cursor:move;-webkit-user-select:none;user-select:none}.deployment-panel__picker-loading{font-size:13px;color:#d1d5db}.deployment-panel__picker-error{font-size:13px;color:#fca5a5}.deployment-panel__picker-content{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(220px,1fr) minmax(220px,1fr);gap:10px;margin-top:8px}.deployment-panel__picker-content--rule-choice{grid-template-columns:minmax(420px,1.5fr) minmax(280px,1fr);align-items:start}.deployment-panel__picker-factions,.deployment-panel__picker-list{max-height:240px;overflow-y:auto;border:1px solid #374151;border-radius:6px;padding:6px;display:flex;flex-direction:column;gap:6px}.deployment-panel__picker-list--rule-choice{max-height:min(54vh,460px)}.deployment-panel__picker-item{background:#1f2937;border:1px solid #374151;color:#e5e7eb;border-radius:4px;padding:6px 8px;text-align:left;font-size:13px;cursor:pointer}.deployment-panel__picker-item:hover{background:#374151}.deployment-panel__picker-tooltip{border:var(--tooltip-border-width) solid var(--tooltip-border-color);border-radius:var(--tooltip-border-radius);background:var(--tooltip-bg);padding:8px;min-height:72px;font-family:var(--tooltip-font-family);font-size:var(--tooltip-font-size);font-weight:var(--tooltip-font-weight);color:var(--tooltip-text-color);line-height:var(--tooltip-line-height);white-space:pre-wrap;overflow-wrap:break-word;box-shadow:var(--tooltip-shadow)}.deployment-panel__picker-tooltip--rule-choice{min-height:96px;max-height:min(54vh,460px);overflow-y:auto}.deployment-panel__picker-item--active{border-color:#7cbbff;box-shadow:0 0 0 1px #7cbbff66}.rule-choice-group{border:1px solid #334155;border-radius:6px;padding:6px;background:#02061759}.rule-choice-group__row{display:grid;grid-template-columns:minmax(0,42%) minmax(0,58%);gap:10px;align-items:start}.rule-choice-group__unit-col,.rule-choice-group__options-col{display:flex;align-items:flex-start}.rule-choice-group__unit-btn{font-weight:700;width:100%}.rule-choice-group__unit-btn--player1{background:var(--hp-bar-player1);border-color:#1d4ed8;color:#fff}.rule-choice-group__unit-btn--player1:hover{background:#1d4ed8}.rule-choice-group__unit-btn--player2{background:var(--hp-bar-player2);border-color:#dc2626;color:#fff}.rule-choice-group__unit-btn--player2:hover{background:#b91c1c}.rule-choice-group__options{display:flex;flex-direction:column;gap:6px;width:100%}.rule-choice-group__option:disabled{opacity:.55;cursor:not-allowed}.rule-choice-group__option--inactive{opacity:.55;cursor:not-allowed}.deployment-panel__picker-actions{margin-top:12px;display:flex;justify-content:flex-end}.deployment-panel__picker-close{background:#374151;color:#fff;border:1px solid #4b5563;border-radius:4px;padding:5px 10px;font-size:12px;cursor:pointer}.deployment-panel__picker-close:hover{background:#4b5563}.deployment-panel__type-group{border-radius:6px;padding:8px;background:#00000040;display:flex;align-items:center;gap:8px}.deployment-panel__type-group--player1{border:1px solid var(--hp-bar-player1)}.deployment-panel__type-group--player2{border:1px solid var(--hp-bar-player2)}.deployment-panel__type-list{display:flex;flex-direction:column;gap:4px}.deployment-panel__type-label{font-weight:700;font-size:13px;color:#e8f7e8;text-align:left;min-width:50px;flex-shrink:0}.deployment-panel__empty{color:#d0d0d0;font-size:12px;padding:4px 2px}.deployment-panel__type-icons{display:flex;flex:1;flex-wrap:nowrap;gap:6px;align-items:flex-start;justify-content:flex-start;overflow-x:auto}.deployment-panel__unit-icon:focus{outline:none}.deployment-panel__unit-icon:focus-visible{outline:none;box-shadow:0 0 0 2px #ffffffbf}.unit-status-header-group{background:#444;border-bottom:1px solid #666}.unit-status-header-group-cell{padding:2px 4px;text-align:center;font-weight:var(--font-weight-bold);color:var(--text-accent);border-right:1px solid #555;font-size:10px;text-transform:uppercase;letter-spacing:.5px}.unit-status-header-group-cell:last-child{border-right:none}.unit-status-player-row{background:var(--color-accent)}.unit-status-player-header--red{background:#dc2626;border-color:#b91c1c}.unit-status-player-header{background:var(--color-accent);color:#fff;font-weight:var(--font-weight-bold);text-align:center;padding:2px 4px;font-size:13px;border-bottom:2px solid #555;border-radius:6px}.unit-status-header{background:#333;border-bottom:2px solid #555}.unit-status-header-cell{padding:0 1px;text-align:center;font-weight:var(--font-weight-bold);color:var(--text-accent);border-right:1px solid #444;white-space:nowrap;font-size:11px;overflow:hidden;text-overflow:ellipsis}.unit-status-header-cell:last-child{border-right:none}.unit-status-row{border-bottom:1px solid #333;transition:background-color var(--transition-fast)}.unit-status-row:hover{background:#ffffff0d}.unit-status-row--selected{background:#22c55e4d}.unit-status-row--clicked{background:#1e90ff33}.unit-status-row--selected>.unit-status-cell{border-top:2px solid #22c55e;border-bottom:2px solid #22c55e}.unit-status-row--selected>.unit-status-cell:first-child{border-left:2px solid #22c55e}.unit-status-row--selected>.unit-status-cell:last-child{border-right:2px solid #22c55e}.unit-status-row--clicked>.unit-status-cell{border-top:2px solid var(--color-accent);border-bottom:2px solid var(--color-accent)}.unit-status-row--clicked>.unit-status-cell:first-child{border-left:2px solid var(--color-accent)}.unit-status-row--clicked>.unit-status-cell:last-child{border-right:2px solid var(--color-accent)}.unit-status-cell{padding:0 1px;text-align:center;border-right:1px solid #333;white-space:nowrap;vertical-align:middle;overflow:hidden;text-overflow:ellipsis}.unit-status-cell:last-child{border-right:none}.unit-status-cell--number{font-weight:var(--font-weight-bold);color:var(--text-accent)}.unit-status-cell--type{font-weight:var(--font-weight-medium);text-align:left;overflow:visible;text-overflow:clip}.unit-status-cell--stat{font-family:Courier New,monospace;font-weight:var(--font-weight-medium)}.unit-status-hp-container{display:flex;flex-direction:column;gap:2px;align-items:center}.unit-status-hp-text{font-size:11px;font-weight:var(--font-weight-bold);color:var(--text-primary)}.unit-status-hp-bar{width:100%;height:4px;background:#333;border-radius:2px;overflow:hidden;border:1px solid #555}.unit-status-hp-bar-fill{height:100%;transition:width .3s ease,background-color .3s ease;border-radius:1px}.game-status{color:var(--text-primary);line-height:1.6}.game-status__row{margin-bottom:var(--spacing-sm)}.game-status__label{font-weight:var(--font-weight-bold);color:var(--text-primary)}.game-status__value{color:var(--text-accent)}.game-status__value--empty{color:var(--text-secondary);font-style:italic}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;outline:none;min-height:44px}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn--primary{background:var(--color-accent);color:var(--text-primary);border-color:var(--color-accent)}.btn--primary:hover:not(:disabled){background:#0056b3;border-color:#0056b3;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn--secondary{background:var(--bg-secondary);color:var(--text-primary);border-color:#666}.btn--secondary:hover:not(:disabled){background:#555;border-color:var(--color-accent)}.btn--danger{background:var(--color-danger);color:var(--text-primary);border-color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:#c00;border-color:#c00}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.mb-5{margin-bottom:var(--spacing-xl)}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-xs)}.mt-2{margin-top:var(--spacing-sm)}.mt-3{margin-top:var(--spacing-md)}.mt-4{margin-top:var(--spacing-lg)}.mt-5{margin-top:var(--spacing-xl)}@media(max-width:1400px){.unit-status-tables{max-width:800px}.unit-status-table{font-size:12px}.unit-status-header-cell,.unit-status-cell{padding:3px 5px}}@media(max-width:900px){.unit-status-tables{margin-left:0;max-width:100%;margin-top:20px}.unit-status-table-wrapper{overflow-x:scroll}}@media(max-width:768px){.app-container{flex-direction:column}.sidebar{width:100%;height:auto;max-height:200px;border-right:none;border-bottom:1px solid #555}.game-header h1{font-size:var(--font-size-xl)}.game-area{flex-direction:column;padding:var(--spacing-sm)}.unit-status-tables{margin-left:0;width:100%}}@media(max-width:480px){.game-header{padding:var(--spacing-lg) var(--spacing-sm)}.game-header h1{font-size:var(--font-size-lg)}}.loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--text-secondary)}.loading:after{content:"";width:20px;height:20px;margin-left:var(--spacing-sm);border:2px solid var(--text-secondary);border-top-color:var(--color-accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{background:#ff44441a;border:1px solid var(--color-danger);border-radius:var(--radius-md);padding:var(--spacing-lg);color:var(--color-danger);text-align:center}.error__title{font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-sm)}.error__message{margin-bottom:var(--spacing-lg);opacity:.8}.success{background:#36e36b1a;border:1px solid var(--color-success);border-radius:var(--radius-md);padding:var(--spacing-lg);color:var(--color-success);text-align:center}*:focus{outline:2px solid var(--color-accent);outline-offset:2px}button:focus,input:focus,select:focus,textarea:focus{outline:2px solid var(--color-accent);outline-offset:2px}@media(prefers-contrast:high){:root{--color-primary: #ffffff;--color-accent: #0066cc;--bg-primary: #000000;--bg-secondary: #333333;--text-primary: #ffffff}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms;scroll-behavior:auto}}@media print{.app-container{background:#fff;color:#000}.sidebar{display:none}.game-header,.game-footer{border:none;background:transparent}}.game-log{background:var(--bg-secondary);border:1px solid #555;border-radius:var(--radius-lg);padding:var(--spacing-md);color:var(--text-primary);margin-top:var(--spacing-sm);max-height:none;display:flex;flex-direction:column}.game-log__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid #555}.game-log__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--text-accent)}.game-log__count{font-size:var(--font-size-sm);color:var(--text-secondary);background:#333;padding:2px 8px;border-radius:var(--radius-sm)}.game-log__content{flex:1;overflow:hidden}.game-log__empty{text-align:center;color:var(--text-secondary);font-style:italic;padding:var(--spacing-xl)}.game-log__events{overflow-y:auto;padding-right:4px}.game-log-entry{min-height:auto;max-height:none;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box}.game-log__events::-webkit-scrollbar{width:6px}.game-log__events::-webkit-scrollbar-track{background:#333;border-radius:3px}.game-log__events::-webkit-scrollbar-thumb{background:#555;border-radius:3px}.game-log__events::-webkit-scrollbar-thumb:hover{background:#666}.game-log-entry{margin-bottom:1px;padding:1px var(--spacing-sm);border-radius:var(--radius-md);border-left:3px solid #555;background:#ffffff05;transition:background-color var(--transition-fast);min-height:auto}.game-log-entry:hover{background:#ffffff0d}.game-log-entry--objective-control-p1{background:#1d4ed840;border-left-color:var(--hp-bar-player1)}.game-log-entry--objective-control-p2{background:#ff4d4d40;border-left-color:var(--hp-bar-player2)}.game-log-entry--objective-control-neutral{background:#f903;border-left-color:var(--color-warning)}.game-log-entry__single-line{display:flex;align-items:center;gap:var(--spacing-sm);min-height:0;line-height:1.1}.game-log-entry__icon{font-size:14px;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--icon-square-border-radius, 4) px;text-align:center;flex-shrink:0}.game-log-entry__icon--move{background:rgba(var(--icon-move-bg-rgb),var(--icon-square-bg-alpha-gamelog));border:var(--icon-square-border-width) px solid rgba(var(--icon-move-bg-rgb),var(--icon-square-border-alpha-gamelog));border-radius:var(--icon-square-border-radius) px}.game-log-entry__icon--reactive_move,.game-log-entry__icon--rule_choice{background:transparent;border:none;border-radius:0}.game-log-entry__icon--roll_info{background:#1d4ed8;border:1px solid rgba(255,255,255,.35);border-radius:var(--icon-square-border-radius) px;color:#fff;font-weight:700}.game-log-entry__icon--shoot{background:rgba(var(--icon-shoot-bg-rgb),var(--icon-square-bg-alpha-gamelog));border:var(--icon-square-border-width) px solid rgba(var(--icon-shoot-bg-rgb),var(--icon-square-border-alpha-gamelog));border-radius:var(--icon-square-border-radius) px}.game-log-entry__icon--charge,.game-log-entry__icon--charge_impact{background:rgba(var(--icon-charge-bg-rgb),var(--icon-square-bg-alpha-gamelog));border:var(--icon-square-border-width) px solid rgba(var(--icon-charge-bg-rgb),var(--icon-square-border-alpha-gamelog));border-radius:var(--icon-square-border-radius) px}.game-log-entry__icon--charge_fail{background:rgba(153,102,204,calc(var(--icon-square-bg-alpha-gamelog) * .5));border:var(--icon-square-border-width) px solid rgba(153,102,204,calc(var(--icon-square-border-alpha-gamelog) * .5));border-radius:var(--icon-square-border-radius) px}.game-log-entry__icon--combat{background:rgba(var(--icon-fight-bg-rgb),var(--icon-square-bg-alpha-gamelog));border:var(--icon-square-border-width) px solid rgba(var(--icon-fight-bg-rgb),var(--icon-square-border-alpha-gamelog));border-radius:var(--icon-square-border-radius) px}.game-log-entry__icon--death{background:#0006;border:1px solid rgba(0,0,0,.7)}.game-log-entry__icon--move_cancel,.game-log-entry__icon--charge_cancel{background:#9999994d;border:1px solid rgba(153,153,153,.6)}.game-log-entry__icon--turn_change{background:#1e90ff4d;border:1px solid rgba(30,144,255,.6)}.game-log-entry__icon--phase_change{background:#9966cc4d;border:1px solid rgba(153,102,204,.6)}.game-log-entry__icon--wait{background:rgba(128,128,128,var(--icon-square-bg-alpha-gamelog));border:var(--icon-square-border-width) px solid rgba(128,128,128,var(--icon-square-border-alpha-gamelog));border-radius:var(--icon-square-border-radius) px}.game-log-entry__icon--advance{background:rgba(139,69,19,var(--icon-square-bg-alpha-gamelog));border:var(--icon-square-border-width) px solid rgba(139,69,19,var(--icon-square-border-alpha-gamelog));border-radius:var(--icon-square-border-radius) px}.game-log-entry__turn{font-size:var(--font-size-sm);color:#fff;font-weight:var(--font-weight-bold);background:#1e90ff80;padding:1px 4px;border-radius:var(--radius-sm)}.game-log-entry__player{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:#fff;padding:1px 4px;border-radius:var(--radius-sm)}.game-log-entry__player--blue{background:#1d4ed8}.game-log-entry__player--red{background:#dc2626}.game-log-entry__message{font-size:var(--font-size-sm);line-height:1.4;color:var(--text-primary);flex:1}.game-log-rule-ref{position:relative;display:inline-flex;align-items:center}.game-log-rule-ref__button{border:none;background:transparent;color:#fde68a;text-decoration:underline;text-underline-offset:2px;cursor:pointer;font:inherit;padding:0 1px;margin:0}.game-log-rule-ref__button--active{color:#facc15}.game-log-rule-ref__tooltip{z-index:99999;min-width:220px;max-width:var(--tooltip-max-width);padding:var(--tooltip-padding-y) var(--tooltip-padding-x);border-radius:var(--tooltip-border-radius);background:var(--tooltip-bg);border:var(--tooltip-border-width) solid var(--tooltip-border-color);color:var(--tooltip-text-color);font-family:var(--tooltip-font-family);font-size:var(--tooltip-font-size);font-weight:var(--tooltip-font-weight);line-height:var(--tooltip-line-height);white-space:normal;overflow-wrap:break-word;box-shadow:var(--tooltip-shadow);pointer-events:none}.game-log-rule-ref__tooltip--floating{position:fixed}.game-log-rule-ref__tooltip--above{transform:translateY(-100%)}.game-log-entry--turn{border-left-color:var(--color-accent);background:#1e90ff66}.game-log-entry--phase{border-left-color:#96c;background:#96c6}.game-log-entry--move{border-left-color:#0c6;background:#0c66}.game-log-entry--reactive-move{border-left-color:#dc2626;background:#dc262673}.game-log-entry--rule-choice{border-left-color:#6b7280;background:#6b728073}.game-log-entry--charge{border-left-color:#96c;background:#6d4cbe73}.game-log-entry--charge-impact-damage{border-left-color:#96c;background:#482d91a6}.game-log-entry--charge-impact-failed,.game-log-entry--charge-fail{border-left-color:#96c;background:#c084fc59}.game-log-entry--advance{border-left-color:#8b4513;background:#8b451366}.game-log-entry--shoot{border-left-color:#2563eb;background:#2563ff66}.game-log-entry--shoot-failed{border-left-color:#3b82f6;background:#93c5fd66}.game-log-entry--shoot-saved{border-left-color:#0ea5e9;background:#60a5fa66}.game-log-entry--shoot-damage{border-left-color:#1d4ed8;background:#1e40af66}.game-log-entry--shoot-no-damage{border-left-color:#0ea5e9;background:#60a5fa66}.game-log-entry--combat,.game-log-entry--combat-failed{border-left-color:#eab308;background:#eab30866}.game-log-entry--combat-saved{border-left-color:#ea580c;background:#ea580c66}.game-log-entry--combat-damage{border-left-color:#dc2626;background:#dc262666}.game-log-entry--combat-no-damage{border-left-color:#ea580c;background:#ea580c66}.game-log-entry--death{border-left-color:#000;background:#000000a6}.game-log-entry--death .game-log-entry__message{color:#ccc;font-weight:var(--font-weight-bold)}.game-log-entry--cancel{border-left-color:#999;background:#9996}.game-log-entry--cancel .game-log-entry__message{color:var(--text-secondary);font-style:italic}.game-log-entry.game-log-entry--wait{border-left-color:#666;background:#80808066}.game-log-entry.game-log-entry--wait .game-log-entry__message{color:var(--text-secondary);font-style:italic}.game-log-entry--default{border-left-color:#555;background:#5556}.game-log-entry--default .game-log-entry__message{color:var(--text-secondary);font-style:italic}.game-log-entry__details{margin-top:var(--spacing-xs);margin-left:32px;padding-left:var(--spacing-sm);border-left:1px solid #444}.game-log-shoot-detail{display:flex;flex-direction:column;margin-bottom:2px;font-size:11px;color:var(--text-secondary);font-family:Courier New,monospace}.game-log-shoot-detail__shot{font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:1px}.game-log-shoot-detail__roll{margin-left:var(--spacing-sm);padding:1px 4px;background:#0003;border-radius:2px;margin-bottom:1px}@media(max-width:1400px){.game-log,.game-log__events{max-height:none}}@media(max-width:768px){.game-log{margin-top:var(--spacing-md);max-height:none}.game-log__events{max-height:none}.game-log-entry{padding:var(--spacing-xs)}.game-log-entry__message{font-size:11px}}.game-controller{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary)}.replay-controls{background:var(--bg-secondary);border:1px solid #555;border-radius:var(--radius-lg);padding:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex;flex-direction:column}.replay-controls__top-row{display:flex;align-items:center;margin-bottom:var(--spacing-sm)}.replay-controls__buttons{display:flex;gap:var(--spacing-sm);justify-content:center;flex-wrap:wrap;flex:1;align-items:center}.replay-controls__buttons .btn{min-width:48px;min-height:32px;padding:var(--spacing-xs);font-size:14px;line-height:1}.replay-controls__info{font-size:var(--font-size-sm);color:var(--text-secondary);text-align:center;flex:1;display:flex;align-items:center;justify-content:center}.replay-controls__progress-bar{width:100%;height:8px;background:#333;border-radius:var(--radius-sm);overflow:hidden;border:1px solid #555;transition:background-color var(--transition-fast)}.replay-controls__progress-bar:hover{background:#444;border-color:var(--color-accent)}.replay-controls__progress-fill{height:100%;background:var(--color-accent);transition:width .2s ease}.game-log-entry--active{box-shadow:0 0 0 2px var(--color-accent)}.game-log-entry__reward-value--positive{font-size:var(--font-size-sm);color:var(--color-success);font-weight:var(--font-weight-bold);background:#36e36b33;padding:1px 4px;border-radius:var(--radius-sm);align-self:center}.game-log-entry__reward-value--negative{font-size:var(--font-size-sm);color:var(--color-danger);font-weight:var(--font-weight-bold);background:#f443;padding:1px 4px;border-radius:var(--radius-sm);align-self:center}.game-log-entry__reward-value--none{color:var(--text-secondary);font-family:Courier New,monospace;min-width:32px;display:inline-block;text-align:center}.game-log-entry__reward{flex-shrink:0;margin-right:var(--spacing-xs);display:flex;align-items:center;justify-content:center;min-height:20px}.file-browser-container{padding:1px var(--spacing-sm)}.file-browser-controls{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:1px}.file-browser-button{padding:6px var(--spacing-md);background-color:#1e40af;color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-weight:var(--font-weight-bold);font-size:var(--font-size-sm)}.file-browser-button:hover{background-color:#1d4ed8}.file-browser-filename{font-size:var(--font-size-sm);color:var(--text-secondary)}.file-browser-template{color:var(--color-success);margin-left:var(--spacing-sm)}.file-browser-error{font-size:var(--font-size-sm);color:var(--color-danger);margin-top:var(--spacing-xs)}.file-browser-preview{margin-top:var(--spacing-sm);padding:var(--spacing-md);background-color:#333;border-radius:var(--spacing-sm)}.file-browser-preview-title{font-size:var(--font-size-md);color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.file-browser-preview-description{font-size:var(--font-size-sm);color:#666}.unit-status-tables::-webkit-scrollbar{width:6px}.unit-status-tables::-webkit-scrollbar-track{background:#333;border-radius:3px}.unit-status-tables::-webkit-scrollbar-thumb{background:#555;border-radius:3px}.unit-status-tables::-webkit-scrollbar-thumb:hover{background:#666}.nav-button{padding:var(--spacing-xs) var(--spacing-md);color:#fff;border:none;border-radius:var(--radius-sm);margin-right:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);min-height:28px}.nav-button--active{background-color:#1e40af;font-weight:var(--font-weight-bold)}.nav-button--inactive{background-color:#64748b;font-weight:var(--font-weight-normal)}.nav-button--inactive:hover{background-color:#475569}.navigation{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);padding-top:0;margin-top:0;justify-content:flex-end}.hex-toggle-container{display:flex;align-items:center;gap:var(--spacing-sm);padding:6px 10px;background-color:var(--bg-secondary);border:1px solid #4b5563;border-radius:var(--radius-md)}.hex-toggle-label{font-size:12px;font-weight:var(--font-weight-medium);color:var(--text-primary);white-space:nowrap}.hex-toggle-switch{position:relative;display:inline-flex;align-items:center;cursor:pointer}.hex-toggle-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hex-toggle-track{width:36px;height:20px;border-radius:10px;position:relative;transition:background-color var(--transition-normal)}.hex-toggle-track--off{background-color:#6b7280}.hex-toggle-track--on{background-color:var(--color-accent)}.hex-toggle-thumb{width:16px;height:16px;background-color:#fff;border-radius:50%;position:absolute;top:2px;transition:left var(--transition-normal)}.hex-toggle-thumb--off{left:2px}.hex-toggle-thumb--on{left:18px}.game-log-entry__reward{color:#fbbf24;font-weight:500;margin-left:8px;font-size:.875rem;display:inline-flex;align-items:center;gap:4px}.game-log-entry__reward-action{color:#60a5fa;font-weight:600;font-size:var(--font-size-sm);letter-spacing:.5px}.game-log-entry__reward-value{color:#34d399;font-weight:700;padding:2px 6px;background:#34d3991a;border-radius:4px;font-family:Courier New,monospace;font-size:var(--font-size-sm)}.weapon-dropdown{background:#141414fa;border:2px solid #4caf50;border-radius:6px;padding:8px;min-width:400px;max-width:600px;z-index:10001;box-shadow:0 4px 12px #00000080}.weapon-table{width:100%;border-collapse:collapse;font-size:.85em}.weapon-table thead{background:#0b410d80;border-bottom:2px solid #4caf50}.weapon-table th{padding:6px 8px;text-align:center;font-weight:700;color:#66bb6a;font-size:.9em;text-transform:uppercase;letter-spacing:.5px}.weapon-table th:first-child{text-align:left;width:auto;white-space:nowrap}.weapon-table tbody tr{cursor:pointer;transition:background .15s;border-bottom:1px solid #333}.weapon-table tbody tr:hover:not(.disabled){background:#4caf5026}.weapon-table tbody tr.disabled{opacity:.4;cursor:not-allowed}.weapon-table td{padding:6px 8px;text-align:center;color:#fff}.weapon-table td:first-child{text-align:left;font-weight:600;white-space:nowrap}.rule-badge{display:inline-block;margin-left:4px;padding:1px 4px;background:#4caf5033;border:1px solid #4caf50;border-radius:3px;font-size:.75em;color:#e6ffed;cursor:help;font-weight:400}.rule-badge-wrapper{position:relative;display:inline-flex;align-items:center;z-index:1}.rule-badge-wrapper:hover{z-index:10001}.rule-tooltip{position:absolute;left:0;bottom:100%;margin-bottom:6px;padding:var(--tooltip-padding-y) var(--tooltip-padding-x);border:var(--tooltip-border-width) solid var(--tooltip-border-color);border-radius:var(--tooltip-border-radius);background:var(--tooltip-bg);color:var(--tooltip-text-color);font-family:var(--tooltip-font-family);font-size:var(--tooltip-font-size);font-weight:var(--tooltip-font-weight);line-height:var(--tooltip-line-height);width:-webkit-max-content;width:max-content;max-width:var(--tooltip-max-width);white-space:normal;overflow-wrap:break-word;box-shadow:var(--tooltip-shadow);z-index:10001;visibility:hidden;opacity:0;transform:translateY(4px);transition:opacity .2s ease,transform .2s ease,visibility .2s;pointer-events:none}.rule-badge-wrapper:hover .rule-tooltip{visibility:visible;opacity:1;transform:translateY(0)}.rule-tooltip--floating{position:fixed;left:0;top:0;bottom:auto;margin-bottom:0;visibility:visible;opacity:1;transform:translateY(calc(-100% - 6px));transition:none;z-index:40000}.tutorial-overlay-dialog__inline-rule-tooltip{position:static;display:inline-block;margin-left:4px;margin-right:4px;margin-bottom:0;visibility:visible;opacity:1;transform:none;pointer-events:none;vertical-align:baseline}.unit-icon-tooltip{position:fixed;left:0;top:0;bottom:auto;margin-bottom:0;padding:var(--tooltip-padding-y) var(--tooltip-padding-x);border:var(--tooltip-border-width) solid var(--tooltip-border-color);border-radius:var(--tooltip-border-radius);background:var(--tooltip-bg);color:var(--tooltip-text-color);font-family:var(--tooltip-font-family);font-size:var(--tooltip-font-size);font-weight:var(--tooltip-font-weight);line-height:var(--tooltip-line-height);max-width:var(--tooltip-max-width);box-shadow:var(--tooltip-shadow);z-index:1300;visibility:visible;opacity:1;transform:translate(12px,-14px);pointer-events:none}.tutorial-overlay-dialog{background:var(--tutorial-dialog-bg);border:var(--tutorial-dialog-border);border-radius:var(--tutorial-dialog-radius);color:var(--tutorial-dialog-color);font-family:var(--tutorial-dialog-font-family);font-size:14px;font-weight:var(--tutorial-dialog-font-weight);line-height:1.45;box-shadow:var(--tutorial-dialog-shadow);outline:none;box-sizing:border-box;max-height:min(92vh,calc(100dvh - 16px));overflow-y:auto;overflow-x:hidden}.tutorial-overlay-dialog:focus{outline:none}.tutorial-overlay-dialog__title-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-24px -24px 16px;padding:10px 24px;background:#4caf5038;border-radius:6px 6px 0 0;outline:none}.tutorial-overlay-dialog__title-bar:focus{outline:none}.tutorial-overlay-dialog__title-row{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.tutorial-overlay-dialog__title-row h2{margin:0;flex:1;min-width:0}.tutorial-overlay-dialog__phase-logo{width:32px;height:32px;object-fit:contain;flex-shrink:0}.tutorial-overlay-dialog__lang-buttons{display:flex;gap:4px;flex-shrink:0}.tutorial-overlay-dialog h2{color:var(--tutorial-dialog-color);font-family:var(--tutorial-dialog-font-family);font-weight:var(--tutorial-dialog-font-weight);font-size:18px}.tutorial-overlay-dialog p{color:var(--tutorial-dialog-color);font-family:var(--tutorial-dialog-font-family);font-size:14px;font-weight:var(--tutorial-dialog-font-weight);line-height:1.45;margin-bottom:24px;white-space:pre-wrap}.tutorial-overlay-dialog__body-with-image,.tutorial-overlay-dialog__body-with-illustration{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.tutorial-overlay-dialog__body-with-image p,.tutorial-overlay-dialog__body-with-illustration p{margin-bottom:0}.tutorial-overlay-dialog__popup-image{width:48px;height:48px;object-fit:contain;align-self:flex-start}.tutorial-overlay-dialog__popup-image--inline{width:40px;height:40px;vertical-align:middle;margin:0 6px}.tutorial-overlay-dialog__move-hex{width:48px;height:48px;flex-shrink:0;align-self:flex-start}.tutorial-overlay-dialog__unit-icon-with-green-circle{position:relative;width:72px;height:72px;flex-shrink:0;align-self:flex-start}.tutorial-overlay-dialog__icon-and-first-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tutorial-overlay-dialog__body-first-line{font-weight:500}.tutorial-overlay-dialog__green-activation-circle{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.tutorial-overlay-dialog__popup-image--in-circle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:48px;height:48px;object-fit:contain}.tutorial-overlay-dialog__popup-image--ghost{opacity:.45;filter:grayscale(.6)}.tutorial-overlay-dialog__weapon-attr-badge{display:inline-block;margin-left:4px;padding:1px 4px;background:#4caf5033;border:1px solid var(--tooltip-border-color);border-radius:3px;font-size:.85em;color:var(--tooltip-text-color);cursor:help;font-weight:400}.tutorial-overlay-dialog__weapon-attr-badge:first-child{margin-left:0}.tutorial-overlay-dialog__click-icon{display:inline-block;width:2.2em;height:2.2em;vertical-align:middle;margin-right:6px;color:var(--tooltip-text-color)}.tutorial-overlay-dialog__mini-icon{display:inline-block;width:2.2em;height:2.2em;vertical-align:middle;margin:0 4px;object-fit:contain}.tutorial-overlay-dialog__mini-icon-with-green-circle{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.2em;height:2.2em;vertical-align:middle;margin:0 4px}.tutorial-overlay-dialog__mini-icon-with-green-circle .tutorial-overlay-dialog__mini-icon{position:relative;z-index:1;margin:0}.tutorial-overlay-dialog__mini-green-activation-circle{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.tutorial-overlay-dialog__bolt-rifle{font-weight:700;color:#fff}.tutorial-overlay-dialog__icon-and-first-line--hex-same-line{flex-wrap:nowrap}.tutorial-overlay-dialog__weapon-attr-line{display:inline}.tutorial-overlay-dialog__weapon-attr-desc{font-family:var(--tutorial-dialog-font-family);font-size:14px;color:var(--tutorial-dialog-color);font-weight:var(--tutorial-dialog-font-weight)}.tutorial-overlay-dialog__weapon-attr-intro,.tutorial-overlay-dialog__weapon-attr-trailing{margin:0 0 12px;font-family:var(--tutorial-dialog-font-family);font-size:14px;color:var(--tutorial-dialog-color)}.tutorial-overlay-dialog__weapon-attr-trailing{margin-top:12px}.tutorial-overlay-dialog__weapon-attr-cols{display:grid;grid-template-columns:auto 1fr;gap:12px 20px;align-items:start;margin-bottom:12px}.tutorial-overlay-dialog__weapon-attr-col--left{text-align:right}.tutorial-overlay-dialog__weapon-attr-col--right{text-align:left}.tutorial-overlay-dialog__weapon-attr-col .tutorial-overlay-dialog__weapon-attr-cell{padding:2px 0;font-family:var(--tutorial-dialog-font-family);font-size:14px;color:var(--tutorial-dialog-color)}.tutorial-overlay-dialog__weapon-attr-col--right .tutorial-overlay-dialog__weapon-attr-desc{font-weight:var(--tutorial-dialog-font-weight)}.tutorial-overlay-dialog__los-hex-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.tutorial-overlay-dialog__los-hex-row .tutorial-overlay-dialog__los-hex{flex-shrink:0}.tutorial-overlay-dialog__los-hex{display:inline-block;width:48px;height:48px;vertical-align:middle;margin:0;flex-shrink:0}.tutorial-overlay-dialog__los-hex-desc{font-family:var(--tutorial-dialog-font-family);font-size:14px;color:var(--tutorial-dialog-color)}.tutorial-overlay-dialog__unit-icon{display:inline-block;width:1.4em;height:1.4em;object-fit:contain;vertical-align:middle;margin:0 2px}.tutorial-overlay-dialog__unit-icon-block{display:block;margin:.6em 0}.tutorial-overlay-dialog__unit-icon-block .tutorial-overlay-dialog__unit-icon--large{width:64px;height:64px;display:block;margin:0 auto}.tutorial-overlay-dialog__unit-icon-with-label{display:flex;align-items:center;gap:10px;margin:.6em 0 12px}.tutorial-overlay-dialog__unit-icon-with-label .tutorial-overlay-dialog__unit-icon--large{width:48px;height:48px;flex-shrink:0}.tutorial-overlay-dialog__unit-icon-label{font-family:var(--tutorial-dialog-font-family);font-size:14px;font-weight:var(--tutorial-dialog-font-weight);color:var(--tutorial-dialog-color)}.tutorial-overlay-dialog__termagant-ghost-icon{display:inline-block;width:2em;height:2em;vertical-align:middle;margin-right:.35em;object-fit:contain;opacity:.45;filter:grayscale(.6)}.tutorial-overlay-dialog__death-icon-inline{display:inline;vertical-align:middle;margin-right:.25em;font-size:1.8em;line-height:1}.tutorial-overlay-dialog .tutorial-btn-primary{padding:10px 20px;border-radius:var(--tutorial-dialog-radius);border:var(--tutorial-dialog-border);background:#4caf5026;color:var(--tutorial-dialog-color);font-family:var(--tutorial-dialog-font-family);font-size:14px;font-weight:600;cursor:pointer}.tutorial-overlay-dialog .tutorial-btn-primary:hover{background:#4caf5040}.tutorial-overlay-dialog .tutorial-btn-secondary{padding:10px 20px;border-radius:var(--tutorial-dialog-radius);border:1px solid rgba(182,247,201,.5);background:transparent;color:var(--tutorial-dialog-color);font-family:var(--tutorial-dialog-font-family);font-size:14px;cursor:pointer}.tutorial-overlay-dialog .tutorial-btn-secondary:hover{background:#4caf501a;border-color:var(--tooltip-border-color)}.tutorial-overlay-dialog .tutorial-btn-primary:focus,.tutorial-overlay-dialog .tutorial-btn-secondary:focus{outline:none}.tutorial-overlay-dialog .tutorial-lang-btn{padding:4px 8px;border-radius:4px;border:1px solid rgba(182,247,201,.5);background:transparent;color:var(--tutorial-dialog-color);font-family:var(--tutorial-dialog-font-family);font-size:11px;font-weight:600;cursor:pointer;outline:none}.tutorial-overlay-dialog .tutorial-lang-btn:hover{background:#4caf501a;border-color:var(--tooltip-border-color)}.tutorial-overlay-dialog .tutorial-lang-btn[aria-pressed=true]{background:#4caf5033;border-color:var(--tooltip-border-color)}.combi-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-right:6px;border:1px solid #4caf50;border-radius:50%;font-size:.7em;font-weight:700;color:#4caf50;background:#4caf501a;vertical-align:middle;position:relative;top:-1px}.rule-badge:hover{background:#4caf5080;border-color:#66bb6a}
