*,:before,:after{box-sizing:border-box}body{margin:0;padding:0}@font-face{font-family:Cinzel;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/cinzel-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Cinzel;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/cinzel-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg-deep:#0d0d1a;--bg-base:#1a1a2e;--bg-card:#12122a;--bg-hover:#1e1e3a;--bg-panel:#16162e;--bg-raised:#20203a;--gold:#c9a84c;--gold-light:#e8c870;--gold-dim:#8a6f2e;--red:#8b0000;--red-light:#c0392b;--red-bright:#e74c3c;--text:#ccc8d4;--text-dim:#7a7490;--text-muted:#4a4460;--text-head:#e8e0f0;--border:#2a2a48;--border-gold:#4a3a18;--accent:#c9a84c;--accent-red:#8b0000;--success:#2ecc71;--warning:#f39c12;--error:#e74c3c;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 2px 4px #0006;--shadow-md:0 4px 12px #0009;--shadow-lg:0 8px 24px #000c;--font-display:"Cinzel", Georgia, "Times New Roman", serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{background:var(--bg-deep);color:var(--text);-webkit-font-smoothing:antialiased;font-family:system-ui,Segoe UI,sans-serif;font-size:14px;line-height:1.5}#root{text-align:left;border:none;flex-direction:column;max-width:none;min-height:100vh;margin:0;display:flex}h1,h2,h3,h4{color:var(--text-head);font-weight:600;line-height:1.2}button{cursor:pointer;font-family:inherit;font-size:inherit;border:none;outline:none}button:disabled{cursor:not-allowed;opacity:.5}.app-loading,.app-error{height:100vh;color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.loading-spinner{border:3px solid var(--border);border-top-color:var(--gold);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app{background:var(--bg-base);flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--bg-deep);border-bottom:1px solid var(--border-gold);z-index:100;box-shadow:var(--shadow-md);position:sticky;top:0}.app-header:after{content:"";background:radial-gradient(circle at 50% 30%, var(--red), transparent 70%);opacity:.14;pointer-events:none;border-radius:50%/60% 60% 40% 40%;width:18px;height:22px;position:absolute;top:4px;right:40px}.app-header-inner{justify-content:space-between;align-items:center;max-width:1600px;margin:0 auto;padding:10px 20px;display:flex}.app-logo{align-items:center;gap:12px;display:flex}.app-logo-badge{background:radial-gradient(circle at 35% 30%, var(--bg-raised), var(--bg-deep) 70%);border:2px solid var(--gold-dim);width:38px;height:38px;box-shadow:0 0 0 1px var(--gold), 0 0 10px #c9a84c59;color:var(--gold-light);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.app-logo-glyph{filter:drop-shadow(0 0 4px #e8c87099);width:20px;height:20px}.app-title{font-family:var(--font-display);color:var(--gold-light);letter-spacing:.4px;margin:0;font-size:22px;font-weight:600}.app-subtitle{color:var(--text-dim);letter-spacing:1px;text-transform:uppercase;font-size:11px}.app-tabs{gap:6px;display:flex}.app-tab{border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-dim);background:0 0;padding:7px 16px;font-size:13px;font-weight:600;transition:all .15s}.app-tab:hover{border-color:var(--gold-dim);color:var(--text)}.app-tab--active{border-color:var(--gold);color:var(--gold-light);background:#c9a84c1f}.lang-switcher{gap:4px;margin-left:10px;display:flex}.lang-link{border:1px solid var(--border);border-radius:var(--radius-md);letter-spacing:.5px;color:var(--text-dim);padding:4px 9px;font-size:12px;font-weight:700;text-decoration:none;transition:all .15s;display:inline-block}.lang-link:hover{border-color:var(--gold-dim);color:var(--text)}.lang-link--active{border-color:var(--gold);color:var(--gold-light);pointer-events:none;background:#c9a84c1f}.app-body{flex:1;width:100%;max-width:1600px;margin:0 auto;padding:16px 16px 32px}.app-footer{border-top:1px solid var(--border);text-align:center;color:var(--text-dim);padding:14px 16px;font-size:11.5px}.app-footer-version{font-variant-numeric:tabular-nums;opacity:.75}.config-bar{border-bottom:1px solid var(--border);padding:12px 16px}.faction-selector{flex-wrap:wrap;gap:24px;display:flex}.selector-section{flex:1;min-width:280px}.selector-title{letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-dim);margin-bottom:8px;font-size:11px;font-weight:700}.faction-list{flex-wrap:wrap;gap:6px;display:flex}.faction-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);text-align:left;align-items:center;gap:10px;max-width:200px;padding:8px 14px;transition:all .15s;display:flex}.faction-btn:hover{border-color:var(--gold-dim);background:var(--bg-hover)}.faction-btn--active{border-color:var(--gold);color:var(--gold);background:#c9a84c1a}.faction-crest{object-fit:cover;border:2px solid var(--gold-dim);width:34px;height:34px;box-shadow:0 0 0 1px var(--gold);background:var(--bg-deep);border-radius:50%;flex-shrink:0}.faction-btn-text{flex-direction:column;min-width:0;display:flex}.faction-btn-name{font-family:var(--font-display);letter-spacing:.3px;font-size:13.5px;font-weight:600}.faction-btn-desc{color:var(--text-dim);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:11px;line-height:1.3;display:-webkit-box;overflow:hidden}.level-list{flex-wrap:wrap;gap:6px;display:flex}.level-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);flex-direction:column;align-items:center;min-width:90px;padding:8px 16px;transition:all .15s;display:flex}.level-btn:hover{border-color:var(--gold-dim);background:var(--bg-hover)}.level-btn--active{border-color:var(--gold);color:var(--gold);background:#c9a84c1a}.level-btn-name{font-size:13px;font-weight:600}.level-btn-points{color:var(--text-dim);font-size:12px}.level-btn-note{color:var(--gold-dim);margin-top:2px;font-size:10px}.config-collapse-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;margin:12px auto 0;padding:4px 14px;font-size:11.5px;display:block}.config-collapse-btn:hover{color:var(--gold-dim)}.config-summary{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text);text-align:left;align-items:center;gap:10px;padding:6px 12px;transition:all .15s;display:flex}.config-summary:hover{border-color:var(--gold-dim);background:var(--bg-hover)}.config-summary-crest{object-fit:cover;border:2px solid var(--gold-dim);background:var(--bg-deep);border-radius:50%;flex-shrink:0;width:28px;height:28px}.config-summary-faction{font-family:var(--font-display);letter-spacing:.3px;font-size:13.5px;font-weight:600}.config-summary-sep{color:var(--text-dim)}.config-summary-level{color:var(--text-dim);font-size:12.5px}.config-summary-change{color:var(--gold-dim);white-space:nowrap;margin-left:auto;font-size:11.5px}.main-layout{grid-template:"header army""left army"1fr/1fr 420px;align-items:stretch;column-gap:16px;display:grid}.main-layout>.app-header{border:1px solid var(--border-gold);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);grid-area:header;margin-bottom:16px}@media (width<=900px){.main-layout{grid-template-columns:1fr;grid-template-areas:"header""left""army"}.right-panel{max-height:none;position:static;overflow-y:visible}}.left-panel{flex-direction:column;grid-area:left;min-width:0;display:flex}.right-panel{scrollbar-width:thin;scrollbar-color:var(--border) transparent;grid-area:army;min-width:0;max-height:calc(100vh - 48px);position:sticky;top:0;overflow:hidden auto}.catalogue-panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.catalogue-controls{border-bottom:1px solid var(--border);background:var(--bg-base);flex-wrap:wrap;gap:10px;padding:12px 16px;display:flex}.search-input{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);outline:none;width:200px;padding:6px 12px;font-size:13px;transition:border-color .15s}.search-input:focus{border-color:var(--gold-dim)}.search-input::placeholder{color:var(--text-muted)}.filter-tabs{flex-wrap:wrap;gap:4px;display:flex}.filter-tab{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);padding:5px 10px;font-size:12px;transition:all .15s}.filter-tab:hover{border-color:var(--gold-dim);color:var(--text)}.filter-tab--active{border-color:var(--gold);color:var(--gold);background:#c9a84c26}.unit-list{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;flex:1;gap:8px;min-height:0;padding:12px;display:flex;overflow-y:auto}.empty-state{text-align:center;color:var(--text-dim);padding:40px 20px;font-style:italic}.unit-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);flex-shrink:0;transition:border-color .15s;overflow:hidden}.unit-card:hover,.unit-card--expanded{border-color:var(--gold-dim)}.unit-card-header{cursor:pointer;align-items:flex-start;gap:10px;padding:10px 12px;display:flex;position:relative}.unit-card-header-text{flex:1;min-width:0}.unit-art{object-fit:cover;object-position:top center;border:1px solid var(--border-gold);background:var(--bg-deep);border-radius:50%;flex-shrink:0;width:44px;height:44px}.unit-card-title-row{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.unit-card-name-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.unit-name{color:var(--text-head);min-width:0;margin:0;font-size:14px;font-weight:600}.unit-points{color:var(--gold);white-space:nowrap;font-size:12px;font-weight:600}.unit-meta{color:var(--text-dim);margin-top:2px;font-size:11px}.dot{margin:0 4px}.expand-toggle{color:var(--text-muted);background:0 0;padding:2px 4px;font-size:10px;position:absolute;top:10px;right:12px}.unit-card-details{border-top:1px solid var(--border);padding:12px}.unit-lore{color:var(--text-dim);margin-bottom:10px;font-size:12px;font-style:italic;line-height:1.5}.unit-card-footer{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;display:flex}.btn-add{background:var(--red);color:#fff;border-radius:var(--radius-sm);border:none;padding:6px 14px;font-size:13px;font-weight:600;transition:all .15s}.btn-add:hover:not(:disabled){background:var(--red-light);transform:translateY(-1px)}.btn-add:disabled{background:var(--bg-raised);color:var(--text-muted)}.disabled-reason{color:var(--error);font-size:11px}.unit-type-badge{letter-spacing:.5px;text-transform:uppercase;border-radius:10px;padding:2px 7px;font-size:10px;font-weight:700}.type-basic{color:#2ecc71;background:#2ecc7126;border:1px solid #2ecc714d}.type-elite{color:var(--gold);border:1px solid var(--border-gold);background:#c9a84c26}.type-single{color:#5dade2;background:#3498db26;border:1px solid #3498db4d}.type-monster{color:var(--red-bright);background:#e74c3c26;border:1px solid #e74c3c4d}.ranged-badge{letter-spacing:.5px;text-transform:uppercase;color:#bb8fce;background:#9b59b633;border:1px solid #9b59b64d;border-radius:10px;padding:2px 7px;font-size:10px;font-weight:700}.wizard-badge{letter-spacing:.5px;text-transform:uppercase;color:#1abc9c;background:#1abc9c26;border:1px solid #1abc9c4d;border-radius:10px;padding:2px 7px;font-size:10px;font-weight:700}.warlord-toggle{letter-spacing:.5px;text-transform:uppercase;background:var(--bg-raised);color:var(--text-dim);border:1px solid var(--border);border-radius:10px;padding:2px 7px;font-size:10px;font-weight:700;transition:all .15s}.warlord-toggle:hover{border-color:var(--gold-dim);color:var(--gold-light)}.warlord-toggle--active{color:var(--gold-light);border:1px solid var(--gold);background:#c9a84c40}.warlord-toggle--active:hover{border-color:var(--gold);color:var(--gold-light)}.stat-block{flex-direction:column;gap:8px;display:flex}.stats-grid{border:1px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:repeat(10,1fr);display:grid;overflow:hidden}.stat-cell{border-right:1px solid var(--border);flex-direction:column;align-items:center;display:flex}.stat-cell:last-child{border-right:none}.stat-label{letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted);background:var(--bg-deep);text-align:center;border-bottom:1px solid var(--border);width:100%;padding:2px 0;font-size:9px;font-weight:700}.stat-value{color:var(--text-head);padding:4px 2px;font-size:13px;font-weight:700}.stat-bonus{color:var(--gold)}.stat-row{gap:6px;font-size:12px;display:flex}.stat-row-label{color:var(--text-dim);min-width:70px}.weapons-table-wrap{overflow-x:auto}.weapons-table{border-collapse:collapse;width:100%;font-size:11px}.weapons-table th{background:var(--bg-deep);color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;text-align:left;border-bottom:1px solid var(--border);padding:4px 6px;font-size:9px}.weapons-table td{border-bottom:1px solid var(--border);color:var(--text);padding:4px 6px}.weapons-table tr:last-child td{border-bottom:none}.weapon-user{color:var(--text-muted);font-size:10px}.weapon-abilities{margin-top:4px;font-size:11px}.weapon-ability-row{color:var(--text-dim);padding:2px 0}.unit-abilities{margin-top:4px}.unit-abilities-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:4px;font-size:10px;font-weight:700}.ability-tags{flex-wrap:wrap;gap:4px;display:flex}.ability-tag{border:1px solid var(--border-gold);color:var(--gold-dim);cursor:pointer;background:#c9a84c14;border-radius:10px;padding:2px 8px;font-family:inherit;font-size:11px;line-height:1.4;transition:all .15s}.ability-tag:hover{border-color:var(--gold);color:var(--gold-light);background:#c9a84c2e}.ability-tags--inline{vertical-align:middle;flex-wrap:wrap;gap:4px;display:inline-flex}.ability-tag.specialist-info{color:var(--gold-dim);background:0 0;border:none;border-radius:0;padding:0 0 0 4px;font-size:11px}.ability-tag.specialist-info:hover{color:var(--gold-light);background:0 0}.ability-tooltip{z-index:300;background:var(--bg-raised);border:1px solid var(--border-gold);border-radius:var(--radius-sm);width:max-content;max-width:320px;max-height:220px;color:var(--text);box-shadow:var(--shadow-md);pointer-events:none;padding:8px 10px;font-size:12px;line-height:1.5;animation:.12s ease-out tooltip-fade-in;position:fixed;overflow-y:auto}.ability-tooltip:after{content:"";left:var(--arrow-left,50%);border:5px solid #0000;position:absolute;transform:translate(-50%)}.ability-tooltip--above:after{border-top-color:var(--border-gold);top:100%}.ability-tooltip--below:after{border-bottom-color:var(--border-gold);bottom:100%}@keyframes tooltip-fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.ability-tooltip{animation:none}}.ability-modal-backdrop{z-index:400;background:#06060eb3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.ability-modal{background:var(--bg-panel);border:1px solid var(--border-gold);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:440px;max-height:min(70vh,480px);display:flex;overflow:hidden}.ability-modal-header{background:var(--bg-card);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 16px;display:flex}.ability-modal-name{color:var(--gold);flex:1;margin:0;font-size:16px}.ability-type-badge{text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;border-radius:10px;padding:3px 8px;font-size:10px;font-weight:700}.ability-type-badge--active{color:var(--red-bright);background:#e74c3c26}.ability-type-badge--passive{color:var(--success);background:#2ecc7126}.ability-type-badge--neutral{color:var(--gold-light);background:#c9a84c26}.ability-modal-close{color:var(--text-dim);border-radius:var(--radius-sm);background:0 0;border:none;width:24px;height:24px;font-size:14px;transition:all .15s}.ability-modal-close:hover{background:var(--bg-hover);color:var(--text-head)}.ability-modal-body{color:var(--text);flex-direction:column;gap:10px;padding:14px 16px;font-size:13px;line-height:1.6;display:flex;overflow-y:auto}.ability-modal-note{color:var(--text-dim);font-size:12px;font-style:italic}.spells-section{margin-top:6px}.spells-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:4px;font-size:10px;font-weight:700}.spell-row{border-bottom:1px solid #2a2a4880;flex-wrap:wrap;align-items:center;gap:8px;padding:3px 0;font-size:11px;display:flex}.spell-name{color:var(--text-head);min-width:140px;font-weight:600}.spell-type{color:#1abc9c;font-size:10px}.spell-level{color:var(--gold);white-space:nowrap;font-size:10px}.spell-range{color:var(--text-dim);font-size:10px}.spell-row--buyable{padding:5px 0;font-size:12px}.spell-row--buyable .toggle-btn{margin-left:auto}.prerequisite-note{color:var(--warning);border-radius:var(--radius-sm);background:#f39c1214;border:1px solid #f39c1233;margin-top:6px;padding:6px 10px;font-size:11px}.unit-note{color:var(--text-dim);margin-top:4px;font-size:11px;font-style:italic}.army-panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.army-panel-header{border-bottom:1px solid var(--border);background:var(--bg-card);justify-content:space-between;align-items:center;padding:14px 16px 10px;display:flex}.army-panel-title{color:var(--gold);font-size:15px}.army-panel-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.print-mode-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;overflow:hidden}.print-mode-btn{color:var(--text-dim);background:0 0;border:none;padding:4px 10px;font-size:11px;transition:all .15s}.print-mode-btn:not(:last-child){border-right:1px solid var(--border)}.print-mode-btn:hover{color:var(--text);background:var(--bg-hover)}.print-mode-btn--active{color:var(--gold-light);background:#c9a84c26}.btn-reset,.btn-print{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);background:0 0;padding:4px 12px;font-size:12px;transition:all .15s}.btn-reset:hover{border-color:var(--red-light);color:var(--red-bright)}.btn-print:hover{border-color:var(--gold);color:var(--gold-light)}.army-empty{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 20px;display:flex}.army-empty-icon{opacity:.3;font-size:40px}.army-list{flex-direction:column;gap:6px;padding:10px;display:flex}.army-entry{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:border-color .15s;overflow:hidden}.army-entry:hover{border-color:var(--gold-dim)}.army-entry--selected{border-color:var(--gold)}.army-entry--warlord{background:#c9a84c0a;border-color:var(--gold)!important}.army-entry-header{padding:8px 12px}.army-entry-title-row{flex-wrap:wrap;gap:6px;margin-bottom:3px;display:flex}.army-entry-name-row{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.army-entry-name{color:var(--text-head);min-width:0;font-size:13px;font-weight:600}.army-entry-points{color:var(--gold);font-size:13px;font-weight:700}.army-entry-meta{color:var(--text-dim);margin-top:2px;font-size:11px}.army-entry-config{border-top:1px solid var(--border);background:var(--bg-base);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.config-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.config-label{color:var(--text-dim);flex:1;min-width:140px;font-size:12px}.counter-control{border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:0;display:flex;overflow:hidden}.counter-btn{background:var(--bg-raised);color:var(--text);border:none;width:28px;height:28px;font-size:16px;font-weight:600;line-height:1;transition:background .15s}.counter-btn:hover:not(:disabled){background:var(--gold-dim);color:#fff}.counter-value{text-align:center;min-width:40px;color:var(--text-head);background:var(--bg-card);border-left:1px solid var(--border);border-right:1px solid var(--border);justify-content:center;align-items:center;height:28px;padding:0 6px;font-size:13px;font-weight:600;display:flex}.toggle-btn{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);padding:4px 14px;font-size:12px;transition:all .15s}.toggle-btn--active{color:#2ecc71;background:#2ecc7126;border-color:#2ecc71}.full-unit-note{color:var(--gold-dim);border-radius:var(--radius-sm);border:1px solid var(--border-gold);background:#c9a84c0d;padding:4px 8px;font-size:11px;font-style:italic}.config-row--specialists{align-items:flex-start}.specialist-list{flex-direction:column;flex:1;gap:4px;min-width:180px;display:flex}.specialist-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.specialist-name{color:var(--text);flex:140px;min-width:0;font-size:12px}.specialist-info{color:var(--gold-dim);cursor:help;margin-left:5px;font-size:11px}.spell-cost{color:var(--gold-dim);font-size:11px}.spell-locked-note{color:var(--text-muted);font-size:11px;font-style:italic}.counter-control--sm .counter-btn{width:22px;height:22px;font-size:13px}.counter-control--sm .counter-value{min-width:24px;height:22px;padding:0 4px;font-size:12px}.config-row--actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;padding-top:4px}.btn-stats-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);background:0 0;padding:5px 10px;font-size:11px;transition:all .15s}.btn-stats-toggle:hover{border-color:var(--gold-dim);color:var(--text)}.btn-remove{border-radius:var(--radius-sm);color:var(--red-bright);background:0 0;border:1px solid #e74c3c4d;margin-left:auto;padding:5px 10px;font-size:11px;transition:all .15s}.btn-remove:hover{border-color:var(--red-bright);background:#e74c3c1a}.entry-stat-block{border-top:1px solid var(--border);padding-top:8px}.saved-armies{border-top:1px solid var(--border);padding:14px 16px 16px}.saved-armies-header{margin-bottom:10px}.saved-armies-title{color:var(--gold);font-size:13px}.saved-armies-save-row{gap:8px;margin-bottom:12px;display:flex}.saved-armies-name-input{flex:1;width:auto}.saved-armies-save-btn{flex-shrink:0}.saved-armies-empty{color:var(--text-muted);font-size:12px;font-style:italic}.saved-armies-list{flex-direction:column;gap:6px;list-style:none;display:flex}.saved-army-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.saved-army-info{flex-direction:column;min-width:0;display:flex}.saved-army-name{color:var(--text-head);font-size:13px;font-weight:600}.saved-army-meta{color:var(--text-dim);margin-top:2px;font-size:11px}.saved-army-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.saved-army-confirm-label{color:var(--error);font-size:11px;font-weight:600}.summary-panel{border-bottom:1px solid var(--border);padding:10px 14px}.summary-panel--ok{background:var(--bg-card)}.summary-panel--warning{background:#f39c120a}.summary-panel--error{background:#e74c3c0a}.summary-bar-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.summary-bar-row .points-bar-wrap{flex:1}.summary-bar-text{color:var(--gold);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.summary-bar-text.points-over{color:var(--error)}.points-bar-wrap{background:var(--border);border-radius:2px;height:5px;overflow:hidden}.points-bar{background:linear-gradient(90deg, var(--gold-dim), var(--gold));border-radius:2px;height:100%;transition:width .3s}.points-bar--over{background:var(--error)}.summary-chips{flex-wrap:wrap;gap:3px 12px;margin-bottom:8px;display:flex}.summary-chip{align-items:baseline;gap:4px;font-size:11px;display:inline-flex}.summary-stat-label{color:var(--text-dim)}.summary-stat-value{color:var(--text-head);font-weight:600}.summary-stat--ok{color:var(--success)}.summary-stat--missing,.summary-stat--error{color:var(--error)}.validation-errors{flex-direction:column;gap:4px;display:flex}.validation-error{border-radius:var(--radius-sm);padding:5px 8px;font-size:11px;line-height:1.4}.validation-error--error{color:var(--error);background:#e74c3c1a;border:1px solid #e74c3c33}.validation-error--warning{color:var(--warning);background:#f39c121a;border:1px solid #f39c1233}.validation-ok{color:var(--success);text-align:center;border-radius:var(--radius-sm);background:#2ecc710d;border:1px solid #2ecc7133;padding:6px;font-size:12px}.no-faction{height:200px;color:var(--text-muted);justify-content:center;align-items:center;font-style:italic;display:flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--gold-dim)}.cheat-sheet{max-width:1300px;margin:0 auto;padding:24px 0 8px}.cheat-sheet-intro{max-width:70ch;margin-bottom:20px}.cheat-sheet-intro h2{color:var(--gold);margin-bottom:6px;font-size:22px}.cheat-sheet-intro p{color:var(--text-dim);font-size:13.5px;line-height:1.6}.cheat-sheet-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;display:grid}.cheat-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;padding:16px 18px}.cheat-card,.faction-btn,.unit-card{position:relative}.cheat-card:before,.cheat-card:after,.faction-btn:before,.faction-btn:after,.unit-card:before,.unit-card:after{content:"";border-top:2px solid var(--gold-dim);pointer-events:none;opacity:.7;width:12px;height:12px;position:absolute;top:6px}.cheat-card:before,.faction-btn:before,.unit-card:before{border-left:2px solid var(--gold-dim);left:6px}.cheat-card:after,.faction-btn:after,.unit-card:after{border-right:2px solid var(--gold-dim);right:6px}.cheat-card--wide{grid-column:1/-1}.cheat-note{color:var(--text-dim);margin-bottom:4px;font-size:13.5px}.cheat-table-wrap{overflow-x:auto}.cheat-card h3{font-family:var(--font-display);color:var(--gold-light);border-bottom:1px solid var(--border);margin-bottom:10px;padding-bottom:8px;font-size:15.5px}.cheat-card-body{color:var(--text);font-size:14.5px;line-height:1.65}.cheat-card-body ol,.cheat-card-body ul{flex-direction:column;gap:6px;padding-left:20px;display:flex}.cheat-card-body li::marker{color:var(--gold-dim)}.cheat-card-body strong{color:var(--text-head)}.cheat-table{border-collapse:collapse;width:100%;margin-top:12px;font-size:13.5px}.cheat-table th,.cheat-table td{border:1px solid var(--border);text-align:left;padding:8px 10px;line-height:1.45}.cheat-table th{background:var(--bg-raised);color:var(--text-dim);text-transform:uppercase;letter-spacing:.4px;font-size:12px}.cheat-table tbody tr:nth-child(2n){background:var(--bg-raised)}.cheat-table td:first-child{color:var(--text-head);font-weight:600}.cheat-table td:nth-child(2){color:var(--gold-light);white-space:nowrap;font-weight:600}.skorowidz{max-width:1300px;margin:0 auto;padding:24px 0 8px}.skorowidz-intro{max-width:70ch;margin-bottom:20px}.skorowidz-intro h2{color:var(--gold);margin-bottom:6px;font-size:22px}.skorowidz-intro p{color:var(--text-dim);margin-bottom:14px;font-size:13.5px;line-height:1.6}.skorowidz-search{width:100%;max-width:420px}.skorowidz-section{margin-top:28px}.skorowidz-section-title{font-family:var(--font-display);color:var(--gold-light);border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:8px;font-size:15.5px}.skorowidz-unit-list{flex-direction:column;gap:16px;display:flex}.skorowidz-unit-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px}.skorowidz-unit-header{align-items:center;gap:10px;margin-bottom:12px;display:flex}.skorowidz-unit-name{color:var(--text-head);font-size:16px;font-weight:600}.skorowidz-unit-faction{color:var(--text-dim);font-size:12.5px}.skorowidz-ability-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;display:grid}.skorowidz-ability-tile{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0;padding:16px 18px}.skorowidz-ability-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:10px;padding-bottom:8px;display:flex}.skorowidz-ability-header .ability-modal-name{flex:1;font-size:15.5px}.skorowidz-ability-body{color:var(--text);flex-direction:column;gap:8px;font-size:13.5px;line-height:1.6;display:flex}.skorowidz-ability-units{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}.skorowidz-ability-units-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;font-size:12px}.skorowidz-ability-units ul{flex-direction:column;gap:4px;padding-left:18px;display:flex}.skorowidz-ability-units li{color:var(--text);font-size:13px}.skorowidz-ability-units li::marker{color:var(--gold-dim)}.skorowidz-ability-units-faction{color:var(--text-dim);font-size:12px}.skorowidz-ability-units-variant{color:var(--gold-light);font-size:12.5px}.skorowidz-ability-unit-link{color:var(--text-head);background:0 0;padding:0;font-size:13px;font-weight:600;transition:color .15s}.skorowidz-ability-unit-link:hover{color:var(--gold-light);text-decoration:underline}@media (width<=640px){.app-header-inner{flex-wrap:wrap;row-gap:8px;padding:10px 12px}.app-logo{order:1}.lang-switcher{order:2;margin-left:auto}.app-tabs{order:3;width:100%}.app-tab{text-align:center;flex:1}.app-title{font-size:18px}.app-body{padding:0 12px 24px}.config-bar{padding:10px 14px}.config-summary{flex-wrap:wrap;row-gap:4px}.config-summary-change{text-align:right;width:100%;margin-left:0}.catalogue-controls{flex-direction:column;align-items:stretch}.search-input{width:100%}.cheat-sheet-grid,.skorowidz-ability-grid{grid-template-columns:1fr}.skorowidz-search{max-width:none}.unit-card-title-row{padding-right:26px}.cheat-card--wide .cheat-table thead{display:none}.cheat-card--wide .cheat-table,.cheat-card--wide .cheat-table tbody,.cheat-card--wide .cheat-table tr,.cheat-card--wide .cheat-table td{width:100%;display:block}.cheat-card--wide .cheat-table tr{border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:10px;padding:10px 12px}.cheat-card--wide .cheat-table td{white-space:normal;border:none;padding:4px 0}.cheat-card--wide .cheat-table td:before{text-transform:uppercase;letter-spacing:.4px;color:var(--text-dim);margin-bottom:2px;font-size:11px;display:block}.cheat-card--wide .cheat-table td:first-child:before{content:"Zastosowanie"}.cheat-card--wide .cheat-table td:nth-child(2):before{content:"Koszt"}.cheat-card--wide .cheat-table td:nth-child(3):before{content:"Warunek / efekt"}}@media (width<=420px){.stat-label{font-size:8px}.stat-value{padding:3px 1px;font-size:11px}}.print-roster{display:none}@media print{.app-screen-only{display:none!important}.print-roster{color:#111;background:#fff;padding:0;font-family:Georgia,Times New Roman,serif;display:block!important}.print-roster-header h1{color:#111;margin:0 0 8px;font-size:20px}.print-roster-meta{flex-wrap:wrap;gap:4px 22px;margin-bottom:4px;font-size:12.5px;display:flex}.print-roster-date{color:#555;margin-bottom:16px;font-size:10.5px}.print-roster-errors{background:#f6f6f6;border:1px solid #999;border-radius:4px;margin-bottom:16px;padding:8px 12px;font-size:11.5px}.print-roster-errors ul{margin:4px 0 0;padding-left:18px}.print-roster-table{border-collapse:collapse;width:100%;font-size:11.5px}.print-roster-table th,.print-roster-table td{text-align:left;vertical-align:top;border:1px solid #999;padding:5px 8px}.print-roster-table thead{background:#eee}.print-roster-table tfoot td{border-top:2px solid #111;font-weight:700}.print-warlord-mark{font-weight:700}.print-extras-list{margin:0;padding-left:16px}.print-extras-cost{color:#555}.print-stat-cards{flex-direction:column;gap:14px;margin-top:18px;display:flex}.print-stat-card{break-inside:avoid;border:1px solid #999;border-radius:4px;padding:10px 12px}.print-stat-card h3{color:#111;margin:0 0 8px;font-size:14px}.print-stat-line{margin:6px 0 0;font-size:11px}.print-summoned-note{color:#555;font-style:italic}.print-stat-table,.print-weapons-table{border-collapse:collapse;width:100%;margin-top:6px;font-size:10.5px}.print-stat-table th,.print-stat-table td,.print-weapons-table th,.print-weapons-table td{text-align:center;border:1px solid #bbb;padding:3px 6px}.print-weapons-table td:first-child,.print-weapons-table th:first-child{text-align:left}.print-stat-table thead,.print-weapons-table thead{background:#eee}@page{margin:14mm}}
