:root{color-scheme:dark;--bg:#101511;--panel:#1b231d;--line:#344238;--text:#edf1e9;--muted:#a9b6a8;--green:#adff00}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,sans-serif}.shell{max-width:1160px;margin:auto;padding:24px}header{display:flex;align-items:center;justify-content:space-between;padding:16px 0 30px;border-bottom:1px solid var(--line)}.brand{font-size:25px;font-weight:900;letter-spacing:-1px;color:var(--green);text-decoration:none}.brand span{color:var(--text)}.brand small{display:block;font-size:10px;letter-spacing:3px;font-weight:600}.badge,.eyebrow{font-size:11px;letter-spacing:2px;color:var(--green);font-weight:700}.badge{border:1px solid var(--line);padding:8px 12px;border-radius:30px}nav{display:flex;gap:8px;overflow:auto;padding:24px 0}button,.button,input{font:inherit}button,.button{border:1px solid var(--line);border-radius:8px;padding:11px 16px;background:var(--panel);color:var(--text);cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{border-color:var(--green)}button:disabled{opacity:.4;cursor:wait}.primary,.button,input[type=submit]{background:var(--green);color:#15200e;border:0;font-weight:700}.selected{color:var(--green);border-color:var(--green)}h1{font-size:clamp(30px,5vw,48px);line-height:1.08;letter-spacing:-1.7px;margin:10px 0 28px}h2{font-size:22px;line-height:1.2;margin:16px 0}p{color:var(--muted)}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:32px 0 8px}.stats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:12px;background:var(--panel)}.stats div{padding:20px;border-right:1px solid var(--line)}.stats div:last-child{border:0}.stats strong{font-size:30px;display:block}.stats span{color:var(--muted);font-size:13px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px;margin:24px 0}.grid article{border:1px solid var(--line);border-radius:12px;padding:24px;background:var(--panel);overflow:hidden}.pill{display:inline-block;background:#2e3e27;color:var(--green);font-size:11px;border-radius:5px;padding:4px 8px;text-transform:uppercase;letter-spacing:1px}dl{display:grid;grid-template-columns:95px 1fr;gap:10px;font-size:14px}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}.actions{display:flex;gap:10px;margin-top:22px}.needs{border-top:1px solid var(--line);padding-top:18px;margin-top:22px}.supply-list{display:grid;gap:8px;margin-top:12px}.supply-list a{color:var(--text);text-decoration:none;padding:10px;background:#242f26;border-radius:8px}.supply-list small{display:block;color:var(--muted)}label{display:block;color:var(--muted);font-size:14px;margin:12px 0}input,textarea{width:100%;background:#111813;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:12px;margin-top:6px}input:focus{outline:2px solid var(--green);outline-offset:2px}.search{max-width:460px}.count{font-size:32px}.count small{font-size:13px;color:var(--muted)}.muted,.hint{color:var(--muted);font-size:13px}.empty{padding:36px;border:1px dashed var(--line);border-radius:12px;grid-column:1/-1}.gate{max-width:540px;margin:65px auto}.gate h1{font-size:64px}.gate a,footer a{color:var(--green)}.gate .login-remember input{width:auto}.gate input[type=submit]{cursor:pointer}.inline{display:flex;align-items:center;gap:10px}.inline input{width:18px;margin:0}.pack{border-bottom:1px solid var(--line);padding:8px 0}dialog{width:95%;max-width:620px;max-height:90vh;overflow:auto;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:14px;padding:28px}dialog::backdrop{background:#000b}#status{color:var(--green);min-height:24px;overflow-wrap:anywhere}footer{border-top:1px solid var(--line);padding:24px 0;font-size:13px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}footer p{width:100%;margin:4px 0}@media(max-width:600px){.shell{padding:16px}header .badge{display:none}nav button{white-space:nowrap;padding:10px}.heading{align-items:flex-start;flex-direction:column}.stats div{padding:14px 10px}.stats strong{font-size:24px}.stats span{font-size:11px}.gate h1{font-size:50px}.grid{grid-template-columns:1fr}dialog{padding:20px}}

.firearm-photo{display:block;width:100%;height:200px;object-fit:contain;background:#111813;border-radius:8px;margin:14px 0}.firearm-photo[hidden]{display:none}
.install-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.install-card strong{font-size:16px}.install-card p{margin:4px 0;font-size:13px}.install-card[hidden],#network-state[hidden],#install-help[hidden]{display:none}#install-help{flex-basis:100%;color:var(--green);padding-top:12px;border-top:1px solid var(--line)}#network-state{padding:12px;margin-top:16px;border-radius:8px;background:#48381e;color:#ffe1a2}@media(display-mode:standalone){.shell{padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.install-card{display:none}body{min-height:100dvh}}

body{background:#030503}body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:linear-gradient(rgba(0,0,0,.77),rgba(0,0,0,.88)),url("bjfirearms-logo.jpg") center center / min(1150px,95vw) auto no-repeat;background-color:#000}.shell{position:relative;z-index:1;isolation:isolate}.brand{display:inline-flex;flex-direction:column;align-items:center}.brand-logo{display:block;width:220px;max-width:48vw;height:auto}.brand small{margin-top:8px;color:var(--green)}.stats,.grid article,.install-card,dialog{background:#151d16f2}.gate{padding:28px;border:1px solid var(--line);border-radius:14px;background:#101511eb}.gate h1{font-size:clamp(40px,7vw,64px)}header{padding-top:4px}@media(max-width:600px){.brand-logo{width:170px;max-width:65vw}.gate{padding:22px;margin-top:30px}body::before{background-size:auto,95vw auto}}
.auth-tabs{display:flex;gap:10px;margin:22px 0}.signup-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#login-panel[hidden],#signup-panel[hidden]{display:none}.inline input{flex-shrink:0}#signup-message,#login-message{margin:14px 0;color:var(--green);overflow-wrap:anywhere}

.inventory-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;overflow:visible;padding-bottom:10px}.inventory-tabs button{min-width:0;padding:13px 8px}.utility-nav{display:flex;gap:10px;margin-bottom:18px}.utility-nav button{font-size:13px;padding:8px 12px}select{display:block;width:100%;font:inherit;background:#111813;color:var(--text);border:1px solid var(--line);border-radius:6px;padding:12px;margin-top:6px}@media(max-width:420px){.inventory-tabs{gap:6px}.inventory-tabs button{font-size:12px;padding:12px 4px}}

.inventory-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end}.inventory-filters label{flex:1;min-width:130px}.inventory-filters button{margin-bottom:12px}.caliber-totals{margin:24px 0;padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.caliber-pills{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}.caliber-pills>div{padding:12px 18px;background:#283526;border-radius:8px}.caliber-pills strong,.caliber-pills span{display:block}.caliber-pills span{color:var(--green);font-size:14px}.gun-usage{border:1px solid var(--line);padding:16px;border-radius:10px;margin:16px 0}.usage-row{border-bottom:1px solid var(--line);padding-bottom:12px}.usage-row .remove-usage{font-size:12px;padding:6px 10px}.other-usage{margin:20px 0}.other-usage summary{cursor:pointer;color:var(--green)}.recorded-usage{border-top:1px solid var(--line);margin-top:16px}.recorded-usage p{font-size:13px}

.packed-item{padding:10px 0;border-bottom:1px solid var(--line)}.packed-item p{margin:5px 0}.packed-item button{font-size:13px;padding:8px 10px}

header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);justify-content:normal}.brand{grid-column:2;justify-self:center;text-align:center}header .badge{grid-column:3;justify-self:end;white-space:nowrap}.inventory-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:700px){header .badge{display:none}.inventory-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}

.utility-nav{justify-content:center}.privacy-notice{margin:28px auto 0;padding:18px 12px;border-top:1px solid var(--line);max-width:900px;text-align:center;font-size:12px;color:var(--muted)}.privacy-notice strong{color:var(--text);font-size:12px}.privacy-notice p{margin:6px 0;line-height:1.6}

.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.stats div{min-width:0}.stats span{display:block;overflow-wrap:anywhere}@media(max-width:600px){.stats div{padding:14px 8px}.stats strong{font-size:22px}.stats span{font-size:10px}}

#entry .actions{position:sticky;bottom:-28px;background:var(--panel);padding:14px 0;margin:12px 0 0;z-index:2}#entry-message{position:sticky;bottom:58px;z-index:2;background:var(--panel);color:var(--green);line-height:1.4;padding:10px 0;font-size:14px}#entry-message:empty{display:none}input[aria-invalid=true],select[aria-invalid=true]{border-color:#ffc06b;outline:1px solid #ffc06b}@media(max-width:600px){#entry .actions{bottom:-20px}}

.actions{flex-wrap:wrap}

#inventory-summary{margin-top:22px}

.heading.inventory-heading{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px}.inventory-heading>div{width:100%}.inventory-heading h1{margin-bottom:18px}.inventory-heading>#add{display:block;width:100%;text-align:center;padding:16px 20px}

.range-step[hidden],.range-back[hidden],.range-submit[hidden],#range-next[hidden]{display:none}.range-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:18px;font-size:12px}.range-progress span{padding:10px 5px;text-align:center;border:1px solid var(--line);border-radius:6px;color:var(--muted)}.range-progress .selected{color:var(--green);border-color:var(--green)}#range-step-status{font-size:13px}.optional-accessories{margin:22px 0}.optional-accessories summary{cursor:pointer;color:var(--green)}

.loaded-magazines{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid #354237}.loaded-magazines h2{font-size:2rem}.loaded-magazines .heading p{margin-bottom:1rem}

.ammo-tabs{display:flex;gap:8px;margin:16px 0;flex-wrap:wrap}.ammo-tabs button{flex:1;min-width:130px}.ammo-tabs button[aria-selected="true"]{background:var(--green);color:#101511;border-color:var(--green);font-weight:700}#cards>.loaded-magazines{grid-column:1/-1;min-width:0}

.header-brand{grid-column:2;justify-self:center;display:flex;flex-direction:column;align-items:center;text-align:center}.membership-shopping{display:block;margin-top:12px;padding:10px 14px;color:var(--green);border:1px solid var(--line);border-radius:8px;font-size:11px;font-weight:800;letter-spacing:2px;text-decoration:none}.membership-shopping:hover{border-color:var(--green)}.membership-shopping:focus-visible{outline:2px solid var(--green);outline-offset:3px}

.firearm-photo{cursor:zoom-in}.firearm-photo:focus-visible{outline:2px solid var(--green);outline-offset:3px}#photo-viewer{width:min(96vw,1100px);max-width:1100px;max-height:96dvh;padding:18px}#photo-viewer .photo-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:12px}#photo-viewer h2{margin:0;font-size:18px;overflow-wrap:anywhere}#photo-viewer .photo-viewer-controls{display:flex;gap:8px;align-items:center;margin:12px 0}#photo-viewer .photo-viewer-stage{height:65dvh;overflow:auto;background:#090d0a;border-radius:8px;padding:10px;overscroll-behavior:contain}#photo-viewer img{display:block;max-width:none;height:auto;margin:0 auto}#photo-viewer .hint{margin-bottom:0}@media(max-width:600px){#photo-viewer{padding:12px}#photo-viewer .photo-viewer-stage{height:60dvh}}

.bulk-ammo-row{border:1px solid var(--line);border-radius:10px;margin:16px 0;padding:12px}.bulk-ammo-row legend{color:var(--green);overflow-wrap:anywhere}.actions{flex-wrap:wrap}

/* Center inventory summary values and labels in each column. */
.stats>div{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.stats>div>strong,.stats>div>span{width:100%}
