:root{color:#eef4ff;font-synthesis:none;text-rendering:optimizelegibility;background:#0b1018;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 0 0,#4a6eb447,#0000 30rem),linear-gradient(135deg,#0b1018,#121a27 50%,#090d13);min-width:320px;margin:0}button,input,select{font:inherit}button,.file-button{color:#eef4ff;cursor:pointer;background:#ffffff0f;border:1px solid #9fb5db2e;border-radius:14px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1rem;transition:all .15s;display:inline-flex}button:hover,.file-button:hover{border-color:#7ba9ff99;transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.45;transform:none}input,select{color:#eef4ff;background:#060a10b8;border:1px solid #9fb5db38;border-radius:12px;width:100%;padding:.72rem .85rem}label{color:#b9c6dd;gap:.45rem;display:grid}table{border-collapse:collapse;width:100%;min-width:520px}th,td{text-align:left;border-bottom:1px solid #9fb5db1f;padding:.45rem}th{color:#9fb5db;text-transform:uppercase;font-size:.78rem}.app{max-width:1440px;padding:1rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px));margin:0 auto}.app-footer{text-align:center;border-top:1px solid #9fb5db1a;margin-top:2rem;padding:1.25rem 0 .5rem}.app-footer p{margin:.35rem 0;font-size:.82rem;line-height:1.5}.app-footer-studio{color:#c8d6ef}.app-footer-source a{color:#8eb4ff;text-decoration:none}.app-footer-source a:hover{text-decoration:underline}.app-header{background:#101723d1;border:1px solid #9fb5db24;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.45rem 1rem;margin-bottom:.65rem;padding:.55rem .75rem;display:flex;box-shadow:0 12px 40px #0000002e}.app-header-main{flex-wrap:wrap;align-items:center;gap:.35rem;min-width:0;display:inline-flex}.app-header-brand{color:#eef4ff;letter-spacing:.01em;text-transform:none;font-size:.92rem;font-weight:700}.edition-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:.12rem .45rem;font-size:.62rem;font-weight:800}.edition-badge-10{color:#c8d8f2;background:#8fa6c729;border:1px solid #8fa6c747}.edition-badge-11{color:#f2d39a;background:#c4923a2e;border:1px solid #e2b05859}.edition-countdown{background:linear-gradient(90deg,#c4923a24,#8fa6c714);border:1px solid #e2b05838;border-radius:10px;flex-wrap:wrap;justify-content:center;align-items:center;gap:.45rem .75rem;margin:0 0 .65rem;padding:.45rem .75rem;display:flex}.edition-countdown-label{color:#d7c39a;font-size:.76rem}.edition-countdown-value{color:#f6e3b8;font-variant-numeric:tabular-nums;font-size:.82rem}.edition-countdown-link{color:#f2d39a;font-size:.76rem;font-weight:700;text-decoration:none}.edition-countdown-link:hover{text-decoration:underline}.home-panel{position:relative}.edition-corner-btn{color:#f2d39a;letter-spacing:.03em;z-index:2;background:#c4923a29;border:1px solid #e2b05861;border-radius:999px;padding:.28rem .65rem;font-size:.72rem;font-weight:800;text-decoration:none;position:absolute;top:.65rem;right:.75rem}.edition-corner-btn:hover{color:#fff1cc;background:#c4923a47}.edition-preview-note{max-width:42rem;margin:0 0 .65rem}.edition-rosters-unavailable{margin:.35rem 0 0}.rules-diagram{margin:.65rem 0 .35rem}.rules-diagram img{border:1px solid #b0c2d92e;border-radius:10px;width:100%;max-width:100%;height:auto;display:block}.rules-html-content{gap:.35rem;display:grid}.nav-btn:disabled,.bottom-nav-btn:disabled{cursor:not-allowed;opacity:.45}.app-header-meta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.55rem;margin-left:auto;display:inline-flex}.app-header-updated{color:#9fb5db;white-space:nowrap;font-size:.76rem}.app-header-actions{align-items:center;gap:.35rem;display:inline-flex}.shell{place-items:center;min-height:100vh;display:grid}.panel{background:#101723d1;border:1px solid #9fb5db24;border-radius:28px;box-shadow:0 24px 90px #00000047}.admin-entry-btn{color:#9fb5db8c;background:#8fa6c70f;border:1px solid #8fa6c71f;border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;display:inline-flex}.admin-entry-btn:hover,.admin-entry-btn.active{color:#9fc1ff;background:#77a7ff1f;border-color:#77a7ff40}.feedback-entry-btn:hover{color:#9fd4ff}.feedback-modal{width:min(520px,100vw - 2rem)}.feedback-field{gap:.35rem;font-size:.82rem;display:grid}.feedback-field input,.feedback-field textarea{resize:vertical;font-family:inherit;font-size:.9rem}.feedback-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.feedback-error{color:#ff9b9b;margin:0;font-size:.82rem}.feedback-success{margin:0}.top-actions{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.55rem;margin-bottom:1rem;display:grid}.nav-btn{flex-direction:row}.nav-label-short,.bottom-nav{display:none}.admin-panel{background:#0b1220b8;border:1px solid #8fa6c72e;border-radius:18px;gap:1rem;padding:1.2rem;display:grid}.admin-tabs{flex-wrap:wrap;gap:.45rem;display:flex}.admin-tab{color:#9fb5db;background:#8fa6c70f;border:1px solid #8fa6c724;border-radius:999px;padding:.45rem .85rem;font-size:.82rem;font-weight:600}.admin-tab.active{color:#dbe7f5;background:#77a7ff24;border-color:#77a7ff47}.admin-section-heading h3{margin:0 0 .2rem;font-size:1.05rem}.admin-feedback-list{gap:.75rem;display:grid}.admin-feedback-card{background:#ffffff08;border:1px solid #8fa6c724;border-radius:14px;gap:.45rem;padding:.85rem .95rem;display:grid}.admin-feedback-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem .75rem;display:flex}.admin-feedback-head time{color:#9fb5db;white-space:nowrap;font-size:.78rem}.admin-feedback-meta{color:#c8d8f2;margin:0;font-size:.84rem}.admin-feedback-meta span{color:#9fb5db}.admin-feedback-message{color:#eef4ff;white-space:pre-wrap;margin:0;font-size:.92rem;line-height:1.45}.admin-feedback-tech{word-break:break-word;margin:0;font-size:.74rem}.admin-login{max-width:28rem}.admin-login h2{margin:0 0 .35rem}.admin-login-error{color:#ffb4b4;margin:0;font-size:.88rem}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.85rem;display:grid}.admin-grid label,.admin-checks label{color:#c8d8f2;gap:.35rem;font-size:.82rem;font-weight:600;display:grid}.admin-grid input{color:#f4f8ff;background:#ffffff0d;border:1px solid #8fa6c733;border-radius:10px;padding:.65rem .75rem}.admin-checks,.admin-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.admin-checks label{align-items:center;font-weight:500;display:flex}.admin-output{color:#d6e5ff;white-space:pre-wrap;background:#00000038;border:1px solid #8fa6c729;border-radius:12px;padding:.8rem;overflow:auto}.admin-progress-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.85rem;display:grid}.admin-job-summary{color:#c8d8f2;background:#77a7ff12;border:1px solid #77a7ff29;border-radius:12px;flex-wrap:wrap;align-items:center;gap:.55rem 1rem;padding:.7rem .8rem;font-size:.82rem;display:flex}.admin-progress-card{background:#ffffff0a;border:1px solid #8fa6c724;border-radius:14px;gap:.45rem;padding:.8rem;display:grid}.admin-progress-head{color:#d8e6ff;justify-content:space-between;align-items:center;gap:.75rem;font-size:.86rem;display:flex}.admin-progress-head span{color:#9fb5db;white-space:nowrap;font-size:.78rem}.admin-progress-track{background:#8fa6c71f;border-radius:999px;height:8px;overflow:hidden}.admin-progress-track span{border-radius:inherit;background:linear-gradient(90deg,#77a7ff,#73f0bd);height:100%;transition:width .25s;display:block}.bottom-nav-btn{color:#7f93b8;background:0 0;border:none;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:.22rem;min-height:0;padding:.35rem .15rem;font-size:.68rem;font-weight:600;line-height:1.1;display:inline-flex;transform:none}.bottom-nav-btn:hover{color:#b8c8e4;background:0 0;border-color:#0000;transform:none}.bottom-nav-btn svg{flex-shrink:0}.bottom-nav-btn.active,.bottom-nav-btn.active svg{color:#007aff}.active-roster-bar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:30;background:#101723e6;border:1px solid #9fb5db2e;border-radius:18px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.7rem .9rem;display:flex;position:sticky;top:.5rem;box-shadow:0 12px 36px #00000038}.active-roster-bar>div:first-child{gap:.15rem;display:grid}.active-roster-bar span{color:#9fb5db;font-size:.88rem}.primary,.selected{background:linear-gradient(135deg,#4776e6,#8e54e9);border-color:#ffffff47}.full{width:100%}.panel{padding:clamp(1rem,2vw,1.4rem)}.layout{grid-template-columns:minmax(0,1fr) minmax(320px,390px);gap:1rem;display:grid}.section-title{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.section-title h2,.section-title h3,.unit-card h3,.rule-card h3{margin:0}.stacked{flex-direction:column;align-items:stretch}.search{align-items:center;min-width:min(100%,320px);display:flex;position:relative}.search svg{position:absolute;left:.75rem}.search input{padding-left:2.3rem}.faction-groups{gap:.45rem;display:grid}.create-roster-import{margin-bottom:.35rem}.create-entry{gap:1.25rem;max-width:980px;margin:0 auto;padding:clamp(.5rem,2vw,1rem) 0 1.5rem;display:grid}.create-entry-header{text-align:center;gap:.35rem;display:grid}.create-entry-header h2{margin:0;font-size:clamp(1.55rem,4vw,2rem)}.create-entry-header .muted{margin:0;font-size:.95rem}.create-entry-cards{gap:.85rem;display:grid}.create-entry-card{color:#e8f0fa;text-align:center;background:linear-gradient(#121c2ef5,#0a1220fa);border:1px solid #5b8fff47;border-radius:22px;place-items:center;gap:.45rem;width:100%;padding:1.35rem 1.1rem 1.2rem;transition:border-color .16s,transform .16s,box-shadow .16s;display:grid;box-shadow:inset 0 1px #ffffff0a,0 14px 40px #00000038}.create-entry-card:hover{border-color:#7aa8ff8c;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff0f,0 18px 48px #2456be2e}.create-entry-card strong{font-size:1.05rem}.create-entry-desc{color:#8fa6c7;font-size:.88rem;line-height:1.35}.create-entry-icon{color:#8eb6ff;background:#4776e624;border:1px solid #7aa8ff47;border-radius:999px;justify-content:center;align-items:center;width:3.4rem;height:3.4rem;margin-bottom:.15rem;display:inline-flex}.create-entry-or{color:#6f86aa;letter-spacing:.08em;text-transform:lowercase;justify-content:center;align-items:center;gap:.75rem;font-size:.82rem;font-weight:700;display:flex}.create-entry-or:before,.create-entry-or:after{content:"";background:#7aa8ff2e;flex:1;max-width:8rem;height:1px}.create-entry-card-build{place-items:stretch stretch;padding-bottom:1rem}.create-entry-preview{text-align:left;background:#040a126b;border:1px solid #7aa8ff24;border-radius:16px;gap:.55rem;margin-top:.35rem;padding:.75rem;display:grid}.create-entry-preview-label{color:#8fa6c7;letter-spacing:.04em;text-transform:uppercase;font-size:.78rem;font-weight:700}.create-entry-preview-search{pointer-events:none;width:100%;min-width:0}.create-entry-preview-search input{cursor:default;opacity:.92;background:#080e18e0;width:100%}.create-entry-faction-strip{scrollbar-width:thin;gap:.45rem;padding-bottom:.15rem;display:flex;overflow-x:auto}.create-entry-faction-strip .faction-tile-static{flex:0 0 4.2rem}.create-entry-back{color:#9fb5db;background:0 0;border:0;align-items:center;gap:.35rem;margin-bottom:.65rem;padding:0;font-size:.88rem;display:inline-flex}.create-entry-back:hover{color:#dbe7f5}.create-roster-manual .section-title{margin-top:0}@media (width>=768px){.create-entry{gap:1.5rem;padding-top:1rem}.create-entry-header{text-align:left}.create-entry-cards{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:stretch;gap:1rem}.create-entry-or{writing-mode:horizontal-tb;flex-direction:column;gap:.55rem;padding:0 .35rem}.create-entry-or:before,.create-entry-or:after{width:1px;max-width:none;height:auto;min-height:3rem;max-height:none}.create-entry-card{min-height:100%;padding:1.6rem 1.25rem 1.35rem}.create-entry-card-build{padding-bottom:1.15rem}.create-entry-preview{margin-top:auto;padding:.85rem}.create-entry-faction-strip{flex-wrap:wrap;overflow:visible}.create-entry-faction-strip .faction-tile-static{flex:0 0 calc(25% - .34rem)}}@media (width>=1024px){.create-entry-faction-strip .faction-tile-static{flex-basis:calc(20% - .36rem)}}.faction-group{margin-top:0}.faction-tile-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:.4rem;display:grid}.faction-tile{color:#fff;text-align:left;text-shadow:0 1px 2px #00000073;border-color:#ffffff2e;border-radius:12px;justify-content:flex-start;align-items:center;gap:.4rem;min-height:2.55rem;padding:.22rem .45rem;font-size:.82rem;line-height:1.2;display:flex;overflow:hidden}.faction-tile:hover{filter:brightness(1.08);border-color:#ffffff61;transform:none}.faction-tile-logo{object-fit:contain;flex-shrink:0;align-self:center;width:2.1rem;height:2.1rem}.faction-tile-label{flex:1;min-width:0}.faction-tile.selected{border-color:#ffffffb8;box-shadow:inset 0 0 0 1px #ffffff47,0 0 0 2px #ffffff52}.faction-tile-card{aspect-ratio:auto;text-align:center;min-height:5.5rem;text-shadow:none;border:1px solid #ffffff24;border-radius:14px;flex-direction:column;justify-content:center;gap:.45rem;padding:.65rem .35rem .55rem;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0f}.faction-tile-card:hover{filter:brightness(1.06);border-color:#ffffff52;transform:none}.faction-tile-icon-wrap{flex:1;justify-content:center;align-items:center;width:100%;min-height:2.85rem;display:flex;position:relative}.faction-tile-icon-wrap:before{display:none}.faction-tile-icon-wrap.compact{min-height:2rem}.faction-tile-card .faction-tile-logo{object-fit:contain;z-index:1;filter:drop-shadow(0 1px 2px #00000059);width:2.85rem;height:2.85rem;position:relative}.faction-tile-icon-wrap.compact .faction-tile-logo{width:1.85rem;height:1.85rem}.faction-tile-card .faction-tile-label{color:#fff;flex:unset;letter-spacing:.01em;-webkit-line-clamp:2;line-clamp:2;text-overflow:unset;text-shadow:0 1px 2px #00000073;white-space:normal;-webkit-box-orient:vertical;padding:0 .2rem;font-size:.72rem;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.faction-tile-card.selected{border-color:#007aff;box-shadow:0 0 0 2px #007aff57,inset 0 0 0 1px #007aff2e}.faction-tile-static{cursor:default;pointer-events:none;flex:0 0 4.35rem}.faction-tile-check{color:#fff;z-index:2;background:#007aff;border-radius:999px;justify-content:center;align-items:center;width:1.1rem;height:1.1rem;display:inline-flex;position:absolute;top:.32rem;right:.32rem;box-shadow:0 0 10px #007aff73}.faction-tile-fallback{color:#fff;letter-spacing:.04em;z-index:1;background:#00000038;border:1px solid #ffffff3d;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2.85rem;height:2.85rem;font-size:.78rem;font-weight:800;display:inline-flex;position:relative}.faction-tile-icon-wrap.compact .faction-tile-fallback{width:1.85rem;height:1.85rem;font-size:.62rem}.faction-tile-card[data-faction-id=UN] .faction-tile-logo{filter:grayscale()brightness(1.35)drop-shadow(0 1px 2px #00000059)}.create-roster-manual{position:relative}.create-roster-manual .create-roster-main{min-width:0}.create-roster-heading h2{margin:0 0 .75rem;font-size:clamp(1.35rem,4vw,1.75rem)}.create-roster-search{width:100%;min-width:0;margin-bottom:.65rem}.create-roster-import-btn{color:#8eb6ff;background:#080e18b8;border:1px solid #5b8fff57;border-radius:14px;justify-content:center;align-items:center;gap:.45rem;width:100%;margin-bottom:.85rem;padding:.65rem .85rem;font-weight:700;display:inline-flex}.create-roster-import-btn:hover{background:#4776e61f;border-color:#7aa8ff8c}.create-roster-setup-sheet{display:none}.army-setup-panel,.army-setup-fields{gap:.85rem;display:grid}.army-setup-panel h2{margin:0;font-size:1.15rem}.army-setup-field{gap:.35rem;display:grid}.army-setup-label{color:#7f93b8;letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:800}.army-setup-select{color:#dbe7f5;background:#080e18d1;border:1px solid #7aa8ff29;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.55rem;min-height:3rem;padding:.65rem .75rem;display:grid;position:relative}.army-setup-select svg:first-child{color:#8eb6ff}.army-setup-select svg:last-child{color:#7f93b8}.army-setup-select select{cursor:pointer;opacity:0;width:100%;height:100%;position:absolute;inset:0}.army-setup-select-value{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:700;overflow:hidden}.army-setup-rules{gap:.55rem;padding:.15rem .55rem .65rem;display:grid}.army-setup-detachment-details{margin-top:.15rem}.army-setup-detachment-summary .collapsible-summary-title{color:#eef4ff}.army-setup-detachment-current{color:#9fb5db;font-size:.78rem;font-weight:500}.army-setup-rules .detachment-rules{background:0 0;border:0;margin-top:0;padding:0}.army-setup-create{justify-content:center;align-items:center;gap:.5rem;min-height:3rem;margin-top:.15rem;font-size:1rem;display:inline-flex}.create-roster-manual .faction-tile-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.55rem}.create-roster-manual .faction-tile-card .faction-tile-label{font-size:.68rem}.create-mobile-setup{display:none}@media (width<=767px){.app{padding-bottom:calc(4.75rem + env(safe-area-inset-bottom,0px))}.top-actions{display:none}.bottom-nav{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:.28rem .35rem calc(.35rem + env(safe-area-inset-bottom,0px));z-index:50;background:#0a0f18f5;border-top:1px solid #8fa6c724;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}body.create-mobile-setup-mode .app-header,body.create-mobile-setup-mode .top-actions,body.create-mobile-setup-mode .bottom-nav,body.create-mobile-setup-mode .active-roster-bar,body.roster-mobile-mode .app-header,body.roster-mobile-mode .active-roster-bar{display:none}body.create-mobile-setup-mode .app{padding-bottom:.65rem}.create-roster-manual.layout{display:block}.create-roster-manual .create-roster-main{border-bottom-right-radius:0;border-bottom-left-radius:0;padding-bottom:0}.create-roster-setup-desktop{display:none}.create-roster-manual .faction-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.create-roster-manual .faction-tile-card{border-radius:14px;gap:.35rem;min-height:6.75rem;padding:.7rem .35rem .6rem}.create-roster-manual .faction-tile-icon-wrap{min-height:2.75rem}.create-roster-manual .faction-tile-card .faction-tile-logo{width:2.65rem;height:2.65rem}.create-roster-manual .faction-tile-icon-wrap.compact .faction-tile-logo,.create-roster-manual .faction-tile-card .faction-tile-fallback{width:2.65rem;height:2.65rem;font-size:.68rem}.create-roster-manual .faction-tile-card .faction-tile-label{font-size:.72rem;line-height:1.15}.create-roster-manual .faction-tile-check{width:1.1rem;height:1.1rem;top:.28rem;right:.28rem}.create-mobile-setup{z-index:45;background:linear-gradient(#0b1018 0%,#101722 100%);flex-direction:column;min-height:100dvh;padding:.65rem .65rem 0;display:flex;position:fixed;inset:0}.create-mobile-setup-body{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;touch-action:pan-y;flex:1;min-height:0;padding-bottom:.75rem;overflow:hidden auto}.create-mobile-setup-hero{align-items:center;gap:.75rem;margin:.35rem 0 .85rem;display:flex}.create-mobile-setup-emblem{border:1px solid #ffffff2e;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:3.4rem;height:3.4rem;display:inline-flex;position:relative}.create-mobile-setup-emblem .faction-tile-logo{width:2rem;height:2rem}.create-mobile-setup-kicker{color:#8fa6c7;letter-spacing:.08em;text-transform:uppercase;margin:0 0 .15rem;font-size:.72rem;font-weight:800}.create-mobile-setup-hero h2{margin:0;font-size:1.15rem}.create-mobile-setup-name{gap:.35rem;margin-bottom:.75rem;display:grid}.create-mobile-setup-name input{font-size:.95rem;font-weight:600}.army-setup-panel-mobile{gap:.75rem}.army-setup-panel-mobile .army-setup-fields{gap:.65rem}.army-setup-panel-mobile .army-setup-rules{max-height:none}.create-mobile-setup-footer{padding:.65rem 0 calc(.75rem + env(safe-area-inset-bottom,0px));background:linear-gradient(#0b101800 0%,#0b1018eb 24%,#0b1018 100%);flex-shrink:0;position:sticky;bottom:0}.create-mobile-setup-footer .army-setup-create{min-height:3rem}}@media (width>=768px){.create-mobile-setup{display:none!important}.create-roster-manual .create-roster-main{padding-bottom:0}.create-roster-manual .create-roster-main .create-roster-heading,.create-roster-manual .create-roster-search,.create-roster-manual .create-roster-import-btn{max-width:none}.create-roster-setup-desktop{align-self:start;position:sticky;top:.75rem}.create-roster-manual .faction-tile-grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr))}}@media (width>=1024px){.create-roster-manual .faction-tile-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}}.detachment-rules{color:#dbe6fb;background:#4776e61a;border:1px solid #7ba9ff38;border-radius:16px;gap:.45rem;padding:.75rem;display:grid}.detachment-rules-title{align-items:center;gap:.55rem;display:flex}.detachment-rules-logo{object-fit:contain;flex-shrink:0;width:2rem;height:2rem}.detachment-rules p{color:#b9c6dd;margin:0}.army-setup-select select optgroup{color:#8fa3c4;font-weight:700}.roster-detachment-mode{color:#8eb6ff;margin:-.15rem 0 .55rem;font-size:.82rem;font-weight:600}.roster-detachment-panel select optgroup{color:#8fa3c4;font-weight:700}.roster-detachment-panel{gap:.55rem;margin-bottom:.15rem;display:grid}.roster-detachment-field{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.45rem;max-width:460px;display:grid}.roster-detachment-field span{color:#9fb5db;white-space:nowrap;font-size:.82rem}.roster-detachment-details{background:#4776e60f;border-color:#7ba9ff2e}.roster-detachment-summary .collapsible-summary-main{align-items:center;gap:.55rem}.roster-detachment-current{color:#9fb5db;font-size:.78rem;font-weight:500}.roster-detachment-body{padding:.15rem .55rem .65rem}.roster-detachment-body .detachment-rules{background:0 0;border:0;padding:0}.rule-description{gap:.45rem;display:grid}.rule-description p{white-space:pre-line}.rule-table-wrap{overflow-x:auto}.rule-table{table-layout:fixed;border:1px solid #9fb5db2e;border-radius:10px;width:100%;min-width:0;overflow:hidden}.rule-table th,.rule-table td{text-align:left;vertical-align:top;white-space:normal;word-break:normal;overflow-wrap:anywhere;border-bottom:1px solid #9fb5db24;padding:.35rem .45rem}.rule-table th{color:#eef7df;background:#365915d1;font-size:.72rem}.rule-table td{color:#dbe6fb;background:#ffffff0a;font-size:.82rem}.rule-table th.rule-table-col-narrow,.rule-table td.rule-table-col-narrow,.rule-table col.rule-table-col-narrow{text-align:center;white-space:nowrap;width:4.5rem;max-width:5rem}.chip-grid,.cards-grid,.roster-grid,.rules-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.75rem;display:grid}.rules-panel{gap:1rem;display:grid}.rules-panel-head{align-items:flex-start;gap:.75rem 1rem}.rules-search{min-width:min(100%,320px)}.rules-search-summary{color:#9fb5db;margin:.2rem 0 0;font-size:.88rem}.rules-blocks{gap:.85rem;display:grid}.rules-block{border:1px solid #9fb5db29;border-radius:20px;padding:.85rem 1rem}.rules-block>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:.65rem;font-weight:700;list-style:none;display:flex}.rules-block-title{font-size:1.05rem}.rules-block-count{color:#9fd0ff;text-align:center;background:#9fd0ff1f;border-radius:999px;min-width:1.8rem;padding:.15rem .55rem;font-size:.82rem;font-weight:700}.rules-block-description{color:#8ea6cf;margin:.45rem 0 .75rem;font-size:.88rem}.rules-army-guide{border:1px solid #9fb5db29;border-radius:20px;gap:.65rem;padding:.9rem 1rem;display:grid}.rules-army-guide-title{margin:0;font-size:1.05rem}.rules-army-guide-lead,.rules-army-guide-note{margin:0;font-size:.88rem;line-height:1.45}.rules-army-sources{gap:.35rem;margin:0;padding:0;font-size:.84rem;list-style:none;display:grid}.rules-army-steps{gap:.3rem;margin:0;padding-left:1.15rem;font-size:.88rem;display:grid}.rules-section,.rules-mission-pack,.rules-core-group{border:1px solid #9fb5db1f;border-radius:18px;padding:.75rem .9rem}.rules-section>summary,.rules-mission-pack>summary,.rules-core-group>summary{cursor:pointer;font-weight:700;list-style:none}.rules-mission-packs,.rules-core-groups,.rules-core-list{gap:.75rem;margin-top:.75rem;display:grid}.rules-core-subgroup{border:1px solid #9fb5db1a;border-radius:16px;padding:.65rem .85rem}.rules-core-subgroup>summary{cursor:pointer;font-weight:700;list-style:none}.rules-core-subgroup-intro{color:#b8cae8;margin:.55rem 0 .65rem;font-size:.92rem}.rules-core-sublist{gap:.65rem;display:grid}.rules-core-sublist .rules-core-rule{border-color:#9fb5db14}.rules-core-sublist .rules-card-title{font-size:.98rem}.rules-link-button,.rules-card-title{color:#9fd0ff;font:inherit;text-align:left;background:0 0;border:0;margin:0;padding:0;font-weight:700}.rules-link-button{cursor:pointer;text-underline-offset:.18rem;-webkit-text-decoration:underline #9fd0ff59;text-decoration:underline #9fd0ff59}.rules-link-button:hover{color:#d6ecff}.rules-stratagem-head,.rules-mission-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.45rem .75rem;display:flex}.rules-stratagem-meta,.rules-mission-tags{color:#9fb5db;white-space:nowrap;font-size:.82rem}.rules-stratagem-legend,.rules-ability-legend,.rules-mission-body,.rules-stratagem-body,.rules-ability-preview,.rules-html-content{color:#b9c6dd;white-space:pre-line;margin:.45rem 0 0;font-size:.92rem;line-height:1.45}.rules-stratagem-type{color:#8ea6cf;margin:.35rem 0 0;font-size:.82rem}.rules-empty{color:#9fb5db;margin:0}.rules-section-note{color:#8ea6cf;margin:.35rem 0 .75rem;font-size:.88rem}.rules-section-note code{color:#b9c6dd}.rules-source-meta{color:#9fb5db;margin:.35rem 0 0;font-size:.84rem}.rules-source-link{color:#9fd0ff;margin-top:.55rem;font-size:.88rem;display:inline-block}.rules-ability-popover{width:min(92vw,640px);max-height:min(80vh,720px);overflow:auto}.muted{color:#8ea6cf}.chip{justify-content:flex-start;min-height:3.2rem}mark{color:#161616;background:#ffe16a;border-radius:.3rem}.side{align-self:start;gap:1rem;display:grid;position:sticky;top:1rem}.roster-card{color:#fff;text-align:left;text-shadow:0 1px 2px #00000073;border-color:#ffffff2e;flex-direction:column;align-items:stretch;gap:.45rem}.roster-card:hover{filter:brightness(1.08);border-color:#ffffff61;transform:none}.roster-card-header{align-items:center;gap:.5rem;display:flex}.roster-card-logo{object-fit:contain;flex-shrink:0;width:2.1rem;height:2.1rem}.roster-card-header strong{color:#fff;line-height:1.25}.roster-card-faction{color:#ffffffe0;font-size:.84rem}.roster-card .meter strong{color:#fff}.meter{gap:.4rem;min-width:170px;display:grid}.meter strong{color:#fff}.meter-bar{background:#ffffff1a;border-radius:999px;height:.65rem;overflow:hidden}.meter-bar span{border-radius:inherit;height:100%;display:block}.low .meter-bar span{background:#ffe08a}.warning .meter-bar span{background:#ffd166}.success .meter-bar span{background:#4ade80}.over .meter-bar span{background:#7a2030}.toolbar,.attach-grid,.wargear-pills,.filters-row{flex-wrap:wrap;gap:.6rem;display:flex}.filters-row{justify-content:flex-end;align-items:end}.filters-row label{min-width:220px}.file-button{position:relative}.file-button input{opacity:0;position:absolute;inset:0}.issues{color:#ffc5c5;background:#ff6b6b14;border:1px solid #ff6b6b59;border-radius:18px;margin:1rem 0;padding:.7rem 1rem}.issues p{margin:.3rem 0}.unit-list,.compact-list{gap:.55rem;display:grid}.collapsible-group{background:#ffffff06;border:1px solid #9fb5db1f;border-radius:16px;gap:.45rem;padding:.45rem;display:grid}.collapsible-group>summary{list-style:none}.collapsible-group>summary::-webkit-details-marker{display:none}.collapsible-summary{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;justify-content:space-between;align-items:center;gap:.5rem;min-height:2.5rem;padding:.45rem .55rem;display:flex}.collapsible-summary:hover{background:#7ba9ff14}.collapsible-summary-main{align-items:center;gap:.45rem;min-width:0;display:flex}.collapsible-summary-title{color:#dfe9ff;font-weight:800}.collapsible-count{color:#b9d0ff;text-align:center;background:#7ba9ff29;border-radius:999px;flex-shrink:0;min-width:1.6rem;padding:.12rem .5rem;font-size:.78rem;font-weight:700}.collapse-chevron{color:#9fb5db;flex-shrink:0;transition:transform .16s}details[open]>.collapsible-summary .collapse-chevron,details[open]>.roster-unit-summary .collapse-chevron{transform:rotate(180deg)}.roster-group{gap:.2rem}.roster-group.collapsible-group{gap:.2rem;padding:.28rem}.roster-group-summary{min-height:2.35rem;padding:.35rem .45rem}.roster-group-summary .collapsible-summary-main{flex-wrap:wrap;row-gap:.12rem}.roster-group-warlord{color:#ffe08a;font-size:.76rem;font-weight:600;line-height:1.2}.roster-group-stats{flex-shrink:0;align-items:center;gap:.3rem;display:flex}.roster-group-stat{color:#c5d4b8;font-variant-numeric:tabular-nums;white-space:nowrap;background:#eef3dc14;border-radius:999px;padding:.1rem .42rem;font-size:.78rem;font-weight:700}.roster-group-stat.accent,.roster-unit-cost.accent{color:#4da3ff;background:#007aff1f}.roster-group-icon{color:#4da3ff;flex-shrink:0}.unit-portrait{background:#080e18b8;border:1px solid #8fa6c71f;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;display:inline-flex;overflow:hidden}.unit-portrait.compact{border-radius:12px;width:3.35rem;height:3.35rem}.unit-portrait img{object-fit:cover;object-position:center 18%;width:100%;height:100%;display:block}.unit-portrait-logo{object-fit:contain!important;width:1.75rem!important;height:1.75rem!important}.unit-portrait-initials{color:#fff;font-size:1rem;font-weight:800}.roster-screen{gap:.75rem;display:grid}.roster-screen-mobile{gap:.65rem;min-height:0}@media (width<=767px){body.roster-mobile-mode{height:100dvh;overflow:hidden}body.roster-mobile-mode .app{flex-direction:column;height:100dvh;min-height:0;max-height:100dvh;padding-bottom:0;display:flex;overflow:hidden}body.roster-mobile-mode .roster-screen-mobile{-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;min-height:0;padding-bottom:calc(4.75rem + env(safe-area-inset-bottom,0px));touch-action:pan-y;flex-direction:column;flex:1;gap:0;display:flex;overflow:hidden auto}body.roster-mobile-mode .roster-mobile-sticky{z-index:45;flex-shrink:0;position:sticky;top:0}body.roster-mobile-mode .roster-mobile-content{flex:none;min-height:0;padding-top:.55rem;overflow:visible}body.roster-mobile-mode .roster-fab-add{display:none}.roster-screen-mobile summary,.roster-screen-mobile .add-unit-row,.roster-screen-mobile .roster-view-toggle-btn,.roster-screen-mobile .roster-unit-summary,.roster-screen-mobile .bunker-unit-summary,.create-mobile-setup-body button,.create-mobile-setup-body summary,.create-roster-manual .faction-tile-card,.create-roster-manual summary,.create-roster-manual button,.units-browser summary,.units-browser .unit-browser-card-summary{touch-action:pan-y}}.roster-mobile-sticky{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:40;background:#0a0f18f5;border-bottom:1px solid #8fa6c71f;gap:.55rem;margin:-.65rem -.65rem 0;padding:.65rem .65rem .55rem;display:grid;position:sticky;top:0}.roster-mobile-meter{width:100%;min-width:0}.roster-mobile-meter strong{color:#d7e4fb;font-size:.88rem}.roster-mobile-content{gap:.55rem;min-width:0;display:grid}.add-unit-actions{flex-shrink:0;justify-self:end;align-items:center;gap:.35rem;display:flex}.add-unit-view-btn,.add-unit-add-btn{white-space:nowrap;min-height:2rem;padding:.35rem .55rem;font-size:.74rem}.add-unit-add-btn:not(:disabled){color:#7ec0ff;background:#007aff29;border-color:#007aff6b}.roster-add-preview{gap:.75rem;min-width:0;display:grid}.roster-add-preview-footer{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);bottom:calc(4.75rem + env(safe-area-inset-bottom,0px));z-index:5;background:#0a0f18f0;border-top:1px solid #8fa6c71f;grid-template-columns:1fr 1fr;gap:.45rem;margin-top:.25rem;padding:.55rem 0 .15rem;display:grid;position:sticky}.roster-add-preview-back,.roster-add-preview-add{justify-content:center;align-items:center;gap:.35rem;min-height:2.5rem;display:inline-flex}.roster-add-preview-add:not(:disabled){color:#fff;background:#007aff;border-color:#007aff}.roster-screen-header{grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:.65rem;display:grid}.roster-screen-back{background:#ffffff0a;border-radius:12px;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;min-height:0;padding:0;display:inline-flex}.roster-screen-title h2{margin:0;font-size:1.15rem;line-height:1.2}.roster-screen-stats{color:#8fa3c4;font-variant-numeric:tabular-nums;margin:.2rem 0 0;font-size:.88rem}.roster-screen-points{color:#4da3ff;font-weight:700}.roster-view-toggle{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;display:grid}.roster-view-toggle-desktop{grid-template-columns:repeat(2,minmax(0,1fr));max-width:24rem;margin-top:.35rem}.roster-view-toggle-btn{color:#8fa3c4;background:0 0;border:1px solid #007aff59;border-radius:14px;justify-content:center;align-items:center;gap:.45rem;min-height:2.85rem;padding:.6rem .75rem;font-weight:700;display:inline-flex}.roster-view-toggle-btn:hover{background:#007aff14;border-color:#007aff80;transform:none}.roster-view-toggle-btn.active{color:#fff;background:#007aff;border-color:#007aff;box-shadow:0 8px 24px #007aff47}.roster-view-toggle-btn.active svg{color:#fff}.roster-screen-list,.roster-add-panel{gap:.55rem;display:grid}.roster-add-search{width:100%;min-width:0;margin-bottom:.15rem}.roster-add-search-mobile-sticky{margin:0}.roster-add-list{max-height:none}.roster-add-row{grid-template-columns:auto minmax(0,1fr) auto;gap:.65rem}.add-unit-copy{gap:.12rem;min-width:0;display:grid}.add-unit-plus{color:#4da3ff;flex-shrink:0}.roster-screen-tools{color:#8fa3c4;border-top:1px solid #8fa6c71f;padding-top:.35rem;font-size:.82rem}.roster-toolbar-mobile{gap:.45rem;margin-top:.55rem;display:grid}.roster-io-toolbar{gap:.35rem}.roster-io-toolbar button,.roster-io-toolbar .file-button{border-radius:10px;gap:.28rem;min-height:2rem;padding:.32rem .55rem;font-size:.76rem;font-weight:600}.roster-io-toolbar svg{flex-shrink:0}.roster-toolbar-mobile.roster-io-toolbar{flex-wrap:wrap;display:flex}.roster-toolbar-mobile.roster-io-toolbar button,.roster-toolbar-mobile.roster-io-toolbar .file-button{flex:calc(50% - .2rem);justify-content:center;min-width:5.5rem}.roster-toolbar-mobile button{justify-content:flex-start}.roster-screen-issues{margin:0}.roster-unit-summary{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.35rem;display:grid}.roster-unit-summary-actions{flex-shrink:0;align-items:center;gap:.15rem;display:inline-flex}.roster-unit-copy,.roster-unit-warlord{color:#8fa3c4;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;min-height:0;padding:0;display:inline-flex}.roster-unit-copy:hover:not(:disabled),.roster-unit-warlord:hover{color:#9fc1ff;background:#77a7ff1f;transform:none}.roster-unit-copy:disabled{cursor:not-allowed;opacity:.35}.roster-unit-warlord{color:#d4b347}.roster-unit-warlord:hover{color:#f0d078;background:#d4b34724}.roster-unit-summary .unit-portrait.compact{border-radius:8px;width:2rem;height:2rem}.roster-unit-heading{gap:.06rem;min-width:0;display:grid}.roster-unit-line{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.roster-unit-line strong,.roster-unit-line .roster-badge{vertical-align:baseline;display:inline}.roster-unit-heading strong{font-size:.88rem;font-weight:700;line-height:1.2}.roster-unit-meta{color:#8fa3c4;gap:.35rem;font-size:.76rem;display:none}.roster-unit-cost{color:#4da3ff;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.82rem;font-weight:700}.roster-unit-remove{color:#8fa3c4;background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;min-height:0;padding:0;display:inline-flex}.roster-unit-remove:hover{color:#ff8a8a;background:#ff6b6b1f;transform:none}.roster-layout-desktop .roster-unit-meta{display:inline-flex}.roster-desktop-subtitle{margin:.15rem 0 0}@media (width<=767px){.roster-screen{gap:.85rem;padding-bottom:.25rem}.roster-add-search-mobile-sticky{z-index:46;background:#0a0f18fa;border-radius:12px;margin-top:.1rem;position:sticky;top:0;box-shadow:0 8px 24px #00000047}.roster-add-panel{min-width:0}.roster-screen-header{align-items:center}.roster-screen-title h2{font-size:1.05rem;font-weight:700}.roster-screen-stats{font-size:.84rem}.roster-group.collapsible-group{background:#080e188c;border:1px solid #8fa6c71a;border-radius:16px;padding:.35rem}.roster-group-summary{background:0 0;border-radius:12px;min-height:2.75rem;padding-inline:.35rem}.roster-group-stat{font-size:.88rem}.roster-unit{background:#080e18d1;border:1px solid #8fa6c71a;border-radius:14px;margin-top:.35rem}.roster-unit-summary{gap:.35rem;min-height:2.5rem;padding:.35rem .45rem}.roster-unit-heading strong{font-size:.84rem}.roster-unit-cost{font-size:.8rem}.roster-badge{padding:.08rem .28rem;font-size:.58rem}.roster-unit-profile{font-size:.68rem}.roster-add-row{grid-template-columns:auto minmax(0,1fr) auto;min-height:4rem;padding:.55rem .65rem}.add-unit-group.collapsible-group{background:#080e188c;border:1px solid #8fa6c71a;border-radius:16px;padding:.35rem}}.roster-group .roster-unit{border-radius:12px}.compact-list{max-height:70vh;padding-right:.25rem;overflow:auto}.add-unit-rows{gap:.35rem;display:grid}.add-unit-row{text-align:left;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;justify-content:space-between;align-items:center;gap:.75rem;width:100%;min-height:3.5rem;padding:.45rem .65rem;display:grid}.add-unit-row:hover:not(:disabled){background:#7ba9ff1a}.add-unit-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.add-unit-meta{color:#9fb5db;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.78rem}.add-unit-group,.browser-group,.unit-browser-groups{gap:.75rem;display:grid}.browser-group{gap:.45rem}.units-browser{max-width:760px;margin-inline:auto}.units-browser-head{gap:.75rem}.units-browser-hint,.units-browser-empty{margin:0}.units-browser-faction-search{max-width:min(100%,420px)}.units-browser-toolbar{grid-template-columns:minmax(0,1fr) minmax(220px,320px);align-items:center;gap:.75rem;width:100%;display:grid}.units-browser-selected-faction{flex-wrap:wrap;align-items:center;gap:.55rem .75rem;min-width:0;display:flex}.units-browser-faction-badge{color:#fff;text-shadow:0 1px 2px #00000059;border-radius:999px;align-items:center;gap:.45rem;min-width:0;padding:.28rem .75rem .28rem .35rem;display:inline-flex}.units-browser-faction-logo{object-fit:contain;border-radius:999px;flex-shrink:0;width:1.55rem;height:1.55rem}.units-browser-faction-badge strong{text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;line-height:1.2;overflow:hidden}.units-browser-unit-search{justify-self:end;width:100%;min-width:0}.units-browser-grid{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:.45rem}.unit-browser-card-details{border-radius:16px;gap:0;padding:0;overflow:hidden}.unit-browser-card-details>summary{list-style:none}.unit-browser-card-details>summary::-webkit-details-marker{display:none}.unit-browser-card-summary{cursor:pointer;-webkit-user-select:none;user-select:none;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.45rem .55rem;min-height:3rem;padding:.55rem .7rem;display:grid}.unit-browser-card-summary:hover{background:#7ba9ff0f}.unit-browser-chevron{color:#9fb5db;flex-shrink:0;transition:transform .16s}.unit-browser-card-details[open] .unit-browser-chevron{transform:rotate(180deg)}.unit-browser-card-title{gap:.12rem;min-width:0;display:grid}.unit-browser-card-title strong{overflow-wrap:anywhere;font-size:.92rem;line-height:1.2}.unit-browser-card-meta{color:#9fb5db;font-size:.76rem;line-height:1.25}.unit-browser-compare-btn{flex-shrink:0;padding:.35rem .6rem}.unit-browser-card-body{border-top:1px solid #9fb5db1a;flex-direction:column;gap:.55rem;min-width:0;padding:.55rem .65rem .65rem;display:flex}.unit-browser-card .datasheet-compact{min-width:0;overflow:visible}.unit-browser-add-row{gap:.3rem;min-width:0;font-size:.82rem;display:grid}.unit-browser-add-row select{width:100%}.datasheet-browser .model-profiles{gap:.35rem;padding:.4rem}.datasheet-browser .model-profile-row{gap:.3rem;padding:.35rem}.datasheet-browser .model-profile-meta strong{font-size:.78rem}.datasheet-browser .model-profile-badges span{padding:.14rem .38rem;font-size:.68rem}.datasheet-browser .stat-grid{gap:.18rem}.datasheet-browser .stat-box{min-height:2.1rem;padding:.1rem .05rem}.datasheet-browser .stat-box span{font-size:.54rem}.datasheet-browser .stat-box strong{font-size:.8rem}.datasheet-browser .weapon-block h4,.datasheet-browser .datasheet-section h4{padding:.24rem .45rem;font-size:.68rem}.datasheet-browser .datasheet-section>div{gap:.28rem;padding:.4rem .45rem;font-size:.78rem}.datasheet-browser .ability-entry{line-height:1.35}.datasheet-browser .datasheet-browser-more{margin:0;font-size:.74rem}.datasheet-browser .leader-links.readonly{padding:0 .45rem .35rem;font-size:.74rem}.datasheet-browser .keyword-row{gap:.25rem;padding:.35rem .45rem;font-size:.68rem}.datasheet-browser .weapon-table{width:30rem;min-width:30rem}.datasheet-browser .weapon-table th,.datasheet-browser .weapon-table td{padding:.22rem .28rem;font-size:.68rem}.datasheet-browser .weapon-ability-chip{padding:.08rem .32rem;font-size:.6rem}.compare-picks{flex-wrap:wrap;align-items:center;gap:.45rem;margin-bottom:.85rem;display:flex}.compare-pick{color:#d9e7ff;background:#7ba9ff24;border-radius:999px;align-items:center;gap:.35rem;padding:.28rem .55rem .28rem .7rem;font-size:.82rem;font-weight:700;display:inline-flex}.compare-pick-remove{color:#eef4ff;cursor:pointer;background:#ffffff14;border:0;border-radius:999px;justify-content:center;align-items:center;width:1.35rem;height:1.35rem;padding:0;font-size:.95rem;line-height:1;display:inline-flex}.compare-hint{color:#9fb5db;font-size:.82rem}.compare-header{gap:.25rem;display:grid}.compare-header h3{margin:0;font-size:1rem}.compare-verdict{color:#b9c6dd;margin:0;font-size:.88rem}.compare-card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem .65rem;display:flex}.compare-card-meta{color:#9fb5db;font-variant-numeric:tabular-nums;font-size:.82rem}.compare-card-body{min-width:0;overflow:visible}.compare-card-body .datasheet-compact{overflow:visible}.simulation-line-label{color:#dfe9ff;width:100%;font-weight:800}.add-unit-group .collapsible-summary-title{font-size:.9rem}.roster-group[open]{gap:.06rem}.roster-group[open] .roster-unit:not(:has(.roster-unit-details[open])){border-radius:14px}.roster-group[open] .roster-unit:not(:has(.roster-unit-details[open])) .roster-unit-summary{grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.35rem;min-height:2rem;padding:.22rem .35rem}.roster-group[open] .roster-unit:not(:has(.roster-unit-details[open])) .roster-unit-heading strong{font-size:.84rem}.roster-group[open] .roster-unit:not(:has(.roster-unit-details[open])) .roster-unit-profile{font-size:.66rem}.roster-group[open] .roster-unit:not(:has(.roster-unit-details[open])) .roster-badge{font-size:.62rem}.add-unit-group[open]{gap:.35rem;padding:.35rem}.add-unit-group[open] .collapsible-summary{min-height:2.1rem;padding:.32rem .45rem}.add-unit-group[open] .add-unit-rows{gap:.08rem}.add-unit-group[open] .add-unit-row{border-radius:8px;gap:.35rem;min-height:1.55rem;padding:.16rem .36rem}.add-unit-group[open] .add-unit-name{font-size:.76rem;line-height:1.1}.add-unit-group[open] .add-unit-meta{font-size:.68rem}.roster-unit{gap:0;padding:0;overflow:hidden}.roster-unit:not(:has(.roster-unit-details[open])){background:#ffffff08}.roster-unit-details[open]{background:#ffffff0b}.roster-unit-details>summary{list-style:none}.roster-unit-details>summary::-webkit-details-marker{display:none}.roster-unit-summary{cursor:pointer;-webkit-user-select:none;user-select:none;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.45rem;min-height:2.25rem;padding:.3rem .45rem;display:grid}.roster-unit-summary:hover{background:#ffffff0a}.roster-unit-title-row{flex-wrap:wrap;align-items:center;gap:.35rem;min-width:0;display:flex}.roster-unit-profile{color:#8fa3c4;font-variant-numeric:tabular-nums;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;font-size:.68rem;line-height:1.15;display:-webkit-box;overflow:hidden}.roster-unit-details[open] .roster-unit-profile{display:none}.roster-unit-meta{color:#9fb5db;align-items:center;gap:.15rem;font-size:.76rem;line-height:1.2;display:none}.roster-unit-cost,.roster-unit-wounds{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.roster-unit-wounds{color:#b0c2d9}.roster-unit-wounds:before{color:#7f93b8;content:"·";margin:0 .35rem;font-weight:400}.roster-unit-enhancement{color:#4da3ff;text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;line-height:1.2;display:block;overflow:hidden}.roster-enhancement-usage{color:#8fa3c4;font-size:.72rem;font-weight:600}.roster-enhancement-note{margin:0;font-size:.82rem}.roster-enhancement-block{gap:.55rem;display:grid}.roster-enhancement-detail{background:#4776e614;border:1px solid #7aa8ff2e;border-radius:12px;gap:.35rem;padding:.65rem .75rem;display:grid}.roster-enhancement-detail-head{justify-content:space-between;align-items:baseline;gap:.55rem;display:flex}.roster-enhancement-detail-head strong{font-size:.88rem}.roster-enhancement-legend{color:#b9c6dd;margin:0;font-size:.8rem;line-height:1.35}.roster-enhancement-rules{color:#dbe7f5;margin:0;font-size:.82rem;line-height:1.4}.roster-unit-cost-breakdown{color:#8fa3c4;font-variant-numeric:tabular-nums;margin:0;font-size:.8rem}.roster-unit-cost-breakdown .accent{color:#4da3ff;font-weight:700}.roster-layout-desktop .roster-unit-meta .roster-unit-enhancement{display:inline}.roster-layout-desktop .roster-unit-meta .roster-unit-enhancement:before{color:#7f93b8;content:"·";margin:0 .35rem}.roster-unit-enhancement-compact{color:#4da3ff;text-overflow:ellipsis;white-space:nowrap;line-height:1.15;display:none;overflow:hidden}.roster-unit-role{white-space:nowrap}.roster-unit-role:before{color:#7f93b8;content:"·";margin:0 .35rem}.roster-badge{letter-spacing:.03em;text-transform:uppercase;border-radius:999px;flex-shrink:0;padding:.2rem .45rem;font-size:.68rem;font-weight:800;line-height:1}.warlord-badge{color:#ffe08a;background:#ffd1662e}.supreme-badge{color:#ffc5c5;background:#ff6b6b29}.legend-badge{color:#dcc4ff;vertical-align:middle;background:#ba8cff29;margin-left:.35rem}.unit-card-legend{border-color:#ba8cff47}.unit-browser-card-title .legend-badge{margin-left:.4rem;padding:.16rem .38rem;font-size:.58rem}.add-unit-name .legend-badge{margin-left:.35rem;font-size:.58rem}.roster-add-preview-legend{align-items:center;gap:.35rem;margin:0 0 .45rem;font-size:.78rem;display:flex}.compare-pick-faction{color:#d9e7ffb8;font-weight:600}.roster-unit-body{border-top:1px solid #9fb5db1a;gap:.4rem;padding:.4rem .5rem .55rem;display:grid}.roster-unit-controls{gap:.45rem;display:grid}.roster-inline-field{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.35rem;display:grid}.roster-inline-field span{color:#9fb5db;white-space:nowrap;font-size:.82rem}.roster-inline-field select{padding:.45rem .6rem}.roster-inline-field select:disabled{cursor:not-allowed;opacity:.72}.roster-size-block{gap:.35rem;display:grid}.roster-unit-composition{color:#b8c9e6;flex-wrap:wrap;gap:.35rem .5rem;padding-left:.1rem;font-size:.82rem;display:flex}.roster-unit-composition span{background:#9fb5db1a;border-radius:999px;padding:.18rem .55rem}.roster-unit-composition-hint{margin:0;padding-left:.1rem;font-size:.8rem}.roster-leader-box{padding:.55rem .65rem}.roster-leader-box button,.roster-leader-box strong{font-size:.82rem}.roster-attach-grid button{padding:.45rem .65rem;font-size:.82rem}.roster-attach-sections{gap:.65rem;display:grid}.roster-attach-block{gap:.35rem;display:grid}.roster-attach-label{color:#9fb5db;font-size:.8rem;font-weight:600}.base-size-compact{gap:.35rem;padding:.5rem .6rem}.base-size-compact>strong{font-size:.82rem}.base-size-compact span{padding:.25rem .45rem;font-size:.78rem}.datasheet-roster{border-radius:10px;min-width:0;max-width:100%;font-size:.88rem;overflow:visible}.datasheet-roster .model-profiles{gap:.35rem;padding:.45rem}.datasheet-roster .model-profile-row{gap:.3rem;padding:.4rem}.datasheet-roster .model-profile-meta strong{font-size:.82rem}.datasheet-roster .model-profile-meta span{padding:.15rem .4rem;font-size:.72rem}.datasheet-roster .stat-grid{grid-template-columns:repeat(7,minmax(34px,1fr));gap:.3rem}.datasheet-roster .stat-box{min-height:2.35rem}.datasheet-roster .stat-box span{font-size:.6rem}.datasheet-roster .stat-box strong{font-size:.95rem}.datasheet-roster .weapon-table,.datasheet-compact.datasheet-roster .weapon-table{table-layout:fixed;width:100%;min-width:0}.datasheet-compact.datasheet-roster .weapon-col-name{width:32%}.datasheet-compact.datasheet-roster .weapon-col-stat{width:11.3%}.datasheet-compact.datasheet-roster .weapon-block-compact-stats .weapon-col-name{width:30%}.datasheet-compact.datasheet-roster .weapon-block-compact-stats .weapon-col-stat{width:11.6%}.datasheet-roster .weapon-scroll{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.datasheet-roster .ability-entry{overflow-wrap:anywhere;word-break:break-word}.datasheet-roster .datasheet-side-grid{grid-template-columns:minmax(0,1fr)}@media (width<=767px){.roster-mobile-content .unit-card,.roster-unit-body,.roster-add-panel .unit-card{min-width:0;overflow:visible}.datasheet-roster .stat-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem}.datasheet-roster .stat-box{min-height:2rem;padding:.1rem}.datasheet-roster .stat-box span{font-size:.55rem}.datasheet-roster .stat-box strong{font-size:.82rem}.datasheet-roster .weapon-table,.datasheet-compact.datasheet-roster .weapon-table{table-layout:fixed;font-size:.64rem}.datasheet-roster .weapon-table th,.datasheet-roster .weapon-table td,.datasheet-compact.datasheet-roster .weapon-table th,.datasheet-compact.datasheet-roster .weapon-table td{padding:.12rem .1rem}.datasheet-compact.datasheet-roster .weapon-col-stat{width:10%}.datasheet-compact.datasheet-roster .weapon-block-compact-stats .weapon-col-stat{width:10.5%}.datasheet-compact.datasheet-roster .weapon-name-cell strong{font-size:.64rem;line-height:1.15}.datasheet-compact.datasheet-roster .weapon-table small,.datasheet-compact.datasheet-roster .weapon-ability-chip{padding:.08rem .22rem;font-size:.56rem;line-height:1.15}.datasheet-compact.datasheet-roster .weapon-ability-list-compact{gap:.12rem}.datasheet-roster .weapon-scroll{overflow-x:visible}.datasheet-roster .keyword-row,.datasheet-roster .keyword-list{flex-wrap:wrap}}.datasheet-roster .weapon-table th,.datasheet-roster .weapon-table td{padding:.28rem .4rem;font-size:.78rem}.datasheet-roster .weapon-block h4,.datasheet-roster .datasheet-section h4{padding:.28rem .45rem;font-size:.72rem}.datasheet-roster .datasheet-section>div{gap:.28rem;padding:.4rem .5rem}.datasheet-roster .datasheet-section p{font-size:.8rem;line-height:1.35}.datasheet-roster .keyword-row{padding:.35rem .5rem;font-size:.72rem}.datasheet-roster .wargear-builder{gap:.35rem;padding:.5rem .55rem}.datasheet-roster .wargear-option-group{gap:.35rem;padding:.45rem .5rem}.datasheet-roster .wargear-option-desc{font-size:.78rem}.unit-card,.rule-card,.compare{background:#ffffff0b;border:1px solid #9fb5db24;border-radius:22px;padding:1rem}.unit-card{gap:.9rem;display:grid}.unit-card.unit-browser-card,.unit-card.unit-browser-card-details{display:block}.unit-card header:not(.unit-browser-card-head){justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.unit-card p{color:#b9c6dd;margin:.25rem 0 0}.unit-count-note{background:#4ade801f;border-radius:999px;justify-self:start;padding:.35rem .65rem;font-weight:700;color:#b8f7c8!important;margin:0!important}.mini{border-radius:999px;padding:.45rem .7rem}.danger-button{background:#ff6b6b24;border-color:#ff6b6b47}.profile-table{overflow-x:auto}.loadout{white-space:pre-line}.wargear-table{gap:.45rem;display:grid}.wargear-table div{background:#070c1480;border-radius:12px;gap:.2rem;padding:.6rem;display:grid}.wargear-table span{color:#9fb5db;font-size:.88rem}.leader-box{background:#4776e61c;border-radius:16px;padding:.75rem}.base-size-box{background:#ffffff0b;border:1px solid #9fb5db24;border-radius:16px;gap:.45rem;padding:.7rem;display:grid}.base-size-box>div{flex-wrap:wrap;gap:.45rem;display:flex}.base-size-box span{color:#d7deca;background:#eef3dc1a;border-radius:999px;padding:.35rem .6rem;font-size:.86rem}.base-size-box em{color:#9fb5db;font-style:normal}.datasheet{color:#eaf0df;background:#171b17;border:1px solid #5b842a99;border-radius:12px;overflow:hidden}.datasheet-title{text-transform:uppercase;background:linear-gradient(90deg,#344d0d,#1e3108);justify-content:space-between;align-items:center;padding:.55rem .7rem;display:flex}.datasheet-title span{color:#fff;background:#ba2736;border-radius:999px;padding:.18rem .48rem;font-size:.78rem;font-weight:800}.model-profiles{gap:.55rem;padding:.7rem;display:grid}.model-profile-row{background:#ffffff09;border:1px solid #d6e6be24;border-radius:12px;gap:.45rem;padding:.55rem;display:grid}.model-profile-meta{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.model-profile-meta strong{color:#eef7df;text-transform:uppercase;line-height:1.2;display:block}.model-profile-badges{flex-wrap:wrap;gap:.35rem;display:flex}.model-profile-meta span{color:#d7deca;background:#eef3dc1a;border-radius:999px;padding:.22rem .5rem;font-size:.78rem}.stat-grid{grid-template-columns:repeat(7,minmax(48px,1fr));gap:.45rem;display:grid}.stat-box{color:#26340d;background:#eef3dc;border:1px solid #40561c;border-radius:8px;place-items:center;gap:.15rem;min-height:3.2rem;display:grid}.stat-box span{color:#506035;text-transform:uppercase;font-size:.68rem;font-weight:800}.stat-box strong{font-size:1.1rem}.stat-better{background:#c8f7c5;border-color:#5fbf60}.stat-worse{background:#ffd4d4;border-color:#e66b6b}.weapon-block h4,.datasheet-section h4{color:#eef7df;letter-spacing:.04em;text-transform:uppercase;background:#365915;margin:0;padding:.35rem .55rem;font-size:.78rem}.weapon-scroll{max-width:100%;overflow-x:auto}.weapon-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:540px}.weapon-table .weapon-col-name{width:12rem}.weapon-table .weapon-col-stat{width:4rem}.weapon-table th,.weapon-table td{vertical-align:top;border-color:#d6e6be1f;padding:.35rem .5rem}.weapon-table th:not(:first-child),.weapon-table td:not(:first-child){text-align:center;white-space:nowrap}.weapon-name-cell strong{overflow-wrap:anywhere;line-height:1.2;display:block}.weapon-table th{color:#dce8c5;background:#24390d}.weapon-table td{background:#ffffff08}.weapon-table small{color:#aeb99e;margin-top:.15rem;font-size:.72rem;display:block}.datasheet-side-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.datasheet-section>div{color:#d7deca;gap:.35rem;padding:.55rem .7rem;display:grid}.datasheet-section p{color:#d7deca;margin:0}.datasheet-section ul{margin:0;padding-left:1rem}.keyword-row{color:#1d2510;text-transform:uppercase;background:#e8e9e3;flex-wrap:wrap;gap:.35rem;padding:.45rem .65rem;font-size:.78rem;font-weight:800;display:flex;position:relative}.keyword-list{flex-wrap:wrap;gap:.25rem;display:flex}.keyword-chip{color:#1d2510;text-transform:uppercase;background:#1d251014;border:1px solid #1d25102e;border-radius:999px;padding:.18rem .45rem;font-size:.72rem;font-weight:800}.keyword-chip.granted{border-style:dashed;box-shadow:inset 0 0 0 1px #73f0bd40}.keyword-popover{color:#1d2510;text-transform:none;z-index:100;background:#f4f6ed;border:1px solid #1d25102e;border-radius:16px;gap:.5rem;width:min(720px,100vw - 2rem);max-height:min(70vh,520px);padding:.75rem;display:grid;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 16px 50px #00000047}.rule-detail-backdrop{z-index:1200;background:#04080eb8;position:fixed;inset:0}.rule-detail-dialog{color:#dbe7f5;z-index:1201;background:#0f1724;border:1px solid #b0c2d93d;border-radius:14px;flex-direction:column;max-height:min(72vh,100dvh - 1.5rem);display:flex;position:fixed;overflow:hidden;box-shadow:0 18px 60px #0000008c}.rule-detail-dialog.centered{width:min(22rem,100vw - 1.5rem);top:50%;left:50%;transform:translate(-50%,-50%)}.rule-detail-dialog.anchored{max-width:calc(100vw - 1rem)}.rule-detail-head{flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:.65rem;padding:.75rem .75rem .55rem .85rem;display:flex}.rule-detail-close{color:#c8d8f2;background:#8fa6c71a;border:1px solid #8fa6c72e;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;min-height:0;padding:0;display:inline-flex}.rule-detail-close:hover{color:#eef4ff;background:#8fa6c72e;transform:none}.rule-detail-body-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:0 .85rem .85rem;overflow-y:auto}.rule-detail-title{color:#eef4ff;letter-spacing:.02em;margin:0;padding-right:.25rem;font-size:.9rem;line-height:1.3}.rule-detail-body{color:#b9c6dd;white-space:pre-wrap;margin:0;font-size:.82rem;line-height:1.45}.weapon-block-stacked .weapon-stacked-list{gap:.35rem;padding:.4rem .45rem .5rem;display:grid}.weapon-stacked-row{background:#ffffff08;border:1px solid #d6e6be1f;border-radius:8px;gap:.2rem;padding:.35rem .4rem;display:grid}.weapon-stacked-name{color:#eef7df;font-size:.72rem;line-height:1.2}.weapon-stacked-stats{color:#d7deca;font-variant-numeric:tabular-nums;text-align:center;grid-template-columns:repeat(6,minmax(0,1fr));gap:.1rem;font-size:.64rem;display:grid}.weapon-stacked-stats span{gap:.02rem;line-height:1.1;display:grid}.weapon-stacked-stats i{color:#9fb58a;letter-spacing:.02em;text-transform:uppercase;font-size:.52rem;font-style:normal;font-weight:800}.ability-chip-row{flex-wrap:wrap;flex:1;gap:.25rem;min-width:0;display:flex}.ability-ref-groups{gap:.35rem;display:grid}.ability-ref-group{flex-wrap:wrap;align-items:center;gap:.25rem .35rem;display:flex}.ability-ref-prefix{color:#9fb58a;flex-shrink:0;font-size:.72rem;font-weight:700}.ability-ref-chip{text-transform:none;padding:.14rem .42rem;font-size:.68rem}.keyword-modal-backdrop{z-index:99;background:#04080e94;position:fixed;inset:0}.wtc-import-modal{color:#dbe7f5;text-transform:none;z-index:100;background:#0f1724;border:1px solid #b0c2d938;border-radius:16px;gap:.75rem;width:min(760px,100vw - 2rem);max-height:min(88vh,760px);padding:1rem;display:grid;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 16px 50px #00000073}.wtc-import-modal-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.wtc-import-modal-header h3{margin:0;font-size:1.05rem}.wtc-import-file{justify-self:start}.wtc-import-filename,.wtc-import-note{margin:0;font-size:.82rem}.wtc-import-field{gap:.35rem;display:grid}.wtc-import-field span{color:#9eb2c9;text-transform:uppercase;font-size:.82rem;font-weight:700}.wtc-import-field textarea{color:#e8f0fa;resize:vertical;background:#040a12b8;border:1px solid #b0c2d92e;border-radius:12px;width:100%;min-height:14rem;padding:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;line-height:1.45}.wtc-import-field textarea:focus{border-color:#7aa8ff8c;outline:none}.wtc-import-validation{gap:.35rem;display:grid}.wtc-import-error,.wtc-import-warning,.wtc-import-summary{border-radius:10px;margin:0;padding:.45rem .65rem;font-size:.82rem}.wtc-import-error{color:#ffb3b3;background:#dc505024}.wtc-import-warning{color:#ffdca0;background:#e6aa3c1f}.wtc-import-summary{color:#b8f0cf;background:#48b4781f}.wtc-import-actions{justify-content:flex-end;gap:.5rem;display:flex}.keyword-popover>div:first-child{justify-content:space-between;align-items:center;display:flex}.keyword-popover p{color:#506035;margin:0}.keyword-unit-list{gap:.75rem;display:grid}.keyword-unit-group{gap:.35rem;display:grid}.keyword-unit-group>strong{color:#1d2510}.keyword-unit-group>div{flex-wrap:wrap;gap:.3rem;display:flex}.keyword-unit-group span{background:#1d251014;border-radius:999px;padding:.2rem .5rem}.keyword-unit-group .current{background:#c8f7c5}.datasheet-compact .datasheet-side-grid{grid-template-columns:1fr}.datasheet-compact{overflow:visible}.datasheet-compact .model-profiles{gap:.45rem;padding:.55rem}.datasheet-compact .model-profile-row{gap:.4rem;padding:.45rem}.datasheet-compact .model-profile-meta{align-items:flex-start;gap:.35rem;display:grid}.datasheet-compact .leader-links.readonly{padding:0 .55rem .45rem}.datasheet-compact .stat-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem}.datasheet-compact .stat-box{min-height:2.45rem;padding:.15rem .1rem}.datasheet-compact .stat-box span{font-size:.58rem}.datasheet-compact .stat-box strong{font-size:.88rem}.datasheet-compact .weapon-scroll{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.datasheet-compact .weapon-table{border-collapse:collapse;table-layout:fixed;width:36rem;min-width:36rem}.datasheet-compact .weapon-table th:nth-child(4),.datasheet-compact .weapon-table td:nth-child(4){width:4.25rem}.datasheet-compact .weapon-col-name{width:11.5rem}.datasheet-compact .weapon-col-stat{width:3.75rem}.datasheet-compact .weapon-table th,.datasheet-compact .weapon-table td{vertical-align:top;padding:.3rem .35rem;font-size:.74rem}.datasheet-compact .weapon-table th:not(:first-child),.datasheet-compact .weapon-table td:not(:first-child){text-align:center;white-space:nowrap}.datasheet-compact .weapon-name-cell strong{overflow-wrap:anywhere;line-height:1.2;display:block}.datasheet-compact .weapon-table small{margin-top:.2rem}.datasheet-compact .weapon-ability-list-compact{flex-wrap:wrap;gap:.2rem;display:flex}.compare-card .stat-box{min-height:2.45rem}.compare-card{background:#070c1459;border:1px solid #9fb5db1f;border-radius:16px;gap:.75rem;min-width:0;padding:.75rem;display:grid;overflow:visible}.simulation-line{background:#4776e61c;border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .75rem;padding:.7rem;display:grid}.pill-check{border:1px solid #9fb5db24;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .65rem;display:flex}.pill-check input{width:auto}.wargear-builder{background:#eef3dc0f;border-top:1px solid #d6e6be24;gap:.45rem;padding:.65rem .7rem;display:grid}.wargear-builder-head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.wargear-note{background:#eef3dc14;border-radius:12px;padding:.4rem .55rem;font-size:.82rem;color:#d7deca!important;margin:0!important}.wargear-pill{border:1px solid #9fb5db2e;border-radius:999px;padding:.25rem .5rem;font-size:.82rem}.selected-pill{color:#b8f7c8;background:#4ade801f}.wargear-options-builder{gap:.55rem;display:grid}.wargear-option-group{background:#eef3dc0d;border:1px solid #d6e6be1f;border-radius:12px;gap:.45rem;padding:.55rem .6rem;display:grid}.wargear-option-desc{color:#d7deca;margin:0;font-size:.82rem;line-height:1.35}.wargear-variant-buttons{flex-wrap:wrap;gap:.35rem;display:flex}.wargear-variant-counters,.wargear-counter-row{gap:.35rem;display:grid}.wargear-counter-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.wargear-counter{align-items:center;gap:.35rem;display:flex}.wargear-counter span{color:#d7deca;text-align:center;min-width:3rem;font-size:.82rem}.option-button{text-align:left;border-radius:12px;place-items:flex-start start;gap:.2rem;max-width:100%;padding:.45rem .6rem;display:grid}.option-button small{color:#b9c6dd}.compare{margin-bottom:1rem;overflow:visible}.compare-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem;display:grid}.empty{text-align:center;max-width:560px}@media (width<=900px){.app-header{flex-direction:column;align-items:flex-start}.app-header-meta{flex-direction:column;align-items:flex-start;width:100%;margin-left:0}.section-title,.unit-card header:not(.unit-browser-card-head){flex-direction:column;align-items:stretch}.layout,.compare-grid,.datasheet-side-grid,.keyword-row{grid-template-columns:1fr}.faction-tile-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.faction-tile{gap:.35rem;min-height:2.35rem;padding:.2rem .38rem;font-size:.78rem}.faction-tile-logo{width:1.95rem;height:1.95rem}.layout{gap:.85rem}.side{position:static}.compact-list{max-height:none}.add-unit-row{grid-template-columns:minmax(0,1fr);gap:.45rem;min-height:auto;padding:.55rem .65rem}.roster-add-row.add-unit-row{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;min-height:3.35rem}.roster-add-row .add-unit-copy{min-width:0}.roster-add-row .add-unit-name{text-overflow:ellipsis;white-space:nowrap;-webkit-line-clamp:unset;line-clamp:unset;-webkit-box-orient:unset;display:block;overflow:hidden}.add-unit-group[open] .roster-add-row.add-unit-row{grid-template-columns:auto minmax(0,1fr) auto;gap:.45rem;min-height:3.1rem;padding:.45rem .55rem}.add-unit-group[open] .add-unit-name{-webkit-line-clamp:1;line-clamp:1}.add-unit-group[open] .roster-add-row .add-unit-name{-webkit-line-clamp:unset;line-clamp:unset;white-space:nowrap;display:block}.add-unit-meta{justify-self:start}.roster-unit-summary{grid-template-columns:auto minmax(0,1fr) auto auto auto;gap:.3rem;min-height:2rem;padding:.28rem .4rem}.bunker-unit-summary{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"portrait heading""controls controls";align-items:start;gap:.35rem}.bunker-unit-summary-controls{scrollbar-width:none;grid-area:controls;justify-content:flex-end;width:100%;max-width:100%;overflow-x:auto}.bunker-unit-summary-controls::-webkit-scrollbar{display:none}.bunker-unit-summary .unit-portrait.compact{grid-area:portrait}.bunker-unit-summary .roster-unit-heading{grid-area:heading}.bunker-unit-summary-controls .bunker-step-btn{width:2rem;min-width:2rem;height:2rem}.bunker-unit-summary-controls .bunker-destroy-btn{min-height:2rem;padding:.28rem .45rem;font-size:.68rem}.bunker-unit-summary-controls .bunker-action-btn-compact{padding:.2rem .34rem;font-size:.64rem}.bunker-panel{min-width:0}.bunker-panel-actions>button,.bunker-attach-grid>button,.bunker-disembark-row>button{white-space:normal;min-width:0}.bunker-unit-nested{margin-left:.35rem}.bunker-unit-body{min-width:0;overflow:visible}.bunker-unit-body .weapon-scroll{-webkit-overflow-scrolling:touch;max-width:calc(100% + .3rem);margin-inline:-.15rem;padding-inline:.15rem;overflow-x:auto}.bunker-unit-body .weapon-table.bunker-weapon-table{min-width:0}.bunker-unit-body .bunker-unit-toolbar{justify-self:stretch;overflow-x:auto}.bunker-transport-controls,.bunker-embark-block,.bunker-firing-deck-block{min-width:0;padding:.5rem}.bunker-attach-grid{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr))}.bunker-embark-btn,.bunker-disembark-btn{text-align:center;white-space:normal;justify-content:center;width:100%}.bunker-transport-capacity,.transport-rule-body{overflow-wrap:anywhere}.bunker-weapon-table{table-layout:fixed;width:100%;min-width:0}.bunker-weapon-table th:nth-child(2),.bunker-weapon-table td:nth-child(2){word-break:break-word}.bunker-weapon-table th:nth-child(3),.bunker-weapon-table td:nth-child(3),.bunker-weapon-table th:nth-child(6),.bunker-weapon-table td:nth-child(6){display:none}.bunker-weapon-table th,.bunker-weapon-table td{padding:.28rem .3rem;font-size:.7rem}.bunker-weapon-table th:nth-child(7),.bunker-weapon-table td:nth-child(7),.bunker-weapon-table th:nth-child(8),.bunker-weapon-table td:nth-child(8),.bunker-weapon-table th:nth-child(9),.bunker-weapon-table td:nth-child(9),.bunker-firing-deck-table th:nth-child(2),.bunker-firing-deck-table td:nth-child(2),.bunker-firing-deck-table th:nth-child(8),.bunker-firing-deck-table td:nth-child(8),.bunker-firing-deck-table th:nth-child(9),.bunker-firing-deck-table td:nth-child(9),.bunker-firing-deck-table th:nth-child(10),.bunker-firing-deck-table td:nth-child(10){display:none}.bunker-weapon-table th:first-child,.bunker-weapon-table td:first-child{width:1.8rem}.bunker-attack-rolls{white-space:normal;font-size:.68rem}.roster-group[open] .roster-unit:not(:has(.roster-unit-details[open])) .roster-unit-summary{gap:.25rem;min-height:2.15rem;padding:.18rem .28rem}.roster-group[open] .roster-unit:not(:has(.roster-unit-details[open])) .roster-unit-summary .unit-portrait.compact{width:1.65rem;height:1.65rem}.roster-inline-field{grid-template-columns:1fr}.filters-row{justify-content:stretch}.filters-row label{min-width:100%}.units-browser-toolbar{grid-template-columns:1fr}.units-browser-unit-search{justify-self:stretch}.units-browser{max-width:none}.units-browser .panel{padding-inline:.75rem}.unit-browser-card-summary{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"chevron title""chevron actions";gap:.35rem .45rem;min-height:0;padding:.5rem .55rem}.unit-browser-chevron{grid-area:chevron}.unit-browser-card-title{grid-area:title}.unit-browser-compare-btn{grid-area:actions;justify-self:start}.unit-browser-card-body{padding:.45rem .5rem .55rem}.datasheet-browser .weapon-table{width:26rem;min-width:26rem}.datasheet-browser .weapon-table th:nth-child(6),.datasheet-browser .weapon-table td:nth-child(6){display:none}.compare-grid,.simulation-line{grid-template-columns:1fr}}@media (width<=560px){.app{padding:.65rem}.app-header,.panel{border-radius:20px}.panel{padding:.85rem}.faction-tile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-grid,.datasheet-roster .stat-grid{grid-template-columns:repeat(4,1fr)}.datasheet-compact .stat-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.units-browser-grid{gap:.35rem}.unit-browser-card-summary{padding:.45rem .5rem}.unit-browser-card-title strong{font-size:.86rem}.unit-browser-card-meta{font-size:.72rem}.unit-browser-compare-btn{padding:.28rem .5rem;font-size:.72rem}.datasheet-browser .stat-box{min-height:1.95rem}.datasheet-browser .stat-box strong{font-size:.74rem}.datasheet-browser .weapon-table{width:22rem;min-width:22rem}.datasheet-browser .weapon-table th:nth-child(5),.datasheet-browser .weapon-table td:nth-child(5),.datasheet-browser .weapon-table th:nth-child(6),.datasheet-browser .weapon-table td:nth-child(6){display:none}.datasheet-compact .weapon-table,.datasheet-roster .weapon-table,.datasheet-compact.datasheet-roster .weapon-table{width:100%;min-width:0}.collapsible-summary{min-height:2.75rem}.roster-group[open] .roster-unit:not(:has(.roster-unit-details[open])) .roster-unit-summary{min-height:2rem;padding:.14rem .22rem}.roster-group[open] .roster-unit:not(:has(.roster-unit-details[open])) .roster-unit-summary .unit-portrait.compact{width:1.55rem;height:1.55rem}.add-unit-group[open] .add-unit-row:not(.roster-add-row){gap:.3rem;min-height:1.5rem;padding:.14rem .34rem}.add-unit-name{white-space:normal;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.roster-add-row .add-unit-name{-webkit-box-orient:unset;-webkit-line-clamp:unset;line-clamp:unset;white-space:nowrap;display:block}.cards-grid,.chip-grid,.roster-grid,.rules-grid{grid-template-columns:1fr}.rules-panel-head{flex-direction:column}.rules-search{width:100%}.toolbar{flex-direction:column}.toolbar button,.toolbar .file-button{width:100%}}.roster-fab-add{color:#fff;min-height:2.75rem;right:1rem;bottom:calc(4.75rem + env(safe-area-inset-bottom,0px));z-index:35;background:#007aff;border:none;border-radius:999px;align-items:center;gap:.35rem;padding:.55rem 1rem;font-size:.88rem;font-weight:700;display:inline-flex;position:fixed;box-shadow:0 10px 28px #007aff59}.roster-fab-add:hover{background:#0066d6;transform:translateY(-1px)}body:not(.roster-mobile-mode) .roster-fab-add{bottom:1.25rem}@media (width<=767px){.roster-fab-add{display:none}}.bunker-panel{gap:.75rem;display:grid}.bunker-panel-head{gap:.35rem;display:grid}.bunker-panel-stats{font-variant-numeric:tabular-nums;margin:0;font-size:.9rem;font-weight:700}.bunker-panel-note{margin:0;font-size:.78rem}.bunker-panel-actions{flex-wrap:wrap;gap:.45rem;display:flex}.bunker-unit-nested{margin-top:.25rem;margin-left:.85rem}.bunker-wounds-line{color:#b0c2d9;font-variant-numeric:tabular-nums;font-size:.68rem;font-weight:600;display:block}.bunker-wounds-controls{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.bunker-wounds-field{align-items:center;gap:.35rem;display:inline-flex}.bunker-unit-summary{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.bunker-unit-summary-controls{flex-wrap:nowrap;flex-shrink:0;justify-self:end;align-items:center;gap:.35rem;display:flex}.bunker-unit-summary-controls .roster-unit-cost{white-space:nowrap;flex-shrink:0}.bunker-unit-summary-controls .bunker-action-btn,.bunker-unit-summary-controls .bunker-unit-toolbar{flex-shrink:0}.bunker-unit-toolbar{flex-shrink:0;justify-self:end;align-items:center;gap:.35rem;display:flex}.bunker-unit-toolbar-compact{flex-wrap:nowrap}.bunker-wounds-stepper{background:#ffffff0a;border:1px solid #8fa6c724;border-radius:10px;align-items:center;gap:.15rem;padding:.12rem;display:inline-flex}.bunker-step-btn{color:#d7e4fb;background:#ffffff0f;border:1px solid #8fa6c729;border-radius:8px;justify-content:center;align-items:center;width:2rem;min-width:2rem;height:2rem;min-height:0;padding:0;font-size:1rem;font-weight:700;line-height:1;display:inline-flex}.bunker-step-btn:hover:not(:disabled){background:#7ba9ff29;transform:none}.bunker-step-btn:disabled{opacity:.35}.bunker-wounds-value{color:#e8f0ff;font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap;min-width:2.75rem;padding:0 .15rem;font-size:.82rem;font-weight:700}.bunker-wounds-value .muted{color:#8fa3c4;font-size:.76rem;font-weight:600}.bunker-destroy-btn{white-space:nowrap;min-height:2rem;padding:.35rem .55rem;font-size:.72rem}.bunker-view-toggle{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;display:grid}.bunker-view-toggle-btn{color:#9fb5db;background:#ffffff0a;border:1px solid #8fa6c724;border-radius:10px;min-height:2.15rem;padding:.4rem .55rem;font-size:.8rem;font-weight:600}.bunker-view-toggle-btn.active{color:#ffb4b4;background:#ff6b6b24;border-color:#ff6b6b59}.bunker-casualties-panel{gap:.65rem;display:grid}.bunker-casualties-total{margin:0;font-size:.88rem}.bunker-casualty-cards{padding:0;list-style:none}.bunker-casualty-card{background:#ff6b6b0f;border:1px solid #ff6b6b24;border-radius:12px;flex-direction:column;align-items:flex-start;gap:.35rem;padding:.55rem .65rem;display:flex}.bunker-casualty-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.35rem .55rem;width:100%;display:flex}.bunker-casualty-model-breakdown{color:#9fb5db;gap:.2rem;width:100%;margin:0;padding:0 0 0 .35rem;font-size:.82rem;list-style:none;display:grid}.bunker-casualty-meta{color:#9fb5db;font-variant-numeric:tabular-nums;text-align:right;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:0;font-size:.8rem;display:inline-flex}.bunker-casualty-wounds{color:#9fb5db;font-variant-numeric:tabular-nums;font-size:.8rem}.bunker-casualty-tag.muted-tag{color:#8fa3c4}.bunker-wounds-inline{flex-shrink:0;font-size:.76rem}.bunker-wounds-inline input{max-width:2.75rem;min-height:1.75rem;padding:.15rem .35rem}.bunker-unit-body .bunker-unit-toolbar{margin-bottom:.15rem}.bunker-model-controls{gap:.4rem;display:grid}.bunker-model-rows{gap:.35rem;display:grid}.bunker-model-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.45rem;display:flex}.bunker-model-label{flex:12rem;min-width:0}.bunker-model-stepper{align-items:center;gap:.35rem;display:inline-flex}.bunker-model-count{font-variant-numeric:tabular-nums;text-align:center;min-width:1.5rem;font-weight:600}.bunker-model-variant-heading{margin:.35rem 0 0;font-size:.82rem}.bunker-model-variant-rows{margin-top:.15rem}.bunker-casualty-model-tag{color:#9fb5db;letter-spacing:.04em;text-transform:uppercase;background:#8fa6c71f;border-radius:999px;padding:.1rem .4rem;font-size:.68rem;font-weight:600}.bunker-casualty-status{letter-spacing:.03em;text-transform:uppercase;border-radius:999px;padding:.1rem .45rem;font-size:.68rem;font-weight:600}.bunker-casualty-status-destroyed{color:#ffb0b0;background:#ff6b6b29}.bunker-casualty-status-active{color:#8fdcb0;background:#6bffa81a}.bunker-dialog{background:#101722;border:1px solid #8fa6c72e;border-radius:18px;gap:.75rem;width:min(92vw,420px);max-width:420px;padding:1rem;display:grid}.bunker-dialog h3{margin:0;font-size:1rem}.bunker-dialog p{color:#9fb5db;margin:0;font-size:.88rem}.bunker-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.45rem;display:flex}.bunker-casualty-list{gap:.35rem;margin:0;padding-left:1rem;display:grid}.bunker-casualty-tag{color:#ffb4b4;font-size:.82rem}.bunker-summary-note{margin:0;font-size:.82rem}.bunker-panel-casualties{color:#ffb4b4;font-weight:600}.bunker-panel-exploded{margin:0;font-size:.78rem}.bunker-reset-summary{max-width:480px}.bunker-wounds-field input{max-width:4.5rem}.bunker-attach-block{gap:.4rem;display:grid}.bunker-attach-grid{gap:.35rem}.bunker-attach-current{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.bunker-attach-abilities{background:#4776e614;border:1px solid #7aa8ff2e;border-radius:12px;gap:.35rem;padding:.55rem .65rem;font-size:.8rem;line-height:1.35;display:grid}.bunker-attach-abilities p{margin:0}.bunker-attach-rule{color:#b9c6dd;margin:0;font-size:.76rem}.bunker-badge{color:#b9d4ff;background:#7aa8ff29}.weapon-ability-list{display:inline}.weapon-ability-list-compact{margin-top:.15rem;display:block}.weapon-ability-chip{color:#b9d4ff;cursor:pointer;letter-spacing:.02em;text-transform:uppercase;vertical-align:baseline;background:#7ba9ff24;border:1px solid #7ba9ff4d;border-radius:999px;min-height:0;margin:0;padding:.12rem .42rem;font-family:inherit;font-size:.68rem;font-weight:700;line-height:1.2;display:inline}.weapon-ability-chip:hover{color:#d7e8ff;background:#7ba9ff38;border-color:#7ba9ff73;transform:none}.inline-ability-chip{text-transform:none;vertical-align:baseline;margin:0 .1rem;padding:.1rem .38rem;font-size:.72rem}.weapon-ability-plain{color:#8fa3c4}.weapon-ability-popover{z-index:100;width:min(24rem,100vw - 2rem);max-width:24rem;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.weapon-ability-popover-title{color:#e8f0ff;letter-spacing:.02em;font-size:.92rem}.weapon-ability-popover p{color:#9fb5db;margin:0;font-size:.84rem;line-height:1.45}.bunker-weapon-table-inactive .weapon-ability-chip{color:#7a879c;background:#8fa6c71a;border-color:#8fa6c72e}.bunker-weapon-table-inactive .weapon-ability-chip:hover{color:#8fa3c4;background:#8fa6c724;border-color:#8fa6c73d}.wargear-ability-line{margin:.12rem 0;display:block}.bunker-weapon-table small,.weapon-table small{display:block}.bunker-action-badge{color:#ffd98a;background:#ffc4562e}.bunker-unit-doing-action{border-color:#ffc45647;box-shadow:inset 0 0 0 1px #ffc4561f}.bunker-action-btn{color:#c8d8f2;white-space:nowrap;background:#ffffff0d;border:1px solid #8fa6c72e;border-radius:8px;flex-shrink:0;min-height:0;padding:.28rem .45rem;font-size:.72rem;font-weight:600;line-height:1.1}.bunker-action-btn-compact{padding:.22rem .38rem;font-size:.68rem}.bunker-action-btn:hover:not(:disabled){color:#ffe3a8;background:#ffc4561f;border-color:#ffc45652;transform:none}.bunker-action-btn-active{color:#ffe3a8;background:#ffc45633;border-color:#ffc4566b}.bunker-action-btn:disabled{cursor:not-allowed;opacity:.38}.bunker-ranged-weapons-inactive h4{color:#6f8099}.bunker-ranged-weapons-inactive h4:after{color:#8a9ab2;content:" · not shooting (action)";font-size:.72rem;font-weight:600}.bunker-melee-weapons-inactive h4{color:#6f8099}.bunker-melee-weapons-inactive h4:after{color:#8a9ab2;content:" · not charging (action)";font-size:.72rem;font-weight:600}.bunker-weapon-table-inactive{opacity:.42}.bunker-weapon-table-inactive tbody td,.bunker-weapon-table-inactive tbody strong,.bunker-weapon-table-inactive tbody small{color:#7a879c}.bunker-weapon-table-inactive .bunker-attack-rolls{color:#6b778a}.leader-links.readonly{color:#9fb5db;gap:.25rem;font-size:.8rem;display:grid}.leader-links.readonly p{margin:0}.roster-limit-count{color:#7a8fa8;font-variant-numeric:tabular-nums;font-weight:500}.roster-attach-grid button .roster-limit-count{font-size:.92em}.add-unit-name .roster-limit-count{font-size:.88em;font-weight:600}.bunker-attach-options{gap:.45rem;display:grid}.bunker-attach-option{align-items:flex-start;gap:.25rem;display:grid}.bunker-attach-option-name{color:#c5d4e8;font-size:.82rem;font-weight:600}.bunker-attach-missing{color:#7f93b8;font-size:.76rem;font-style:italic}.bunker-panel-saved{color:#7dcda6;margin:0;font-size:.76rem}.bunker-loadout{gap:.55rem;display:grid}.bunker-ability-row{border:1px solid #8fa6c71f;border-radius:12px;gap:.35rem;padding:.55rem .65rem;display:grid}.bunker-ability-row-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.45rem;display:flex}.bunker-ability-title{flex:12rem;min-width:0}.bunker-ability-stepper{flex-shrink:0;align-items:center;gap:.35rem;display:inline-flex}.bunker-ability-count{font-variant-numeric:tabular-nums;text-align:center;min-width:2.5rem;font-weight:600}.bunker-ability-token-label{max-width:9rem;font-size:.78rem}.bunker-ability-body{color:#c7d6ef;margin:0;font-size:.88rem;line-height:1.45}.bunker-ability-designer-note{color:#9fb5db;background:#8fa6c70f;border-left:2px solid #8fa6c738;margin:.15rem 0 0;padding:.35rem .5rem .35rem .65rem;font-size:.82rem;line-height:1.45}.bunker-ability-designer-note strong{color:#b9c6dd;font-weight:600}.bunker-ability-spent{opacity:.62;border-color:#8fa6c714}.bunker-ability-spent .bunker-ability-body,.bunker-ability-spent .bunker-ability-title{color:#8a9bb5}.bunker-granted-ability{margin:0}.bunker-weapon-table th:first-child,.bunker-weapon-table td:first-child{width:2.2rem}.bunker-attack-rolls{color:#7dcda6;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.78rem;font-weight:700}.faction-army-rules{background:#8fa6c70f;border:1px solid #8fa6c724;border-radius:14px;gap:.55rem;padding:.75rem .85rem;display:grid}.faction-army-rules-compact{padding:.6rem .7rem}.faction-army-rules-heading{color:#eef4ff;letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.82rem}.faction-army-rule{gap:.35rem;display:grid}.faction-army-rule-name{font-size:.95rem}.faction-army-rule-legend{color:#9fb5db;margin:0;font-size:.86rem;line-height:1.45}.faction-army-rules-details{margin-top:.15rem}.faction-army-rules-summary .collapsible-summary-title{color:#eef4ff}.faction-army-rules-body{gap:.65rem;padding:.55rem .15rem .15rem;display:grid}.faction-army-rules-body .rule-description{font-size:.86rem}.bunker-embark-block,.bunker-transport-controls{border:1px solid #8fa6c724;border-radius:12px;gap:.45rem;padding:.55rem .65rem;display:grid}.bunker-embark-btn:disabled,.bunker-disembark-btn:disabled{cursor:not-allowed;opacity:.45}.bunker-embark-btn{color:#9ee8c8!important;border-color:#7dcda673!important}.bunker-disembark-btn{color:#ffd39a!important;border-color:#ffc47873!important}.bunker-disembark-row{flex-wrap:wrap;gap:.35rem;display:flex}.bunker-transport-capacity{margin:0}.bunker-transport-units-count{color:#9ee8c8}.transport-rules,.bunker-transport-rules{gap:.55rem;display:grid}.transport-rules-compact,.bunker-transport-rules-compact{gap:.4rem}.transport-rule-block,.bunker-transport-rule-block{background:#7dcda60f;border:1px solid #7dcda633;border-radius:12px;padding:.55rem .65rem}.transport-rule-title,.bunker-transport-rule-title{color:#9ee8c8;letter-spacing:.06em;text-transform:uppercase;margin:0 0 .35rem;font-size:.78rem}.transport-rule-body,.bunker-transport-rule-body{color:#d7e4f5;margin:0;font-size:.84rem;line-height:1.45}.datasheet .transport-rules{margin-top:.15rem}.datasheet-roster .transport-rule-body{font-size:.8rem}.bunker-transport-badge,.bunker-embarked-badge{color:#9ee8c8;background:#7dcda629}.bunker-split-embark-dialog{max-width:34rem}.bunker-split-embark-rows{gap:.55rem;display:grid}.bunker-split-embark-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;display:grid}.bunker-split-embark-columns{gap:.85rem;display:flex}.bunker-split-embark-column{place-items:center;gap:.25rem;display:grid}.bunker-split-error{color:#ff9f9f;margin:0;font-size:.82rem}.bunker-split-rule{font-size:.84rem}.bunker-firing-deck-block{background:#7daaff14;border:1px solid #7daaff47;border-radius:12px;padding:.55rem .65rem}.bunker-firing-deck-block h4{color:#a8c8ff}.bunker-firing-deck-note{margin:0 0 .35rem;font-size:.78rem}.bunker-firing-deck-table{background:#121c2c8c}.bunker-firing-deck-table th,.bunker-firing-deck-table td{border-color:#7daaff2e}.bunker-firing-deck-carrier{color:#a8c8ff;white-space:nowrap}.onboarding-backdrop{z-index:120}.onboarding-dialog{width:100%;max-width:min(28rem,100vw - 2rem)}.onboarding-dialog-title{margin:.75rem 0 .5rem;font-size:1.25rem}.onboarding-dialog-actions{justify-content:flex-start;margin-top:1rem}.onboarding-lang-toggle{background:#8fa6c714;border-radius:999px;gap:.25rem;padding:.15rem;display:inline-flex}.onboarding-lang-toggle button{color:#9fb5db;cursor:pointer;background:0 0;border:0;border-radius:999px;min-width:2.2rem;padding:.25rem .55rem;font-size:.78rem;font-weight:700}.onboarding-lang-toggle button.active{color:#d6ecff;background:#77a7ff38}.onboarding-help-btn{color:#9fc1ff;cursor:pointer;background:#77a7ff24;border:1px solid #77a7ff47;border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.onboarding-help-btn.inline{position:static}.onboarding-help-btn.floating{bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:90;width:34px;height:34px;position:fixed;right:.9rem}.onboarding-enable-btn.floating{bottom:calc(1rem + env(safe-area-inset-bottom,0px));right:.9rem}.onboarding-help-btn:hover{color:#d6ecff;background:#77a7ff38}.onboarding-enable-link{color:#9fb5db;cursor:pointer;background:#8fa6c70f;border:1px dashed #8fa6c738;border-radius:14px;justify-content:center;align-items:center;gap:.4rem;width:100%;margin:-.35rem 0 .85rem;padding:.45rem .75rem;font-size:.88rem;display:inline-flex}.onboarding-enable-link:hover{color:#c8dcff;border-color:#77a7ff59}.onboarding-enable-link.floating{bottom:calc(5.35rem + env(safe-area-inset-bottom,0px));z-index:89;width:auto;margin:0;position:fixed;left:.75rem;right:.75rem}.onboarding-panel-backdrop{justify-content:center;align-items:center;padding:1rem;display:flex}.onboarding-panel-modal{width:100%;max-width:min(28rem,100vw - 2rem);max-height:min(82vh,36rem);position:relative;top:auto;right:auto}.onboarding-panel,.onboarding-panel-modal{background:#101723f5;border:1px solid #9fb5db2e;border-radius:20px;gap:.75rem;padding:.85rem .95rem;display:grid;overflow:auto;box-shadow:0 24px 80px #00000073}.onboarding-panel-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.onboarding-panel-head-actions{align-items:center;gap:.45rem;display:flex}.onboarding-panel-close{color:#9fb5db;cursor:pointer;background:0 0;border:0;align-items:center;padding:.15rem;display:inline-flex}.onboarding-tip-list{gap:.65rem;display:grid}.onboarding-tip-card{background:#8fa6c70f;border:1px solid #8fa6c71f;border-radius:14px;padding:.65rem .75rem}.onboarding-tip-card h3{margin:0 0 .35rem;font-size:.95rem}.onboarding-tip-card p{color:#b8cae8;margin:0;font-size:.88rem;line-height:1.45}.onboarding-panel-footer{flex-wrap:wrap;justify-content:space-between;gap:.45rem;display:flex}@media (width<=767px){.onboarding-panel-modal{max-height:min(78vh,34rem)}.onboarding-help-btn.floating,.onboarding-enable-btn.floating{bottom:calc(4.5rem + env(safe-area-inset-bottom,0px))}}
