:root{--bg:#0b0d0b;--bg-header:#060706;--bg-2:#252e27;--bg-3:#333f35;--bg-hover:#3e4c40;--primary:#4d5d3b;--primary-light:#a3c081;--primary-fill:#b9ce9a;--primary-fill-text:#12160c;--secondary:#e7ac30;--secondary-dim:#c99530;--tertiary:#546a76;--tertiary-light:#aecad8;--danger:#e68a79;--danger-bg:#301613;--danger-dark:#241009;--warn:#f0c158;--text:#f5f3ea;--text-dim:#bfc7ae;--text-faint:#8f997f;--border:#4c594d;--border-strong:#71816f;--font-display:"Barlow Condensed",sans-serif;--font-body:"Chivo",sans-serif;--font-mono:"JetBrains Mono",monospace}*{box-sizing:border-box}body,html{height:100%;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;background:#0b0d0b;background:var(--bg);color:#f5f3ea;color:var(--text);font-family:Chivo,sans-serif;font-family:var(--font-body);min-height:100vh}#root{height:100%}.app-shell{display:flex;flex-direction:column;height:100vh}a{color:inherit}button{cursor:pointer;font-family:inherit}button,input,select{font-family:inherit;font-size:inherit}:focus-visible{outline:2px solid #a3c081;outline:2px solid var(--primary-light);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.hdr{background:#060706;background:var(--bg-header);border-bottom:1px solid #71816f;border-bottom:1px solid var(--border-strong);color:#f5f3ea;color:var(--text);flex-shrink:0;position:sticky;top:0;z-index:40}.hdr-inner{display:flex;flex-direction:column;gap:8px;margin:0 auto;max-width:1500px;padding:14px 20px}.hdr-row-top{align-items:center;display:flex;flex-wrap:nowrap;gap:18px}.brand{align-items:stretch;align-self:center;display:flex;gap:10px;margin-right:6px}.brand-mark{align-items:center;background:#4d5d3b;background:var(--primary);display:flex;font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;padding:0 6px}.brand-mark,.brand-name{color:#f5f3ea;color:var(--text);font-weight:700}.brand-name{font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:24px;letter-spacing:.01em;line-height:1;white-space:nowrap}.brand-sub{color:#bfc7ae;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:11px;letter-spacing:.02em}.hdr-field{display:flex;flex-direction:column;gap:3px}.hdr-field label{color:#bfc7ae;color:var(--text-dim);font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.hdr-input,.hdr-select{background:#333f35;background:var(--bg-3);border:1px solid #71816f;border:1px solid var(--border-strong);color:#f5f3ea;color:var(--text);font-size:14px;min-height:32px;padding:6px 8px}.hdr-input{width:90px}.hdr-input::placeholder{color:#8f997f;color:var(--text-faint)}.readout{align-self:center;border-left:1px solid #71816f;border-left:1px solid var(--border-strong);display:flex;flex-direction:column;gap:2px;min-width:118px;padding:4px 14px}.readout label{color:#bfc7ae;color:var(--text-dim);font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.readout .value{color:#f5f3ea;color:var(--text);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:22px;font-weight:600;line-height:1.1}#pointsReadout{min-width:150px;padding-left:8px;padding-right:8px}#pointsReadout .value,#pointsReadout label{text-align:center}.readout .value small{color:#bfc7ae;color:var(--text-dim);font-size:14px;font-weight:500}.readout.state-ok .value{color:#e7ac30;color:var(--secondary)}.readout.state-warn .value{color:#f0c158;color:var(--warn)}.readout.state-over .value{color:#e68a79;color:var(--danger)}.readout-br{align-items:center;border-right:1px solid #71816f;border-right:1px solid var(--border-strong);min-width:90px;padding-left:6px;padding-right:6px;text-align:center}.readout .hint{color:#bfc7ae;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:10px;opacity:.9}#brValue{color:#aecad8;color:var(--tertiary-light)}.hdr-actions{align-items:center;display:flex;gap:8px;justify-content:flex-end}.hdr-right{align-items:flex-end;display:flex;flex-direction:column;gap:4px;margin-left:auto}.btn{align-items:center;background:#333f35;background:var(--bg-3);border:1px solid #71816f;border:1px solid var(--border-strong);color:#f5f3ea;color:var(--text);display:inline-flex;font-size:13px;font-weight:600;gap:7px;padding:8px 13px;white-space:nowrap}.btn:hover{background:#3e4c40;background:var(--bg-hover);border-color:#a3c081;border-color:var(--primary-light)}.btn:active{transform:translateY(1px)}.btn-primary{background:#b9ce9a;background:var(--primary-fill);border-color:#b9ce9a;border-color:var(--primary-fill);color:#12160c;color:var(--primary-fill-text)}.btn-primary:hover{background:#a3c081;background:var(--primary-light);border-color:#a3c081;border-color:var(--primary-light)}.btn-ghost{background:#0000}.btn-small{font-size:12px;padding:5px 9px}.btn[disabled]{cursor:not-allowed;opacity:.4}.btn-light{background:#333f35;background:var(--bg-3);border:1px solid #71816f;border:1px solid var(--border-strong);color:#f5f3ea;color:var(--text)}.btn-light:hover{background:#3e4c40;background:var(--bg-hover)}.btn-clear{background:#e7ac30;background:var(--secondary);border-color:#e7ac30;border-color:var(--secondary);color:#241009}.btn-clear:hover{background:#c99530;background:var(--secondary-dim);border-color:#c99530;border-color:var(--secondary-dim)}.btn-logout{background:#0000;border-color:#71816f;border-color:var(--border-strong);color:#bfc7ae;color:var(--text-dim)}.btn-logout:hover{background:#301613;background:var(--danger-bg);border-color:#e68a79;border-color:var(--danger);color:#e68a79;color:var(--danger)}.user-email{color:#bfc7ae;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:10.5px;white-space:nowrap}.user-email:before{content:"User: "}.auth-loading{color:#bfc7ae;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);letter-spacing:.08em}.auth-loading,.auth-shell{align-items:center;display:flex;justify-content:center;min-height:100vh}.auth-shell{background:linear-gradient(180deg,#060706db,#060706f0),url(https://raw.githubusercontent.com/atpcummings-code/northag-data/refs/heads/main/Chieftain_Tank.png) 50%/cover no-repeat fixed;padding:24px;position:relative}.auth-card{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:#121612b8;border:1px solid #71816f;border:1px solid var(--border-strong);border-radius:4px;box-shadow:0 24px 60px #0000008c;max-width:420px;padding:34px 32px 28px;width:100%}.auth-brand{align-items:stretch;display:flex;gap:12px;margin-bottom:26px}.auth-title{color:#f5f3ea;color:var(--text);font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:26px;font-weight:600;letter-spacing:.01em;margin:0 0 4px}.auth-desc{color:#bfc7ae;color:var(--text-dim);font-size:13px;margin:0 0 22px}.auth-form{display:flex;flex-direction:column}.auth-label{color:#bfc7ae;color:var(--text-dim);font-size:10.5px;font-weight:600;letter-spacing:.09em;margin-bottom:5px;text-transform:uppercase}.auth-input{background:#333f35;background:var(--bg-3);border:1px solid #71816f;border:1px solid var(--border-strong);border-radius:2px;color:#f5f3ea;color:var(--text);font-size:14px;margin-bottom:16px;padding:10px 12px;transition:border-color .15s ease}.auth-input:focus{border-color:#a3c081;border-color:var(--primary-light);outline:none}.auth-pw-wrap{display:flex;margin-bottom:16px;position:relative}.auth-pw-wrap .auth-input{flex:1 1;margin-bottom:0;padding-right:42px}.auth-pw-toggle{align-items:center;background:none;border:none;color:#bfc7ae;color:var(--text-dim);cursor:pointer;display:flex;padding:6px;position:absolute;right:6px;top:50%;transform:translateY(-50%)}.auth-pw-toggle:hover{color:#f5f3ea;color:var(--text)}.auth-error{background:#301613;background:var(--danger-bg);border:1px solid #e68a79;border:1px solid var(--danger);border-radius:2px;color:#e68a79;color:var(--danger);font-size:12.5px;margin-bottom:14px;padding:9px 12px}.auth-submit{justify-content:center;margin-top:2px;padding:11px;width:100%}.auth-divider{align-items:center;color:#8f997f;color:var(--text-faint);display:flex;font-size:11px;gap:12px;letter-spacing:.12em;margin:20px 0 16px;text-transform:uppercase}.auth-divider:after,.auth-divider:before{background:#4c594d;background:var(--border);content:"";flex:1 1;height:1px}.auth-google{background:#333f35;background:var(--bg-3);border-color:#71816f;border-color:var(--border-strong);color:#f5f3ea;color:var(--text);justify-content:center;padding:11px;width:100%}.auth-google:hover{background:#3e4c40;background:var(--bg-hover)}.auth-switch{color:#bfc7ae;color:var(--text-dim);font-size:13px;margin-top:20px;text-align:center}.auth-link{background:none;border:none;color:#a3c081;color:var(--primary-light);font-size:13px;font-weight:600;padding:0;text-decoration:underline}.auth-link:hover{color:#b9ce9a;color:var(--primary-fill)}.layout{grid-gap:0;display:grid;flex:1 1;gap:0;grid-template-columns:720px 1fr;grid-template-rows:minmax(0,1fr);margin:0 auto;max-width:1500px;min-height:0;overflow:hidden;width:100%}@media (max-width:1100px){.app-shell{height:auto}.layout{grid-template-columns:1fr;grid-template-rows:none}.catalogue-list,.col-catalogue,.col-roster,.layout{overflow:visible}}.col-catalogue{border-right:1px solid #71816f;border-right:1px solid var(--border-strong);display:flex;flex-direction:column;gap:14px;overflow:hidden;padding:16px}.col-catalogue,.col-roster{background:#0b0d0b;background:var(--bg);min-height:0}.col-roster{overflow-x:hidden;overflow-y:auto;padding:18px 22px 60px;scrollbar-gutter:stable}.section-eyebrow{color:#a3c081;color:var(--primary-light);font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.filter-tabs{display:flex;flex-wrap:nowrap;gap:5px;overflow-x:auto}.tab{background:#333f35;background:var(--bg-3);border:1px solid #71816f;border:1px solid var(--border-strong);color:#bfc7ae;color:var(--text-dim);flex-shrink:0;font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.01em;padding:6px 8px;white-space:nowrap}.tab:hover{border-color:#a3c081;border-color:var(--primary-light);color:#f5f3ea;color:var(--text)}.tab.is-active{background:#b9ce9a;background:var(--primary-fill);border-color:#b9ce9a;border-color:var(--primary-fill);color:#12160c;color:var(--primary-fill-text)}.search-row{display:flex;gap:8px}.search-input{background:#333f35;background:var(--bg-3);border:1px solid #71816f;border:1px solid var(--border-strong);color:#f5f3ea;color:var(--text);flex:1 1;font-size:14px;padding:8px 10px}.search-input::placeholder{color:#8f997f;color:var(--text-faint)}.faction-meta{background:#333f35;background:var(--bg-3);border:1px solid #71816f;border:1px solid var(--border-strong);color:#bfc7ae;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:11.5px;line-height:1.5;padding:8px 10px}.faction-meta b{color:#f5f3ea;color:var(--text)}.catalogue-list{grid-gap:10px;align-content:start;align-items:stretch;display:grid;flex:1 1;gap:10px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));min-height:0;overflow-x:hidden;overflow-y:auto;padding-right:14px;scrollbar-gutter:stable}.unit-card{background:#252e27;background:var(--bg-2);border:1px solid #71816f;border:1px solid var(--border-strong);box-shadow:0 2px 5px #0000008c;display:flex;flex-direction:column;justify-content:flex-start;min-width:0;overflow-wrap:anywhere;padding:10px 12px;position:relative;transition:opacity .15s ease}.unit-card.at-max{opacity:.5}.unit-card-header{align-items:flex-start;display:flex;gap:10px;justify-content:space-between}.unit-card-info{margin-top:8px}.unit-name{color:#f5f3ea;color:var(--text);flex:1 1;font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:15.5px;font-weight:600;line-height:1.2;min-width:0}.unit-tag{background:#0000;border:1px solid #a3c081;border:1px solid var(--primary-light);color:#a3c081;color:var(--primary-light);display:inline-block;font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;margin-top:6px;padding:2px 6px;text-transform:uppercase}.cost-group{gap:10px}.cost-group,.morale-slot{align-items:center;display:flex}.morale-slot{flex-shrink:0;width:92px}.morale-tag{background:#0000;border:1px solid #71816f;border:1px solid var(--border-strong);color:#bfc7ae;color:var(--text-dim);letter-spacing:.06em}.morale-tag,.qty-range-badge{font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:9.5px;padding:2px 6px;text-transform:uppercase;white-space:nowrap}.qty-range-badge{border:1px solid #4c594d;border:1px solid var(--border);color:#8f997f;color:var(--text-faint);flex-shrink:0;letter-spacing:.04em}.qty-range-badge.at-max{border-color:#e68a79;border-color:var(--danger);color:#e68a79;color:var(--danger)}.morale-tag.morale-c{border-color:#8f997f;border-color:var(--text-faint);color:#bfc7ae;color:var(--text-dim)}.morale-tag.morale-p{border-color:#aecad8;border-color:var(--tertiary-light);color:#aecad8;color:var(--tertiary-light)}.morale-tag.morale-e{border-color:#e7ac30;border-color:var(--secondary);color:#e7ac30;color:var(--secondary)}.unit-stats{color:#bfc7ae;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:11px}.rule-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.rule-chip{background:#333f35;background:var(--bg-3);border:1px solid #4c594d;border:1px solid var(--border);color:#a3c081;color:var(--primary-light);cursor:default;font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.04em;padding:2px 6px;text-transform:uppercase}.unit-notes{color:#8f997f;color:var(--text-faint);font-size:11.5px;font-style:italic;margin-top:3px}.unit-card-bottom{align-items:center;display:flex;justify-content:space-between;margin-top:auto;padding-top:8px}.unit-cost{color:#e7ac30;color:var(--secondary);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:14px;font-weight:600;white-space:nowrap}.unit-cost .pts-val{display:inline-block;text-align:right;width:26px}.unit-cost .br-val{display:inline-block;text-align:left;width:26px}.unit-cost .br-badge{color:#aecad8;color:var(--tertiary-light);font-size:14px;margin-left:8px}.add-btn{background:#b9ce9a;background:var(--primary-fill);border:none;color:#12160c;color:var(--primary-fill-text);flex-shrink:0;font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:12.5px;font-weight:700;letter-spacing:.03em;padding:6px 12px;white-space:nowrap}.add-btn:hover{background:#a3c081;background:var(--primary-light)}.add-btn[disabled]{color:#8f997f;color:var(--text-faint);cursor:not-allowed}.add-btn[disabled],.add-btn[disabled]:hover{background:#333f35;background:var(--bg-3)}.empty-note{border:1px dashed #71816f;border:1px dashed var(--border-strong);color:#bfc7ae;color:var(--text-dim);font-size:13px;grid-column:1/-1;padding:20px 4px;text-align:center}.roster-header{align-items:stretch;border-bottom:1px solid #71816f;border-bottom:1px solid var(--border-strong);display:flex;gap:0;justify-content:space-between;margin-bottom:16px;padding-bottom:10px}.roster-header-bound{margin-right:-8px}.roster-header-left{display:flex;flex-direction:column;justify-content:flex-end;padding-right:28px}.roster-header-right{align-items:center;border-left:1px solid #71816f;border-left:1px solid var(--border-strong);display:flex;padding-left:28px}.roster-orders{border:1px solid #71816f;border:1px solid var(--border-strong);min-width:150px;padding:8px 14px}.orders-title{color:#f5f3ea;color:var(--text);font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:.05em}.orders-formula{color:#e7ac30;color:var(--secondary);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:16px;font-weight:700;margin-top:4px}.orders-ticks{display:flex;flex-wrap:wrap;gap:3px;margin-top:6px}.orders-tick{background:#0000;border:1px solid #71816f;border:1px solid var(--border-strong);flex-shrink:0;height:11px;width:11px}.orders-scouting{color:#bfc7ae;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:12px;margin-top:7px}.orders-scouting .numcell,.roster-title{color:#f5f3ea;color:var(--text)}.roster-title{font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:26px;font-weight:700}.roster-sub{color:#bfc7ae;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:12px}.category-block{margin-bottom:18px}.category-header{align-items:center;background:#333f35;background:var(--bg-3);border:1px solid #71816f;border:1px solid var(--border-strong);border-bottom:none;display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between;padding:7px 12px 7px 16px;position:relative}.category-header:before{background:#4d5d3b;background:var(--primary);bottom:0;content:"";left:0;position:absolute;top:0;width:4px}.category-header h3{color:#f5f3ea;color:var(--text);font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:14px;font-weight:700;letter-spacing:.08em;margin:0;text-transform:uppercase}.category-header .cat-subtotal{color:#e7ac30;color:var(--secondary);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:13px}.category-header .cat-totals{align-items:center;display:flex;gap:14px}.category-header .cat-subtotal-br{color:#aecad8;color:var(--tertiary-light)}.category-body{background:#252e27;background:var(--bg-2);border:1px solid #71816f;border:1px solid var(--border-strong);border-top:none}.roster-empty{color:#8f997f;color:var(--text-faint);font-size:12.5px;font-style:italic;padding:14px 12px}.section-required-warning{font-size:12.5px;padding:14px 12px}.restricted-warning,.section-required-warning{color:#e68a79;color:var(--danger);font-weight:600}.restricted-warning{background:#301613;background:var(--danger-bg);border:1px solid #e68a79;border:1px solid var(--danger);font-size:13px;margin-bottom:14px;padding:10px 12px}.roster-row{border-bottom:1px solid #4c594d;border-bottom:1px solid var(--border);display:flex;flex-direction:column;padding:9px 12px}.roster-row:nth-child(2n){background:#ffffff05}.roster-row:last-child{border-bottom:none}.rn-topline{gap:12px}.rn-controls,.rn-topline{align-items:center;display:flex}.rn-controls{flex-shrink:0;gap:10px;margin-left:auto}.rn-title{align-items:center;color:#f5f3ea;color:var(--text);display:flex;flex:1 1;flex-wrap:wrap;font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:15px;font-weight:600;gap:8px;min-width:0}.rn-notes{color:#8f997f;color:var(--text-faint);font-size:13.5px;font-style:italic;margin-top:3px}.rn-stats{color:#bfc7ae;color:var(--text-dim);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:12.5px;margin-top:3px}.upgrade-list{align-items:center;display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:5px}.upgrade-list-heading{color:#8f997f;color:var(--text-faint);flex-basis:100%;font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;margin-top:4px;text-transform:uppercase}.row-warning{color:#f0c158;color:var(--warn);font-size:11.5px;font-weight:600;margin-top:5px}.row-warning.row-warning-danger{color:#e68a79;color:var(--danger)}.upgrade-list label{align-items:center;color:#c99530;color:var(--secondary-dim);display:flex;font-size:11.5px;gap:5px}.upgrade-list label.opt-disabled{cursor:not-allowed;opacity:.4}.upgrade-list label.opt-disabled input{cursor:not-allowed}.qty-stepper{align-items:center;border:none;display:flex}.qty-stepper button{background:#333f35;background:var(--bg-3);border:1px solid #71816f;border:1px solid var(--border-strong);color:#f5f3ea;color:var(--text);font-size:13px;font-weight:700;height:20px;line-height:1;width:20px}.qty-stepper button[disabled]{color:#8f997f;color:var(--text-faint);cursor:not-allowed}.qty-stepper button[disabled]:hover{background:#333f35;background:var(--bg-3)}.qty-stepper button:hover{background:#b9ce9a;background:var(--primary-fill);color:#12160c;color:var(--primary-fill-text)}.qty-stepper .qty-val{border:1px solid #71816f;border:1px solid var(--border-strong);border-left:none;border-right:none;color:#f5f3ea;color:var(--text);font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:13px;height:20px;line-height:18px;text-align:center;width:20px}.line-points{color:#e7ac30;color:var(--secondary);min-width:46px}.line-br,.line-points{font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:14px;font-weight:600;text-align:right}.line-br{color:#aecad8;color:var(--tertiary-light);min-width:48px}.remove-btn{background:none;border:1px solid #e68a79;border:1px solid var(--danger);color:#e68a79;color:var(--danger);flex-shrink:0;font-size:13px;font-weight:700;height:20px;line-height:1;padding:0;width:20px}.remove-btn:hover{background:#e68a79;background:var(--danger);color:#241009;color:var(--danger-dark)}.reorder-stepper{align-items:center;border:none;display:flex}.reorder-stepper button{background:#333f35;background:var(--bg-3);border:1px solid #71816f;border:1px solid var(--border-strong);color:#f5f3ea;color:var(--text);font-size:9px;font-weight:700;height:20px;line-height:1;width:20px}.reorder-stepper button+button{border-left:none}.reorder-stepper button[disabled]{color:#8f997f;color:var(--text-faint);cursor:not-allowed}.reorder-stepper button[disabled]:hover{background:#333f35;background:var(--bg-3);color:#8f997f;color:var(--text-faint)}.reorder-stepper button:hover{background:#b9ce9a;background:var(--primary-fill);color:#12160c;color:var(--primary-fill-text)}.numcell{width:3ch}.numcell,.numcell-wide{display:inline-block;text-align:right}.numcell-wide{width:4ch}.catalogue-list,.col-roster{scrollbar-color:#71816f #252e27;scrollbar-color:var(--border-strong) var(--bg-2);scrollbar-width:thin}.catalogue-list::-webkit-scrollbar,.col-roster::-webkit-scrollbar{height:6px;width:6px}.catalogue-list::-webkit-scrollbar-track,.col-roster::-webkit-scrollbar-track{background:#252e27;background:var(--bg-2)}.catalogue-list::-webkit-scrollbar-thumb,.col-roster::-webkit-scrollbar-thumb{background:#71816f;background:var(--border-strong);border-radius:3px}.catalogue-list::-webkit-scrollbar-thumb:hover,.col-roster::-webkit-scrollbar-thumb:hover{background:#8f997f;background:var(--text-faint)}.roster-total-bar{align-items:center;border-top:1px solid #71816f;border-top:1px solid var(--border-strong);color:#f5f3ea;color:var(--text);display:flex;flex-wrap:nowrap;font-family:JetBrains Mono,monospace;font-family:var(--font-mono);gap:18px;justify-content:flex-end;margin-top:6px;padding:12px 4px}.roster-total-bar div{flex-shrink:0;font-size:14px;white-space:nowrap}.roster-total-bar .restricted-count{color:#bfc7ae;color:var(--text-dim);margin-right:auto}.roster-total-bar .restricted-count .numcell{color:#f5f3ea;color:var(--text)}.roster-total-bar b{color:#e7ac30;color:var(--secondary);font-size:18px}.roster-total-bar b.br{color:#aecad8;color:var(--tertiary-light)}.roster-total-bar .reinf-toggle{align-items:center;color:#bfc7ae;color:var(--text-dim);cursor:pointer;display:flex;flex-shrink:0;font-family:Chivo,sans-serif;font-family:var(--font-body);font-size:13px;gap:8px;margin-right:auto;white-space:nowrap}.roster-total-bar .reinf-toggle input{accent-color:#b9ce9a;accent-color:var(--primary-fill);cursor:pointer;height:15px;width:15px}.banner{background:#333f35;background:var(--bg-3);border:1px solid #71816f;border:1px solid var(--border-strong);bottom:24px;box-shadow:0 4px 16px #00000080;color:#f5f3ea;color:var(--text);font-size:13px;left:50%;max-width:520px;opacity:0;padding:10px 16px;pointer-events:none;position:fixed;transform:translateX(-50%) translateY(-8px);transition:opacity .15s ease,transform .15s ease;width:calc(100% - 40px);z-index:70}.banner.show{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}.banner.error{background:#301613;background:var(--danger-bg);border-color:#e68a79;border-color:var(--danger);color:#e68a79;color:var(--danger)}#printSheet{display:none}@media print{@page{margin:10mm 8mm 12mm 8mm}body *{visibility:hidden}.banner,.col-catalogue,.hdr{display:none!important}#printSheet,#printSheet *{visibility:visible}#printSheet{background:#fff;color:#111;display:block;font-family:Chivo,sans-serif;font-family:var(--font-body);left:0;padding:0 4px;position:absolute;-webkit-print-color-adjust:exact;print-color-adjust:exact;top:0;width:100%}#printSheet .p-sheet{border-collapse:collapse;width:100%}#printSheet .p-sheet>thead{display:table-header-group}#printSheet .p-sheet-head{padding:0;text-align:left}#printSheet .p-sheet-body{padding:0;vertical-align:top}#printSheet .p-header{align-items:center;background:#fff;border-bottom:3px solid #111;box-sizing:border-box;display:flex;gap:16px;padding:2px 4px 8px}#printSheet .p-content{padding-top:0}#printSheet .p-logo{flex-shrink:0;height:48px;object-fit:contain;width:48px}#printSheet .p-header-main{flex:1 1;min-width:0}#printSheet .p-title{font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:30px;font-weight:700;letter-spacing:.01em;line-height:1.05;text-transform:uppercase}#printSheet .p-sub{color:#555;font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:12px;letter-spacing:.04em;margin-top:3px;text-transform:uppercase}#printSheet .p-header-stats{display:flex;flex-shrink:0;gap:18px;text-align:right}#printSheet .p-stat{display:flex;flex-direction:column;gap:2px}#printSheet .p-stat-lbl{color:#666;font-size:9px;letter-spacing:.08em;text-transform:uppercase}#printSheet .p-stat-lbl,#printSheet .p-stat-val{font-family:JetBrains Mono,monospace;font-family:var(--font-mono)}#printSheet .p-stat-val{font-size:18px;font-weight:700}#printSheet .br-tracker{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:16px}#printSheet .br-box{align-items:center;border:1px solid #111;display:flex;font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:10px;font-weight:600;height:20px;justify-content:center;width:20px}#printSheet .br-box.current{background:#c62828;border-color:#c62828;color:#fff;font-size:12px}#printSheet .p-section{border-collapse:initial;border-spacing:0;margin-bottom:12px;width:100%}#printSheet .p-section thead{display:table-header-group}#printSheet .p-section tr{break-inside:avoid;page-break-inside:avoid}#printSheet .p-section-head-cell{padding:0}#printSheet .p-unit-cell{border-bottom:1px solid #ddd;border-left:1.5px solid #111;border-right:1.5px solid #111;padding:0}#printSheet .p-section tbody tr:last-child .p-unit-cell{border-bottom:1.5px solid #111}#printSheet .p-section-head{align-items:center;background:#111;border:1.5px solid #111;color:#fff;display:flex;justify-content:space-between;padding:5px 10px}#printSheet .p-section-name{font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}#printSheet .p-section-nums{font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:12px}#printSheet .p-section-body{padding:2px 0}#printSheet .p-unit{break-inside:avoid;padding:6px 10px;page-break-inside:avoid}#printSheet .p-unit-head{align-items:baseline;display:flex;gap:10px;justify-content:space-between}#printSheet .p-unit-name{font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:15px}#printSheet .p-unit-nums{display:flex;flex-shrink:0;gap:6px;white-space:nowrap}#printSheet .p-chip{border:1px solid #111;font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:10px;padding:1px 5px}#printSheet .p-chip.pts{background:#111;border-color:#111;color:#fff}#printSheet .p-unit-line{color:#222;font-size:11.5px;margin-top:2px}#printSheet .p-lbl{color:#777;font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase}#printSheet .p-eq-wrap{border-left:2px solid #ccc;margin-top:5px;padding-left:10px}#printSheet .p-eq{margin-bottom:5px}#printSheet .p-eq:last-child{margin-bottom:0}#printSheet .p-eq-name{font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:12px;font-weight:600}#printSheet .p-eq-type{border:1px solid #bbb;color:#888;font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.06em;margin-left:4px;padding:0 3px;text-transform:uppercase}#printSheet .p-eq-line{color:#333;font-size:11px}#printSheet .p-eq-nested{border-left:1px dashed #bbb;margin-top:3px;padding-left:10px}#printSheet .p-ammo{border-collapse:collapse;font-family:JetBrains Mono,monospace;font-family:var(--font-mono);font-size:10px;margin-top:3px;width:100%}#printSheet .p-ammo td,#printSheet .p-ammo th{border:1px solid #999;padding:2px 5px;text-align:center}#printSheet .p-ammo th{background:#e8e8e8;font-size:8.5px;letter-spacing:.03em;text-transform:uppercase}#printSheet .p-ammo .p-ammo-wpn{font-family:Barlow Condensed,sans-serif;font-family:var(--font-display);font-size:11px;font-weight:600;text-align:left;vertical-align:middle}}
/*# sourceMappingURL=main.c2faa7ed.css.map*/