:root{--bg: #f5f7fa;--bg-elevated: #fdfdfe;--bg-card: #fdfdfe;--bg-hover: #eaf3fe;--bg-component: #f8f9fb;--border: #e4e7ec;--border-subtle: #e4e7ec;--border-strong: #d1d5dd;--text: #181b21;--text-muted: #6d7484;--text-dim: #6d7484;--text-subtle: #4c5260;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-soft: #eaf3fe;--navy: #010f2d;--navy-2: #0a1f47;--mint: #eaf3fe;--mint-deep: #d8e9fd;--btn-fill: #1c1f26;--btn-fill-hover: #2a2e38;--btn-text: #fdfdfe;--success: #15803d;--success-soft: #f0fdf4;--warning: #d97706;--warning-soft: rgba(217, 119, 6, .14);--danger: #dc2626;--danger-soft: rgba(220, 38, 38, .12);--low-border: #fbbf24;--out-border: #fca5a5;--ok-border: #bbf7d0;--radius: 16px;--radius-sm: 10px;--radius-btn: 9999px;--radius-tag: 9999px;--shadow: 0 1px 2px rgba(16, 20, 30, .04), 0 3px 10px -2px rgba(16, 20, 30, .07), 0 0 0 1px rgba(16, 20, 30, .055);--shadow-md: 0 2px 4px -1px rgba(16, 20, 30, .05), 0 10px 24px -6px rgba(16, 20, 30, .11), 0 0 0 1px rgba(16, 20, 30, .055);--shadow-lg: 0 4px 10px -2px rgba(16, 20, 30, .07), 0 20px 48px -12px rgba(16, 20, 30, .17), 0 0 0 1px rgba(16, 20, 30, .055);--inset-hi: inset 0 1px 0 rgba(255, 255, 255, .7);--inset-hi-dark: inset 0 1px 0 rgba(255, 255, 255, .14);--font: "Manrope", system-ui, sans-serif;--font-display: "Archivo", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;color:var(--text)}.mono{font-family:var(--mono);font-size:.9em}.dim{color:var(--text-dim)}.app-root{min-height:100vh}.inventory-page{max-width:1100px;margin:0 auto;padding:1.25rem 1.25rem 3rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem;padding:.85rem 1.15rem;background:linear-gradient(180deg,var(--navy-2) 0%,var(--navy) 100%);border:1px solid var(--navy);border-radius:var(--radius);box-shadow:var(--shadow-md);color:#fdfdfe}.brand-inline{display:flex;align-items:center;gap:.85rem}.brand-logo{height:36px;width:auto;display:block;flex-shrink:0}.brand-inline strong{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;color:#fdfdfe}.brand-sub{font-size:.78rem;color:#fdfdfea6;margin-top:.1rem}.top-actions{display:flex;gap:.55rem;flex-wrap:nowrap;align-items:center;flex-shrink:0}.top-actions-pair{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;min-width:min(100%,22rem)}.topbar-action{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.15rem;padding:.65rem .9rem;min-height:3.35rem;border-radius:12px;border:1px solid rgba(253,253,254,.28);background:#fdfdfe1a;color:#fdfdfe;font-family:var(--font);cursor:pointer;text-align:left;transition:background .15s ease,border-color .15s ease,transform .1s ease}.topbar-action:hover{background:#fdfdfe29;border-color:#fdfdfe6b;transform:translateY(-1px)}.topbar-action:active{transform:translateY(0)}.topbar-action-label{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-display);font-weight:700;font-size:.98rem;letter-spacing:-.02em;line-height:1.1}.topbar-action-hint{font-size:.72rem;font-weight:500;color:#fdfdfe9e;line-height:1.2}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1.1rem;border-radius:var(--radius-btn);border:1px solid var(--border-strong);background:linear-gradient(180deg,#fdfdfe,#f6f7f9);color:var(--text);font-family:var(--font);font-weight:600;font-size:.925rem;cursor:pointer;transition:background .15s,border-color .15s,transform .1s,box-shadow .15s;min-height:44px;box-shadow:var(--inset-hi),0 1px 2px #10141e14}.btn:hover{background:linear-gradient(180deg,#fff,#eef1f6);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg,#262a33 0%,var(--btn-fill) 100%);color:var(--btn-text);border-color:#14161b;font-weight:600;box-shadow:var(--inset-hi-dark),0 1px 2px #10141e4d,0 4px 12px -2px #10141e40}.btn-primary:hover{background:linear-gradient(180deg,#313641 0%,var(--btn-fill-hover) 100%)}.topbar .topbar-btn,.topbar .btn:not(.btn-primary){background:#fdfdfe14;color:#fdfdfe;border-color:#fdfdfe47;box-shadow:none;white-space:nowrap}.topbar .topbar-btn:hover,.topbar .btn:not(.btn-primary):hover{background:#fdfdfe29;border-color:#fdfdfe73}.topbar .topbar-pill{background:#fdfdfe2e;color:#fdfdfe}.btn-danger{background:var(--danger-soft);color:var(--danger);border-color:transparent;box-shadow:none}.btn-ghost{background:transparent;box-shadow:none}.btn-sm{padding:.4rem .75rem;font-size:.85rem;min-height:36px}.btn-lg{padding:.7rem 1.15rem;font-size:.95rem;min-height:48px}.btn-icon{width:40px;padding:0;min-height:40px}.btn-pill{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;height:1.4rem;padding:0 .4rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.75rem;font-weight:700}.btn-pill.warn{background:var(--warning-soft);color:var(--warning)}.btn-warn-active{background:var(--warning-soft);border-color:var(--low-border);color:var(--warning);box-shadow:none}.btn-pill.danger{background:var(--danger-soft);color:var(--danger)}.btn-danger-active{background:var(--danger-soft);border-color:var(--out-border);color:var(--danger);box-shadow:none}.summary-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.15rem}.summary-row-5{grid-template-columns:repeat(5,1fr)}@media(max-width:1100px){.summary-row-5{grid-template-columns:repeat(2,1fr)}.summary-row-5 .summary-chip-value-span{grid-column:1 / -1}}@media(max-width:640px){.summary-row,.summary-row-5{grid-template-columns:repeat(2,1fr)}.summary-row-5 .summary-chip-value-span{grid-column:1 / -1}}.summary-chip{background:linear-gradient(180deg,var(--bg-card) 0%,#fafbfc 100%);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem 1rem;box-shadow:var(--inset-hi),var(--shadow)}.summary-chip-btn{display:block;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;transition:border-color .15s ease,box-shadow .15s ease,transform .1s ease}.summary-chip-btn:hover{border-color:var(--accent);box-shadow:var(--inset-hi),var(--shadow),0 0 0 2px #2563eb1f}.summary-chip-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.summary-chip-btn.is-active{border-color:var(--navy);box-shadow:var(--inset-hi),0 0 0 2px #0f172a2e}.summary-chip-btn.is-active-in_stock{border-color:var(--success);background:linear-gradient(180deg,#f0fdf4,#ecfdf5);box-shadow:var(--inset-hi),0 0 0 2px #16a34a33}.summary-chip-btn.is-active-enroute{border-color:var(--accent);background:linear-gradient(180deg,#eff6ff,#eef4ff);box-shadow:var(--inset-hi),0 0 0 2px #2563eb33}.summary-chip-btn.is-active-low{border-color:var(--low-border);background:linear-gradient(180deg,#fffbeb,#fef3c7);box-shadow:var(--inset-hi),0 0 0 2px #d9770633}.summary-chip-btn.is-active-out{border-color:var(--out-border);background:linear-gradient(180deg,#fef2f2,#fee2e2);box-shadow:var(--inset-hi),0 0 0 2px #dc262633}.summary-label{display:block;font-size:.75rem;color:var(--text-dim);margin-bottom:.2rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.summary-value{font-family:var(--font-display);font-size:1.55rem;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.summary-value.accent{color:var(--accent)}.summary-value.warn{color:var(--warning)}.summary-value.danger{color:var(--danger)}.summary-value.success{color:var(--success)}.summary-value.navy{color:var(--navy)}@media(max-width:1100px){.summary-chip-value-span{flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.35rem 1rem}.summary-chip-value-span .summary-label{margin-bottom:0}.summary-chip-value-span .summary-hint{width:100%}}.summary-chip-value{display:flex;flex-direction:column;justify-content:center;background:linear-gradient(180deg,#f8fafc,#eef2f7);border-color:#0f172a24}.summary-hint{display:block;margin-top:.15rem;font-size:.72rem;color:var(--text-dim);font-weight:500;letter-spacing:.01em}.filters{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.tabs{display:flex;align-items:center;gap:.3rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;padding:.25rem;flex-wrap:wrap;box-shadow:var(--shadow)}.status-tabs{display:flex;flex-wrap:wrap;overflow:visible;width:100%;max-width:100%;border-radius:18px;gap:.25rem}.tab{border:none;background:transparent;color:var(--text-muted);padding:.5rem .95rem;border-radius:999px;cursor:pointer;font-family:var(--font);font-weight:600;font-size:.9rem;min-height:40px;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;flex-shrink:0}.status-tabs .tab{padding:.45rem .65rem;font-size:.88rem;flex:1 1 calc(33.333% - .25rem);min-width:5.75rem;justify-content:center;flex-shrink:1}.tab:hover{color:var(--text);background:var(--bg-hover)}.tab.active{background:var(--navy);color:#fdfdfe}.status-tabs .tab.active.tab-status-in_stock,.status-tabs .tab.tab-status-in_stock.active{background:var(--success);color:#fdfdfe}.status-tabs .tab.active.tab-status-enroute,.status-tabs .tab.tab-status-enroute.active{background:var(--accent);color:#fdfdfe}.status-tabs .tab.active.tab-status-low,.status-tabs .tab.tab-status-low.active{background:var(--warning);color:#fdfdfe}.status-tabs .tab.active.tab-status-out,.status-tabs .tab.tab-status-out.active{background:var(--danger);color:#fff}.tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.2rem;height:1.2rem;padding:0 .35rem;margin-left:.35rem;border-radius:999px;font-size:.72rem;font-weight:700;background:#00000014}.tab-count.warn{background:var(--warning-soft);color:var(--warning)}.tab-count.danger{background:var(--danger-soft);color:var(--danger)}.tab.active .tab-count.warn,.tab.active .tab-count.danger{background:#ffffff59;color:inherit}.search-input{flex:1;min-width:180px;max-width:320px}.filter-banner{display:flex;align-items:center;gap:.75rem;margin-bottom:.85rem;padding:.65rem .9rem;background:var(--warning-soft);color:var(--warning);border-radius:var(--radius-sm);font-size:.9rem;font-weight:600}.filter-banner-out{background:var(--danger-soft);color:var(--danger)}.filter-banner-in{background:#16a34a1f;color:var(--success)}.filter-banner-enroute{background:#2563eb1f;color:var(--accent)}.inventory-sections{display:flex;flex-direction:column;gap:1.5rem}.section-title{font-family:var(--font-display);font-size:1.05rem;margin:0 0 .65rem .15rem;color:var(--text-subtle)}.item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.85rem}.item-card{display:flex;flex-direction:column;gap:.85rem;text-align:left;background:linear-gradient(180deg,var(--bg-card) 0%,#fafbfc 100%);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.05rem;box-shadow:var(--inset-hi),var(--shadow);cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .1s}.item-card:hover{border-color:var(--border-strong);box-shadow:var(--inset-hi),var(--shadow-md)}.item-card.is-low{border-color:var(--low-border);background:linear-gradient(180deg,#fffbeb,#fdfdfe 60%)}.item-card.is-out{border-color:var(--out-border);background:linear-gradient(180deg,#fef2f2,#fdfdfe 60%)}.item-card.is-ok{border-color:var(--border)}.item-card.is-ok:hover{border-color:var(--ok-border)}.item-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.item-name{font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.item-sku{color:var(--text-dim);font-size:.8rem;margin-top:.15rem;font-family:var(--mono)}.item-card-body{display:flex;justify-content:space-between;gap:1rem;align-items:flex-end}.item-side-stats{display:flex;flex-direction:column;align-items:flex-end;gap:.45rem;text-align:right}.mini-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin-bottom:.15rem}.side-num{font-size:.9rem;font-variant-numeric:tabular-nums}.item-card-actions{display:flex;gap:.4rem;padding-top:.35rem;border-top:1px solid var(--border-subtle)}.kits-count{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .4rem}.kits-num{font-family:var(--font-display);font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1}.kits-unit{font-weight:600;color:var(--text-muted)}.kits-vials{width:100%;font-size:.78rem;color:var(--text-dim)}.kits-sm .kits-num{font-size:1.15rem}.kits-md .kits-num{font-size:1.45rem}.kits-lg .kits-num{font-size:2.15rem}.kits-count.is-warn .kits-num{color:var(--warning)}.kits-count.is-out .kits-num{color:var(--danger)}.kits-count.is-ok .kits-num{color:var(--success)}.kits-inline strong{font-variant-numeric:tabular-nums}.kits-vials-inline{color:var(--text-dim);font-size:.85em}.input,.select,.textarea{background:#fdfdfe;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.65rem .8rem;outline:none;transition:border-color .15s,box-shadow .15s;width:100%;min-height:44px;box-shadow:inset 0 1px 2px #10141e0a}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb2e}.input-lg{font-size:1.25rem;font-weight:650;font-variant-numeric:tabular-nums}.textarea{resize:vertical;min-height:80px}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.field label{font-size:.82rem;font-weight:600;color:var(--text-muted)}.field-hint{font-size:.78rem;color:var(--text-dim)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}.form-grid .full{grid-column:1 / -1}.badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:650;letter-spacing:.02em}.badge-low{background:var(--warning-soft);color:var(--warning)}.badge-out{background:var(--danger-soft);color:var(--danger)}.badge-ok{background:var(--success-soft);color:var(--success)}.badge-expected{background:var(--accent-soft);color:var(--accent)}.badge-partial{background:var(--warning-soft);color:var(--warning)}.badge-received{background:var(--success-soft);color:var(--success)}.badge-cancelled{background:#eef1f4;color:var(--text-muted)}.badge-cat{background:var(--mint);color:var(--text-subtle);text-transform:none;font-weight:600}.badge-cat-peptides{background:#eaf3fe;color:#0a3f7d}.badge-cat-bac-water{background:#d8e9fd;color:#0a3f7d}.badge-cat-nasal-sprays{background:#dde9f9;color:#16365e}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#010f2d80;display:grid;place-items:center;z-index:100;padding:1rem;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:20px;width:min(520px,100%);max-height:90vh;overflow:auto;box-shadow:var(--shadow-lg)}.modal-lg{width:min(680px,100%)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.15rem;border-bottom:1px solid var(--border-subtle);position:sticky;top:0;background:var(--bg-elevated);z-index:1}.modal-header h2{font-size:1.15rem}.modal-body{padding:1.15rem}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.85rem 1.15rem 1.1rem;border-top:1px solid var(--border-subtle);position:sticky;bottom:0;background:var(--bg-elevated)}.modal-lead{margin:0 0 1rem;color:var(--text-muted);font-size:.95rem}.simple-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.simple-list-item{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.85rem .95rem;background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.simple-list-title{font-weight:600}.simple-list-meta{font-size:.85rem;color:var(--text-muted);margin-top:.15rem}.simple-list-actions{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.sheet-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem}.sheet-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.25rem}.sheet-stat{background:var(--bg);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.85rem}.sheet-section-title{font-size:.9rem;margin:1rem 0 .55rem;color:var(--text-muted)}.threshold-row{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap}.threshold-edit{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.threshold-edit .input{width:80px;min-height:36px;padding:.35rem .5rem}.big-num{font-family:var(--font-display);font-size:1.45rem;font-weight:800;font-variant-numeric:tabular-nums}.empty{text-align:center;padding:2rem 1.25rem;color:var(--text-muted)}.empty.compact{padding:1rem;background:var(--bg);border-radius:var(--radius-sm)}.empty.big-empty{background:var(--bg-card);border:1px dashed var(--border);border-radius:var(--radius);margin-top:.5rem}.empty strong{display:block;color:var(--text);margin-bottom:.35rem;font-size:1.05rem}.alert{padding:.75rem 1rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.9rem}.alert-error{background:var(--danger-soft);color:var(--danger);border:1px solid rgba(220,38,38,.25)}.alert-success{background:var(--success-soft);color:var(--success);border:1px solid #bbf7d0}.alert-info{background:var(--accent-soft);color:var(--accent);border:1px solid #d8e9fd}.loading{color:var(--text-muted);padding:2.5rem;text-align:center}.linkish{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;font:inherit;font-weight:600}.linkish:hover{text-decoration:underline;color:var(--accent-hover)}@media(max-width:800px){.summary-row{grid-template-columns:1fr 1fr}.summary-row-5 .summary-chip-value-span{grid-column:1 / -1}.sheet-stats,.form-grid{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:stretch;gap:.85rem}.top-actions,.top-actions-pair{width:100%;margin-left:0;min-width:0}.filters{flex-direction:column;align-items:stretch}.search-input{max-width:none}.tabs{justify-content:flex-start}.brand-logo{height:30px}}@media(max-width:480px){.inventory-page{padding:.75rem .75rem 2.5rem}.summary-row{grid-template-columns:1fr 1fr;gap:.5rem}.summary-value{font-size:1.3rem}.item-card-body{flex-direction:column;align-items:flex-start}.item-side-stats{align-items:flex-start;text-align:left;width:100%;flex-direction:row;flex-wrap:wrap;justify-content:space-between}}
