:root{--bg: #f5f7f8;--panel: #ffffff;--text: #1f2a30;--muted: #5f6b72;--red: #b7242a;--yellow: #d08a00;--ok: #1d7a46;--border: #dce3e7;--shadow: 0 4px 14px rgba(20, 36, 50, .06);font-family:Avenir Next,Segoe UI,sans-serif;color:var(--text);background:radial-gradient(1200px 600px at -20% -10%,#ffe8e8 0%,transparent 50%),radial-gradient(800px 500px at 120% -20%,#f2f6ff 0%,transparent 40%),var(--bg)}*{box-sizing:border-box}html,body,#root{width:100%;max-width:100%;overflow-x:hidden}body{margin:0;background:transparent}h1,h2,h3,h4,p{margin:0}h1{font-size:1.15rem;line-height:1.2}h2{font-size:1.05rem;line-height:1.2}h3{font-size:.98rem;line-height:1.2}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;padding-bottom:calc(74px + env(safe-area-inset-bottom,0px))}.topbar{position:sticky;top:0;z-index:20;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:.4rem .72rem .45rem;display:flex;justify-content:center;align-items:center;gap:.6rem}.topbar-inner{width:100%;max-width:960px;min-width:0}.brand{display:flex;align-items:center;gap:.55rem;min-width:0}.brand-mark{width:34px;height:34px;border-radius:8px;background:#fff;border:1px solid var(--border);box-shadow:0 2px 8px #1424321f;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.brand-logo-sprite{display:block;width:100%;height:100%;object-fit:cover}.brand-copy{min-width:0}.brand-eyebrow{font-size:.58rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#6d7880;line-height:1.1}.brand-title{font-size:.98rem;font-weight:700;line-height:1.15;color:#1f2a30}.page{max-width:960px;margin:0 auto;padding:.7rem .68rem .95rem}.page.page-wide{max-width:min(1640px,calc(100vw - .8rem))}.stack-xs>*+*{margin-top:.2rem}.stack-sm>*+*{margin-top:.42rem}.stack-md>*+*{margin-top:.8rem}.row{display:flex;align-items:center}.row-between{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}.row-between>*{min-width:0}.row-end{display:flex;justify-content:flex-end;align-items:center}.gap-sm{gap:.5rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:13px;padding:.72rem;box-shadow:var(--shadow)}.card-soft{background:#fbfcfd;border:1px solid var(--border);border-radius:10px;padding:.55rem}.bag-nav-card{padding:.5rem}.bag-nav-grid{display:grid;gap:.45rem;grid-template-columns:1fr}.danger-border{border-color:#f0b3b6}.grid-cards{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.mini-card{border-radius:10px;padding:.55rem;border:1px solid var(--border);background:#fdfdfd}.mini-card.danger{border-color:#e8a1a5;background:#fff7f7}.mini-card.ok{border-color:#b8e2c7;background:#f7fff9}.input,textarea.input{width:100%;border:1px solid var(--border);border-radius:9px;padding:.5rem .62rem;font-size:.9rem;background:#fff}.label{font-size:.78rem;color:var(--muted)}.btn{border:0;border-radius:9px;padding:.5rem .75rem;font-size:.86rem;font-weight:600;cursor:pointer}.btn-primary{background:var(--red);color:#fff}.btn-secondary{background:#eef2f4;color:#18252e}.btn-danger{background:#ab1f25;color:#fff}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.btn-link{background:transparent;border:0;text-align:left;width:100%;padding:0}.inline-link{color:#1e3441;font-weight:700;text-decoration:underline;text-decoration-color:#c8d5dd;text-underline-offset:.12rem}.list{display:grid;gap:.36rem}.list-item{width:100%;background:#fff;border:1px solid var(--border);border-radius:9px;padding:.52rem;display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;text-align:left;flex-wrap:wrap}.list-item>:first-child:not(:last-child){min-width:0;flex:1 1 220px}.list-item>:last-child:not(:first-child){flex:0 0 auto}.list-item.static{cursor:default}.bag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.4rem}.bag-tile{border-radius:9px;border:1px solid var(--border);background:#fff;padding:.55rem}.chip{background:#f2f4f6;border-radius:999px;padding:.2rem .45rem;font-size:.72rem}.bin-chip{display:inline-block;background:#eef3f6;border:1px solid #d8e2e8;border-radius:999px;padding:.16rem .5rem;font-size:.72rem;font-weight:600;color:#3a5564}.kit-chip{display:inline-block;background:#f5f8fb;border:1px solid #dbe4ea;border-radius:999px;padding:.14rem .48rem;font-size:.7rem;font-weight:600;color:#3d515d}.search-result-meta{flex-wrap:wrap}.reason-tags,.tag-row{display:flex;flex-wrap:wrap;gap:.28rem}.reason-label{font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:#6f7b84;font-weight:700}.reason-chip{display:inline-block;border-radius:999px;padding:.14rem .48rem;font-size:.69rem;font-weight:600;border:1px solid #dbe5ea;background:#f6f8f9;color:#334a58}.reason-chip-red{background:#fcf6f7;color:#8f2024;border-color:#e8bdc0}.reason-chip-yellow{background:#fdf9f0;color:#8a6200;border-color:#eddcb0}.reason-chip-ok{background:#f3fbf6;color:#16683d;border-color:#cde7d7}.reason-chip-neutral{background:#eef3f6;color:#3a5564;border-color:#d8e2e8}.compliance-pill{display:inline-block;border-radius:999px;padding:.2rem .56rem;font-size:.66rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.compliance-pill-red{background:#a11f24;color:#fff}.compliance-pill-ok{background:#1a6a3f;color:#fff}.compliance-status-badge{display:inline-block;border-radius:8px;padding:.22rem .5rem;font-size:.66rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;border:1px solid transparent;white-space:nowrap}.compliance-status-red{background:#ffe9ea;color:#8f2024;border-color:#efc7ca}.compliance-status-yellow{background:#fff3dc;color:#8a6200;border-color:#efdcb2}.compliance-status-ok{background:#ebf9f1;color:#16683d;border-color:#c8e7d5}.status-badge{border-radius:999px;padding:.18rem .45rem;font-size:.7rem;font-weight:600;text-transform:capitalize;white-space:nowrap}.status-ok{background:#e9f8ef;color:#16683d}.status-yellow{background:#fff4dd;color:#9d6500}.status-red{background:#ffeaeb;color:#a11f24}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:center;gap:.35rem;border-top:1px solid var(--border);background:#fffffff7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:.36rem .55rem calc(.42rem + env(safe-area-inset-bottom,0px));overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}.bottom-nav::-webkit-scrollbar{display:none}.nav-item{display:flex;justify-content:center;align-items:center;flex:0 0 auto;white-space:nowrap;padding:.45rem .68rem;border-radius:999px;border:1px solid transparent;font-size:.73rem;color:#5f6970;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.nav-item.active{color:var(--red);font-weight:700;background:#fff3f4;border-color:#f0c7ca}.actions-wrap{display:flex;align-items:center;justify-content:flex-end;gap:.4rem;flex-wrap:wrap}.inline-control{width:100%}.compliance-toolbar{display:flex;gap:.45rem;flex-wrap:wrap;width:100%}.compliance-select{width:min(230px,100%)}.compliance-search{width:min(320px,100%)}.compliance-metrics{display:flex;flex-wrap:wrap;gap:.7rem;font-size:.82rem}.compliance-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:10px}.stock-toolbar{display:grid;gap:.55rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stock-table-wrap{overflow:auto;border:1px solid var(--border);border-radius:10px}.stock-table{width:100%;border-collapse:collapse;min-width:1080px;background:#fff}.stock-table th,.stock-table td{padding:.48rem .52rem;border-bottom:1px solid #e7edf1;text-align:left;vertical-align:top;font-size:.8rem}.stock-table th{background:#f7fafc;color:#51616b;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.stock-item-cell{min-width:240px}.stock-cell-input{min-width:130px;padding:.38rem .5rem;font-size:.82rem}.stock-qty-input{min-width:86px;max-width:98px}.stock-bin-cell{min-width:180px;white-space:nowrap}.stock-row-dirty{background:#fff8f8}.stock-row-actions{justify-content:flex-start;min-width:140px}.changelog-table{min-width:1320px}.changelog-table th,.changelog-table td{vertical-align:top}.compliance-table{width:100%;border-collapse:collapse;min-width:860px;background:#fff}.compliance-table th,.compliance-table td{padding:.5rem .56rem;border-bottom:1px solid #e7edf1;text-align:left;vertical-align:top;font-size:.8rem}.compliance-table th{background:#f7fafc;color:#51616b;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.compliance-item-cell{min-width:220px}.compliance-row-red{background:#fffbfb}.compliance-row-yellow{background:#fffdf8}.text-wrap-anywhere{overflow-wrap:anywhere}.alert-grid{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:.75rem}.alert-number{font-size:1.18rem;font-weight:700}.modal-backdrop,.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a12197a;display:flex;align-items:center;justify-content:center;z-index:60;padding:1rem}.modal-card{width:min(420px,100%);background:#fff;border-radius:12px;padding:.9rem;box-shadow:var(--shadow)}.move-sheet-card,.quick-edit-modal{width:min(560px,100%);max-height:92vh;overflow:auto}.sheet-backdrop{align-items:flex-end}.sheet-card{width:min(640px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:14px 14px 0 0;padding:.72rem;box-shadow:var(--shadow)}.sheet-handle{width:54px;height:4px;border-radius:999px;background:#d0d8dd;margin:0 auto .7rem}.red{color:var(--red)}.yellow{color:var(--yellow)}.ok,.success-text{color:var(--ok)}.error-text{color:var(--red)}.muted{color:var(--muted)}.small{font-size:.82rem}@media (max-width: 420px){.page{padding-left:.52rem;padding-right:.52rem}.card{padding:.66rem}.brand-mark{width:31px;height:31px}.brand-eyebrow{font-size:.55rem}.brand-title{font-size:.93rem}}@media (min-width: 900px){.app-shell{padding-bottom:0}.bottom-nav{top:62px;bottom:auto;left:0;width:100%;justify-content:center;gap:.5rem;border-top:0;border-bottom:1px solid var(--border);padding-top:.34rem;padding-bottom:.34rem;overflow-x:visible}.nav-item{padding:.36rem .7rem}.page{padding-top:3.45rem}.page.page-wide{max-width:calc(100vw - 1rem)}.inline-control{width:min(240px,100%)}.bag-nav-grid{grid-template-columns:1fr 1fr}}
