@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(./ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(./ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff")}:root{--paper: #e8ebe9;--paper-raised: #f5f7f6;--paper-sunk: #dde1de;--paper-deep: #d0d5d1;--ink: #131a21;--ink-soft: #2d3843;--ink-mute: #55606a;--ink-faint: #7a838b;--rule: #c1c7c4;--rule-soft: #d3d8d5;--rule-strong: #97a09e;--grid-line: rgba(31, 74, 128, .055);--grid-line-strong: rgba(31, 74, 128, .1);--grid-image: linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px), linear-gradient(var(--grid-line-strong) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line-strong) 1px, transparent 1px);--grid-size: 24px 24px, 24px 24px, 120px 120px, 120px 120px;--blue-ink: #1b4a80;--blue-ink-deep: #12355c;--signal: #a6401f;--ok-ink: #33694a;--font-body: "IBM Plex Sans Variable", "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--font-display: "IBM Plex Sans Variable", "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--sidebar-width: 258px;--bg-primary: var(--paper);--bg-secondary: var(--paper-raised);--bg-card: var(--paper-raised);--bg-input: #fafcfa;--accent: var(--blue-ink);--accent-hover: var(--blue-ink-deep);--accent-dim: rgba(27, 74, 128, .08);--danger: var(--signal);--danger-hover: #8a3317;--danger-dim: rgba(166, 64, 31, .09);--warning: #8a5a10;--warning-dim: rgba(138, 90, 16, .1);--success: var(--ok-ink);--success-dim: rgba(51, 105, 74, .1);--text-primary: var(--ink);--text-secondary: var(--ink-soft);--text-muted: var(--ink-mute);--border: var(--rule);--border-focus: var(--blue-ink);--radius: 2px;--radius-sm: 2px;--radius-lg: 3px;--shadow-sm: none;--shadow: none;--shadow-lg: 0 18px 44px rgba(19, 26, 33, .22);--transition: .16s cubic-bezier(.2, .6, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased}body{line-height:1.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{min-height:100vh;display:flex;flex-direction:row}.app-content{flex:1;min-width:0;display:flex;flex-direction:column;position:relative}.app-main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:24px 28px 48px}.sidebar{width:240px;flex-shrink:0;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.sidebar-logo{font-size:19px;font-weight:700;color:var(--accent);letter-spacing:-.3px;padding:24px 24px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}.logo-wrap{display:inline-flex;align-items:center;gap:10px}.logo-img{width:30px;height:30px;object-fit:contain;border-radius:8px;flex-shrink:0}.logo-name{display:inline-flex;flex-direction:column;line-height:1.1}.logo-version{font-size:9.5px;font-weight:500;color:var(--text-muted);letter-spacing:.2px;margin-top:2px}.sidebar .logo-wrap .logo-img{width:auto;height:40px;border-radius:0}.sidebar-close{display:none;background:transparent;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:all var(--transition)}.sidebar-close:hover{color:var(--text-primary);background:#f1f5f9}.sidebar-nav{flex:1;padding:14px 12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.sidebar-link{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500;transition:all var(--transition)}.sidebar-link:hover{color:var(--text-primary);background:#f1f5f9}.sidebar-link.active{color:var(--accent);background:var(--accent-dim);font-weight:600;border-left-width:5px}.sidebar-icon{font-size:16px;width:22px;display:inline-flex;align-items:center;justify-content:center}.sidebar-icon svg{width:1em;height:1em}.sidebar-footer{padding:14px 16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.sidebar-user{display:flex;align-items:center;justify-content:space-between;gap:8px}.header-user{color:var(--text-secondary);font-size:14px}.header-role{font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:20px;font-weight:600;text-wrap:nowrap}.header-role.admin{background:var(--danger-dim);color:var(--danger)}.header-role.supervisor{background:var(--warning-dim);color:var(--warning)}.header-role.worker{background:var(--accent-dim);color:var(--accent)}.login-skeleton{padding:6px 0}.skeleton{position:relative;overflow:hidden;background:#e9edf2;border-radius:6px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);animation:shimmer 1.6s infinite}@keyframes shimmer{to{transform:translate(100%)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);font-family:inherit;text-decoration:none;white-space:nowrap}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 2px #2563eb59}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-outline{background:#fff;color:var(--text-secondary);border:1px solid var(--border)}.btn-outline:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:#fff}.btn-sm{padding:6px 14px;font-size:13px}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;transition:all var(--transition)}.btn-icon:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-size:17px;font-weight:600}.form-group{margin-bottom:16px}.form-label{display:block;font-size:12.5px;font-weight:600;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}.form-input,.form-select{width:100%;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:14.5px;font-family:inherit;transition:border-color var(--transition),box-shadow var(--transition);outline:none}.form-input:focus,.form-select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-dim)}.form-input::placeholder{color:var(--text-muted)}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239ca3af' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}.form-error{color:var(--danger);font-size:13px;margin-top:4px}.form-check{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--text-primary);cursor:pointer}.form-check input[type=checkbox]{width:16px;height:16px;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.form-hint{margin:6px 0 0;font-size:12px;color:var(--text-muted)}.category-scope{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px 12px;margin-top:8px;padding:10px 12px;max-height:200px;overflow-y:auto;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm)}.category-scope-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-primary);cursor:pointer}.category-scope-item input[type=checkbox]{width:15px;height:15px;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.category-scope-dot{width:10px;height:10px;flex-shrink:0;border-radius:50%;background:var(--border)}.dest-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.dest-label-row .form-label{margin-bottom:0}.link-btn{background:none;border:none;padding:0;color:var(--accent);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.link-btn:hover{text-decoration:underline}.form-row{display:flex;gap:12px}.form-row .form-group{flex:1;min-width:0}.quick-dest{display:flex;gap:8px;margin-top:0;align-items:center}.quick-dest .form-input{flex:1;min-width:0}.quick-dest .btn{flex-shrink:0}.table-container{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;padding:12px 16px;background:#f8fafc;color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.4px;font-weight:600;border-bottom:1px solid var(--border)}td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text-primary)}tr:last-child td{border-bottom:none}tr:hover td{background:#f9fafb}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600}.badge-add{background:var(--success-dim);color:var(--success)}.badge-remove{background:var(--danger-dim);color:var(--danger)}.badge-neutral{background:#6b72801f;color:var(--text-secondary)}.badge-edited{background:var(--warning-dim);color:var(--warning);font-weight:700}.badge-warn{background:var(--warning-dim);color:var(--warning);font-weight:700;margin-left:6px}.alert{padding:14px 18px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:16px}.alert-warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.alert-error{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.alert-info{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.alert-success{background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.sync-indicator{display:flex;align-items:center;gap:8px;font-size:13px;padding:7px 13px;border-radius:20px;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-sm);position:fixed;bottom:20px;right:20px;z-index:50}.sync-dot{width:8px;height:8px;border-radius:50%}.sync-dot.online{background:var(--success);animation:pulse 2s infinite}.sync-dot.offline{background:var(--danger)}.sync-dot.pending{background:var(--warning);animation:pulse 1s infinite}.sync-indicator.clickable{cursor:pointer;border:1px solid var(--border);transition:all var(--transition)}.sync-indicator.clickable:hover{border-color:var(--accent);background:#fff}.pending-list{max-height:320px;overflow-y:auto;margin:0 -8px;padding:0 8px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.topbar-status{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:10px 20px}.cache-status{display:inline-flex;align-items:center;gap:7px;font-size:12px;padding:5px 12px;border-radius:20px;background:#fff;border:1px solid var(--border);color:var(--text-secondary)}.cache-status.warming{color:var(--accent)}.cache-status.failed{color:var(--warning);background:var(--warning-dim);border-color:transparent}.cache-spinner{width:10px;height:10px;border:2px solid var(--accent-dim);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;position:relative;background:linear-gradient(180deg,#eef2ff 0%,#f8fafc 55%,var(--bg-primary) 100%)}.login-gear{position:absolute;top:16px;left:16px;color:var(--text-muted)}.login-gear:hover{color:var(--text-primary);border-color:var(--border)}.login-remember{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.login-remember input{accent-color:var(--accent)}.login-card{width:100%;max-width:420px;padding:40px}.login-logo{font-size:26px;font-weight:700;color:var(--accent);text-align:center;margin-bottom:8px;letter-spacing:-.3px;display:flex;flex-direction:column;align-items:center;gap:10px}.login-logo-img{width:84px;height:84px;object-fit:contain;border-radius:20px}.login-subtitle{text-align:center;color:var(--text-muted);margin-bottom:32px}.conn-status{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border);font-size:13px;color:var(--text-secondary)}.conn-dot{width:10px;height:10px;border-radius:50%;background:var(--text-muted);transition:background var(--transition)}.conn-online .conn-dot{background:var(--success);animation:pulse 2s infinite}.conn-degraded .conn-dot{background:var(--warning)}.conn-offline .conn-dot{background:var(--danger)}.env-info{margin-top:16px;padding-top:12px;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:4px}.env-info-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.env-info-row span{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);white-space:nowrap}.env-info-row code{font-size:11px;color:var(--text-secondary);background:#f8fafc;border:1px solid var(--border);border-radius:4px;padding:2px 6px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stock-search{position:relative;margin-bottom:16px}.stock-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.stock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:16px;background:#f8fafc;border-radius:var(--radius);border:1px solid var(--border)}.stock-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);transition:all var(--transition);border-left-width:4px}.stock-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.stock-card.negative{border-color:var(--danger);background:var(--danger-dim, #fef2f2)}.stock-card.negative:hover{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger),var(--shadow)}.stock-card-qty.negative{color:var(--danger)}.stock-card-name{font-size:15.5px;font-weight:600;margin-bottom:4px}.stock-card-sku{font-size:12px;color:var(--text-muted);margin-bottom:12px}.stock-card-qty{font-size:28px;font-weight:700;color:var(--text-primary)}.stock-card-unit{font-size:14px;color:var(--text-secondary);margin-left:4px}.stock-card-actions{display:flex;gap:8px;margin-top:12px}.btn-quick{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#f8fafc;color:var(--text-secondary);font-size:12.5px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.btn-quick:disabled{opacity:.45;cursor:default}.btn-quick.add{background-color:#d9ffe7;color:var(--success)}.btn-quick.add:hover:not(:disabled){background:var(--success-dim);border-color:var(--success)}.btn-quick.remove{background-color:#ffe4e4;color:var(--danger)}.btn-quick.remove:hover:not(:disabled){background:var(--danger-dim);border-color:var(--danger)}.transaction-form{max-width:600px}.materials-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;max-height:320px;overflow-y:auto;padding:2px}.material-card{display:flex;flex-direction:column;gap:4px;padding:12px 14px;text-align:left;background:#f8fafc;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:inherit;cursor:pointer;transition:all var(--transition);border-left-width:4px}.material-card:hover{border-color:var(--accent);background:#fff;box-shadow:var(--shadow-sm)}.material-card-name{font-weight:600;font-size:13.5px;line-height:1.35}.material-card-sku{font-size:11px;color:var(--text-muted);word-break:break-all}.material-info{background:#f8fafc;border-radius:var(--radius);padding:16px;margin-bottom:16px;border:1px solid var(--border)}.material-info-current{font-size:24px;font-weight:700;color:var(--text-primary)}.recent-transactions{margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.recent-tx{display:flex;align-items:center;gap:12px;padding:8px 0;font-size:13px;border-bottom:1px solid var(--border)}.recent-tx:last-child{border-bottom:none}.edit-history{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.edit-history-toggle{display:inline-flex;align-items:center;gap:8px;background:transparent;border:none;color:var(--text-secondary);font-size:13px;font-family:inherit;cursor:pointer;padding:4px 0;transition:color var(--transition)}.edit-history-toggle:hover{color:var(--accent)}.edit-history-list{margin-top:12px;display:flex;flex-direction:column;gap:10px;max-height:220px;overflow-y:auto}.edit-history-entry{background:#f8fafc;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font-size:12.5px}.edit-history-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.edit-history-meta strong{color:var(--text-primary)}.edit-history-meta span{color:var(--text-muted);font-size:11px}.btn-history-remove{width:22px;height:22px;border:none;color:var(--text-muted)}.btn-history-remove:hover{color:var(--danger);border-color:var(--danger);background:var(--danger-dim)}.edit-history-diff{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.edit-history-diff .old{color:var(--danger)}.edit-history-diff .new{color:var(--success);font-weight:600}.edit-history-diff .arrow{color:var(--text-muted)}.edit-history-reason{margin-top:4px;color:var(--text-muted);font-style:italic}.report-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;align-items:flex-end}.report-filters .form-group{margin-bottom:0;min-width:150px}.pagination{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}.pagination-size{display:flex;align-items:center;gap:10px}.pagination-size .form-label{margin-bottom:0;white-space:nowrap}.pagination-size .form-select{width:auto;min-width:80px;padding:8px 30px 8px 12px}.pagination-nav{display:flex;align-items:center;gap:10px}.pagination-info{color:var(--text-secondary);font-size:13px;white-space:nowrap}@media (max-width: 480px){.pagination{flex-direction:column;align-items:stretch}.pagination-nav{justify-content:space-between}}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}.admin-header .btn-group{display:flex;gap:10px;flex-wrap:wrap}.admin-header h2{font-size:22px;font-weight:700}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fadeIn .2s ease}.modal{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp .2s ease}.modal h3{font-size:17px;font-weight:600;margin-bottom:20px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-report{max-width:560px}.report-options{display:flex;flex-direction:column;gap:10px}.report-check{display:flex;align-items:center;gap:9px;font-size:13.5px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0}.report-check input[type=checkbox]{width:15px;height:15px;flex:none;cursor:pointer;accent-color:var(--accent)}.report-extra{display:flex;flex-direction:column;gap:10px;margin-left:4px;padding:12px 14px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--bg-primary)}.report-custom-range{display:flex;align-items:center;gap:8px;margin-top:8px}.report-range-sep{color:var(--text-muted);font-size:13px}.report-range-label{margin-top:8px;font-size:12.5px;font-weight:600;color:var(--text-muted)}.analytics-filters{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px 24px}.analytics-filters>.form-group{flex:1 1 240px;min-width:220px}.analytics-filters-hint{flex:1 1 100%;margin:0;font-size:12px;color:var(--text-muted)}.report-summary{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding:10px 12px;border-radius:var(--radius);background:var(--bg-primary);border:1px solid var(--border);font-size:12.5px;color:var(--text);word-break:break-word}.report-summary-label{display:inline-block;min-width:72px;font-weight:600;color:var(--text-muted)}.parts-report-kinds{display:flex;flex-direction:column;gap:6px}.parts-report-kind{display:flex;align-items:center;gap:9px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-primary);font-size:13.5px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color var(--transition),box-shadow var(--transition)}.parts-report-kind input[type=radio]{width:15px;height:15px;flex:none;cursor:pointer;accent-color:var(--accent)}.parts-report-kind.is-on{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.spin{animation:spin .8s linear infinite}.cat-manager-modal{max-width:560px}.cat-manager-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.cat-manager-header h3{margin-bottom:0}.cat-close-btn{background:none;border:none;cursor:pointer;font-size:16px;color:var(--text-muted);padding:6px 10px;border-radius:8px}.cat-close-btn:hover{background:var(--accent-dim);color:var(--accent)}.cat-editing-banner{display:flex;align-items:center;gap:8px;padding:8px 12px;margin-bottom:8px;border:1px solid var(--accent);background:var(--accent-dim);border-radius:var(--radius);font-size:13.5px;color:var(--accent)}.cat-editing-icon{flex-shrink:0}.cat-editing-cancel{margin-left:auto;background:none;border:none;cursor:pointer;color:var(--accent);font-size:14px;padding:4px 8px;border-radius:6px}.cat-editing-cancel:hover{background:#2563eb26}.cat-form-editing{opacity:.85}.cat-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.cat-form .form-input{flex:1;min-width:180px}.cat-color-input{width:42px;height:36px;border:1px solid var(--border);border-radius:8px;cursor:pointer;background:none;padding:2px}.cat-search{position:relative;margin-bottom:12px}.cat-search .form-input{padding-left:34px}.cat-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:13px;pointer-events:none}.cat-list{border:1px solid var(--border);border-radius:var(--radius);max-height:320px;overflow-y:auto}.cat-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--border)}.cat-row:last-child{border-bottom:none}.cat-row-editing{background:var(--accent-dim)}.cat-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.cat-name{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-count{font-size:12px;color:var(--text-muted);background:var(--bg-primary);border:1px solid var(--border);border-radius:999px;padding:1px 8px;min-width:26px;text-align:center}.cat-icon-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:4px 6px;border-radius:6px;display:inline-flex;align-items:center}.cat-icon-btn:hover{background:var(--accent-dim);color:var(--accent)}.cat-icon-danger:hover{background:var(--danger-dim);color:var(--danger)}.cat-empty{padding:28px 16px;text-align:center;color:var(--text-muted);font-size:13.5px}.cat-footnote{margin:10px 0 0;font-size:12.5px;color:var(--text-muted)}.cat-delete-confirm{margin-top:14px;padding:12px 14px;border:1px solid var(--danger);background:var(--danger-dim);border-radius:var(--radius);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.cat-delete-sub{display:block;font-size:12.5px;color:var(--text-muted);margin-top:2px}.cat-filter-card{margin-bottom:16px;padding:12px 16px}.cat-filter-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.cat-filter-label{font-size:13px;font-weight:600;color:var(--text-muted);display:inline-flex;align-items:center}.cat-filter-chips{display:flex;gap:10px;flex-wrap:wrap}.cat-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;min-height:36px;border-radius:999px;font-size:13px;border:1px solid var(--border);background:var(--bg-primary);color:var(--text);cursor:pointer;transition:background .15s,border-color .15s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.cat-chip:hover{border-color:var(--accent)}.cat-chip-on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600}.cat-chip-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.cat-chip-count{font-size:11.5px;color:var(--text-muted)}.cat-chip-on .cat-chip-count{color:var(--accent)}.stock-header-right{display:inline-flex;align-items:center;gap:12px}.stock-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}.stock-filter-btn.stock-filter-on{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);font-weight:600}.stock-filter-banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;padding:8px 12px;border:1px solid var(--accent);background:var(--accent-dim);border-radius:var(--radius);font-size:13px;color:var(--accent)}.stock-filter-clear{margin-left:auto;background:none;border:none;cursor:pointer;color:var(--accent);font-size:13px;font-weight:600;text-decoration:underline;padding:2px 4px}.stock-filter-clear:hover{color:var(--accent-hover)}.mselect{position:relative;min-width:170px}.mselect-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:none}.mselect-active{border-color:var(--accent);color:var(--accent);font-weight:600;background:var(--accent-dim)}.mselect-chevron{flex-shrink:0;opacity:.6}.mselect-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);max-height:260px;overflow-y:auto;min-width:200px}.mselect-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:13.5px;border-bottom:1px solid var(--border)}.mselect-item:last-of-type{border-bottom:none}.mselect-item:hover{background:var(--accent-dim)}.mselect-item input{accent-color:var(--accent);margin:0}.mselect-empty{padding:12px;color:var(--text-muted);font-size:13px;text-align:center}.mselect-clear{display:block;width:100%;background:none;border:none;border-top:1px solid var(--border);color:var(--accent);font-size:12.5px;font-weight:600;cursor:pointer;padding:8px 12px;text-align:left}.mselect-clear:hover{background:var(--accent-dim)}.cmtree-menu{min-width:280px;width:max-content;max-width:340px;right:auto}.cmtree-node{border-bottom:1px solid var(--border)}.cmtree-node:last-of-type{border-bottom:none}.cmtree-cat{cursor:pointer;-webkit-user-select:none;user-select:none}.cmtree-cat input[type=checkbox]{cursor:pointer}.cmtree-chevron{display:inline-flex;flex-shrink:0;width:12px;opacity:.5;transition:transform .12s ease}.cmtree-chevron.open{transform:rotate(90deg)}.cmtree-cat-name{font-weight:600}.cmtree-count{margin-left:auto;color:var(--text-muted);font-size:11px}.cmtree-children{background:#00000006}.cmtree-mat{padding-left:38px;font-weight:400}.cmtree-mat span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmtree-empty{padding:6px 12px 6px 38px;color:var(--text-muted);font-size:12px;font-style:italic}.chart-svg{width:100%;height:auto;display:block}.chart-tick{font-size:10px;fill:var(--text-muted)}.chart-empty{padding:32px 16px;text-align:center;color:var(--text-muted);font-size:13.5px}.pie-wrap{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.pie-svg{width:200px;height:200px;flex-shrink:0}.pie-total{font-size:26px;font-weight:700;fill:var(--text)}.pie-unit{font-size:11px;fill:var(--text-muted)}.pie-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;min-width:200px;flex:1}.pie-legend li{display:flex;align-items:center;gap:8px;font-size:13.5px}.pie-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.pie-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pie-val{font-weight:600}.pie-slice-clickable{cursor:pointer;transition:opacity .15s ease}.pie-slice-clickable:hover,.pie-slice-clickable:focus-visible{opacity:.78}.pie-slice-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pie-legend-btn{display:flex;align-items:center;gap:8px;width:100%;min-width:0;margin:-2px -4px;padding:2px 4px;border:0;border-radius:var(--radius-sm);background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.pie-legend-btn:hover,.pie-legend-btn:focus-visible{background:var(--accent-dim)}.pie-legend-btn:focus-visible{outline:1px solid var(--accent);outline-offset:0}.pie-hint{margin:14px 0 0;font-size:12px;color:var(--text-muted)}.bars{display:flex;flex-direction:column;gap:10px}.bar-row{display:flex;align-items:center;gap:10px}.bar-label{width:140px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;flex-shrink:0}.bar-track{flex:1;display:flex;flex-direction:column;gap:2px}.bar{height:9px;border-radius:4px;min-width:2px}.bar-in{background:#10b981}.bar-out{background:#ef4444}.bar-nums{width:100px;display:flex;gap:8px;font-size:12px;flex-shrink:0}.bar-num-in{color:#10b981;font-weight:600}.bar-num-out{color:#ef4444;font-weight:600}.bar-legend{display:flex;gap:18px;font-size:12.5px;color:var(--text-muted);margin-top:4px}.bar-legend span{display:inline-flex;align-items:center;gap:6px}.bar-swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.rank-list{display:flex;flex-direction:column;gap:8px}.rank-row{display:flex;align-items:center;gap:10px;font-size:13.5px}.rank-pos{width:20px;height:20px;border-radius:50%;background:var(--accent-dim);color:var(--accent);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.rank-name{width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.rank-track{flex:1;height:8px;background:var(--bg-primary);border-radius:4px;overflow:hidden}.rank-fill{height:100%;border-radius:4px}.rank-qty{font-weight:600;font-size:12.5px;white-space:nowrap;flex-shrink:0}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.toast-container{position:fixed;right:20px;bottom:20px;z-index:400;display:flex;flex-direction:column;align-items:flex-end;gap:10px;width:max-content;max-width:min(400px,calc(100vw - 40px));pointer-events:none}.toast-container>*{pointer-events:auto}.toast{position:relative;overflow:hidden;padding:14px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;animation:toastFade .25s ease;box-shadow:var(--shadow-lg)}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--danger);color:#fff}.toast-warning{background:var(--warning);color:#fff}@keyframes toastFade{0%{opacity:0}to{opacity:1}}.toast-close{flex:none;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin:-4px -6px -4px 0;padding:0;border:0;border-radius:4px;background:transparent;color:inherit;opacity:.65;cursor:pointer;transition:opacity .15s ease,background .15s ease}.toast-close:hover{opacity:1;background:#ffffff2e}.toast-close:focus-visible{outline:2px solid #ffffff;outline-offset:1px;opacity:1}.toast:not(.toast-tx){display:flex;align-items:center;gap:10px;padding-right:14px}.toast-tx{padding:0;overflow:hidden;color:#1f2937;background:#fff;border:1px solid #e5e7eb;box-shadow:var(--shadow-lg)}.toast-tx-head{display:flex;align-items:center;gap:8px;padding:9px 11px 9px 13px;background:#f8fafc;border-bottom:1px solid #eef2f7}.toast-tx-badge{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:50%;color:#fff;background:var(--success);font-size:10.5px}.toast-tx-remove .toast-tx-badge{background:var(--danger)}.toast-tx-label{flex:1;min-width:0;font-size:11.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:#475569}.toast-tx-body{padding:11px 13px}.toast-tx-material{font-size:14.5px;font-weight:600;color:#0f172a;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.toast-tx-qty{margin-top:4px;font-size:13.5px;font-weight:600;color:#475569}.toast-tx-add .toast-tx-qty{color:#166534}.toast-tx-remove .toast-tx-qty{color:#991b1b}.toast-tx-foot{display:flex;align-items:center;gap:8px;padding:8px 11px 8px 13px;border-top:1px solid #eef2f7;background:#f8fafc}.toast-tx-print{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:12.5px;font-weight:600;white-space:nowrap}.toast-progress{position:absolute;left:0;bottom:0;height:4px;width:100%;background:#ffffffe6;transform-origin:left center;animation:toast-drain var(--toast-duration, 4s) linear forwards;pointer-events:none}.toast-tx .toast-progress{background:var(--success)}.toast-tx-remove .toast-progress{background:var(--danger)}@keyframes toast-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast-tx-ref,.toast-tx-flag{font-size:11px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast-tx-ref{margin-left:auto}.toast-tx-flag{padding:2px 6px;border-radius:999px;background:#fef3c7;color:#92400e;font-weight:600}.stock-section{padding:20px}.stock-count{font-size:13px;font-weight:600;color:var(--text-secondary);background:#f1f5f9;border:1px solid var(--border);border-radius:999px;padding:4px 12px;white-space:nowrap}.stock-empty{text-align:center;padding:48px 16px;color:var(--text-muted)}.stock-empty .logo-img{width:56px;height:56px;opacity:.55;margin-bottom:12px}.stock-empty p:first-child{font-size:16px}.stock-empty p+p{margin-top:8px}.stat-card-clickable{border:1px solid var(--border);cursor:pointer;text-align:left;font:inherit;color:inherit;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.stat-card-clickable:hover:not(:disabled){border-color:#ef4444;box-shadow:var(--shadow-sm)}.stat-card-clickable:disabled{cursor:default;opacity:.85}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:10px}.stat-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}.stat-label{font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin-bottom:8px}.stat-value{font-size:28px;font-weight:700;color:var(--text-primary)}.stat-value.green{color:var(--success)}.stat-value.red{color:var(--danger)}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:10px}.page-header h1,.page-title{font-size:24px;font-weight:700}.page-title{margin-bottom:24px}.page-header .btn-group{display:flex;gap:10px;flex-wrap:wrap}.mobile-topbar,.sidebar-backdrop{display:none}.sidebar-header{padding:18px 18px 14px}@media (max-width: 1024px){.app-main{padding:20px 20px 48px}}@media (max-width: 768px){.mobile-topbar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:60}.mobile-topbar-logo{font-size:16px;font-weight:700;color:var(--accent);display:inline-flex;align-items:center;gap:8px}.mobile-topbar-logo .logo-img{width:auto;height:35px;border-radius:0}.sidebar{position:fixed;top:0;left:0;width:280px;transform:translate(-100%);transition:transform .25s cubic-bezier(.4,0,.2,1);z-index:120;box-shadow:4px 0 24px #10182829;display:flex;flex-direction:column;max-height:100vh;max-height:100dvh}.sidebar.open{transform:translate(0)}.sidebar-close{display:inline-flex}.sidebar-header{flex-shrink:0;border-bottom:1px solid var(--border);padding:18px 18px 14px;display:flex;align-items:center;justify-content:space-between}.sidebar-nav{flex:1 1 auto;min-height:0;padding:10px 14px 6px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-gutter:stable}.sidebar-footer{flex-shrink:0;padding:14px 16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.sidebar-backdrop{display:block;position:absolute;left:280px;top:0;width:calc(100% - 280px);height:100vh;height:100dvh;background:#0f172a66;z-index:110;opacity:0;pointer-events:none;transition:opacity .25s ease}.sidebar-backdrop.visible{opacity:1;pointer-events:auto}.app-main{padding:16px 14px 48px}.card{padding:18px}.table-container{-webkit-overflow-scrolling:touch}table{min-width:560px}.admin-header{flex-direction:column;align-items:stretch;gap:12px}.admin-header .btn{width:100%}.page-header .btn-group .btn{flex:1}.stats-row{grid-template-columns:1fr 1fr}.report-filters{flex-direction:column}.report-filters .form-group{min-width:100%}.stock-grid{grid-template-columns:1fr}.modal{padding:14px 12px;max-width:100%}.login-card{padding:28px 20px}.env-info-row{flex-direction:column;align-items:flex-start}.sync-indicator{bottom:14px;right:14px}.modal table{min-width:0}.modal-overlay{padding:0}}@media (max-width: 480px){.stats-row{grid-template-columns:1fr}.page-header .btn-group{flex-direction:column}.btn{padding:8px 16px;font-size:13px}.recent-tx{flex-wrap:wrap;gap:6px}.toast-container{right:12px;bottom:12px;max-width:calc(100vw - 24px)}.toast{max-width:none}.material-info{flex-wrap:wrap}.btn.btn-icon{padding:0!important}}.user-status{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap;background:#f1f5f9;color:#64748b}.user-status-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.user-status.online{background:#dcfce7;color:#166534}.user-status.online .user-status-dot{box-shadow:0 0 0 3px #16653426}.user-status.disabled{background:#fee2e2;color:#991b1b}tr.row-disabled td{opacity:.6}tr.row-disabled td:first-child{text-decoration:line-through}.badge-lowstock{display:inline-flex;align-items:center;margin-left:8px;padding:2px 8px;border-radius:999px;background:var(--warning-dim);color:var(--warning);font-size:11px;font-weight:700;letter-spacing:.02em}.lsq-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:var(--accent-dim);color:var(--accent);font-size:12px;font-weight:600}.lsq-badge.lsq-default{background:var(--bg-primary);color:var(--text-secondary)}.bell-toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;margin-left:8px;border-radius:var(--radius-sm);vertical-align:middle;transition:color var(--transition),background var(--transition)}.bell-toggle:hover{color:var(--accent);background:var(--accent-dim)}.bell-toggle.active{color:var(--accent)}.update-banner{position:fixed;top:60px;left:50%;transform:translate(-50%);z-index:2000;display:flex;align-items:center;gap:12px;padding:10px 12px 10px 16px;background:var(--bg-card);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-width:calc(100vw - 24px)}.update-banner-text{font-size:13.5px;color:var(--text-primary);white-space:nowrap}.update-banner-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;font-size:13px;flex-shrink:0}.update-banner-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;flex-shrink:0;transition:background var(--transition),color var(--transition)}.update-banner-close:hover{background:var(--bg-primary);color:var(--text-primary)}.update-banner-detail{color:var(--text-muted);font-size:12px}.update-progress{width:160px;height:6px;background:var(--bg-primary);border-radius:999px;overflow:hidden;flex-shrink:0}.update-progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}.dev-mode-banner{position:fixed;top:14px;right:14px;z-index:2100;padding:5px 12px;font-size:11px;font-weight:700;letter-spacing:1px;color:#b45309;background:#fef3c7;border:1px solid #fcd34d;border-radius:999px;box-shadow:var(--shadow-sm);pointer-events:none}.stock-cat{margin-bottom:18px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color var(--transition)}.stock-cat:hover{border-color:var(--border-strong, var(--border))}.stock-cat-header{display:flex;align-items:center;transition:background var(--transition)}.stock-cat-header:hover{background:#f8fafc}.stock-cat-header.open{border-bottom:1px solid var(--border)}.stock-cat-toggle{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:12px 16px;background:transparent;border:0;cursor:pointer;text-align:left;font:inherit;color:inherit}.stock-cat-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.stock-cat-name{font-weight:700;font-size:14.5px;color:var(--text-primary)}.stock-cat-count{margin-left:auto;font-size:12.5px;color:var(--text-muted)}.stock-cat-chevron{color:var(--text-muted);transition:transform .2s ease}.stock-cat-header.open .stock-cat-chevron{transform:rotate(180deg)}.stock-cat-bell{flex:none;margin-right:10px;position:relative}.stock-cat-bell.partial{color:var(--accent)}.stock-cat-bell-count{position:absolute;top:-3px;right:-4px;min-width:14px;height:14px;padding:0 3px;border-radius:999px;background:var(--accent);color:#fff;font-size:9.5px;font-weight:700;line-height:14px;text-align:center}.stock-cat .stock-grid{margin-top:0;border:0;border-radius:0}.stock-cat>.stock-grid:first-child{border-top:0}.settings-list{max-width:720px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 20px}.settings-row+.settings-row{border-top:1px solid var(--border)}.settings-title{font-weight:600;font-size:14.5px;color:var(--text-primary)}.settings-desc{font-size:13px;color:var(--text-muted);margin-top:4px}.settings-scope{margin:0 20px 18px;padding:14px 16px 16px;border:1px solid var(--rule-soft);background:var(--paper-sunk)}.settings-scope-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.settings-scope-title{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}.settings-scope-hint{margin-top:5px;font-size:12.5px;line-height:1.45;color:var(--ink-mute);max-width:52ch}.settings-scope-actions{display:flex;gap:6px;flex-wrap:wrap}.settings-scope-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;margin-top:14px}.settings-scope-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--rule-soft);background:var(--paper-raised);font-size:12.5px;color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none}.settings-scope-item:hover{border-color:var(--rule-strong)}.settings-scope-item.active{border-color:var(--ink);color:var(--ink);font-weight:500}.settings-scope-item input{width:14px;height:14px;margin:0;flex-shrink:0;accent-color:var(--ink);cursor:pointer}.settings-scope-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.settings-scope-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-scope-empty{margin-top:12px;font-size:12.5px;color:var(--ink-mute)}.settings-scope+.settings-row{border-top:none}.switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch .slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-primary);border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:background var(--transition),border-color var(--transition)}.switch .slider:before{content:"";position:absolute;width:18px;height:18px;left:2px;top:2px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #10182840;transition:transform var(--transition)}.switch input:checked+.slider{background:var(--accent);border-color:var(--accent)}.switch input:checked+.slider:before{transform:translate(20px)}.switch input:disabled+.slider{opacity:.55;cursor:not-allowed}.update-banner-ready{border-left-color:#22c55e}.update-banner-icon-ok{color:#22c55e;flex-shrink:0}.update-banner-error{border-left-color:#ef4444}.update-banner-icon-err{color:#ef4444;flex-shrink:0}@media (max-width: 480px){.update-banner{flex-wrap:wrap;top:8px}.update-banner-text{white-space:normal;flex:1}.update-progress{width:100%;order:3}}.verify-page{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;background:var(--bg-primary)}.verify-card{width:100%;max-width:520px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:28px}.verify-brand{font-size:15px;font-weight:700;color:var(--accent);border-bottom:2px solid var(--accent);padding-bottom:12px;margin-bottom:20px}.verify-title{font-size:20px;font-weight:700;margin:12px 0 16px}.verify-badge{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px}.verify-badge.ok{background:var(--success-dim);color:var(--success)}.verify-badge.bad{background:var(--danger-dim);color:var(--danger)}.verify-badge.warn{background:var(--warning-dim);color:var(--warning)}.verify-state{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:8px 0;font-size:14px;color:var(--text-secondary)}.verify-spin{animation:verify-spin 1s linear infinite}@keyframes verify-spin{to{transform:rotate(360deg)}}.verify-table{width:100%;min-width:0;border-collapse:collapse}.verify-table tr{border-bottom:1px solid var(--border)}.verify-table tr:last-child{border-bottom:none}.verify-table td{padding:10px 4px;font-size:14px;vertical-align:top}.verify-table td.label{width:150px;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.4px;font-weight:600}.verify-table td.value{color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.verify-key{margin-top:20px;padding-top:14px;border-top:1px solid var(--border)}.verify-key span{display:block;margin-bottom:4px;font-size:11px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--text-muted)}.verify-key code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--text-secondary);word-break:break-all}.verify-hint{margin:12px 0 10px;font-size:13px;color:var(--text-secondary)}.verify-choices{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.verify-choice{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-secondary);color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--transition),background var(--transition)}.verify-choice:hover{border-color:var(--accent);background:var(--accent-dim)}.verify-choice-driver{font-size:14px;font-weight:600}.verify-choice-date{font-size:12px;color:var(--text-muted);white-space:nowrap}.verify-back{display:block;align-items:center;gap:6px;margin:14px 0 10px;padding:0;border:none;background:none;color:var(--accent);font-size:13px;font-weight:600;cursor:pointer}.verify-back:hover{text-decoration:underline}.verify-footer{margin-top:22px;padding-top:12px;border-top:1px solid var(--border);font-size:11px;color:var(--text-muted);text-align:right}@media (max-width: 600px){.verify-page{padding:20px 12px}.verify-card{padding:20px 16px}.verify-title{font-size:18px;margin:10px 0 14px}.verify-table,.verify-table tbody,.verify-table tr,.verify-table td{display:block;width:auto}.verify-table tr{padding:10px 0}.verify-table tr:first-child{padding-top:0}.verify-table td{padding:0}.verify-table td.label{width:auto;margin-bottom:3px}.verify-table td.value{font-size:15px;overflow-wrap:anywhere}.verify-key code{font-size:13px;letter-spacing:.5px}}.sidebar-link-btn{width:100%;text-align:left;background:none;border:none;font-family:inherit;cursor:pointer}.qr-verify-modal{max-width:440px}.qr-verify-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.qr-verify-head h3{display:flex;align-items:center;gap:10px;margin:0}.qr-verify-head-icon{color:var(--accent)}.qr-verify-row{display:flex;align-items:stretch;gap:8px}.qr-verify-row .form-input{flex:1;min-width:0}.qr-scan-btn{display:inline-flex;align-items:center;justify-content:center;padding:0 14px;flex-shrink:0}.qr-scanner{position:relative;width:100%;aspect-ratio:4 / 3;background:#0f172a;border-radius:var(--radius-lg);overflow:hidden}.qr-scanner-video{width:100%;height:100%;object-fit:cover;display:block}.qr-scanner-frame{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:58%;aspect-ratio:1;border:3px solid rgba(255,255,255,.9);border-radius:12px;box-shadow:0 0 0 9999px #0f172a59;pointer-events:none}.qr-scanner-hint{position:absolute;left:0;right:0;bottom:12px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:500;color:#f8fafc;text-shadow:0 1px 3px rgba(0,0,0,.7);pointer-events:none}.qr-scanner-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;font-size:14px;color:#f8fafc}.qr-scanner-stop{position:absolute;top:10px;right:10px}.bon-banner{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:18px;padding:10px 14px;border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent-dim);color:var(--accent);font-size:13.5px;font-weight:600}.bon-banner-cancel{margin-left:auto;padding:5px 12px;border:1px solid var(--accent);border-radius:var(--radius);background:#fff;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.bon-banner-cancel:hover{background:var(--accent);color:#fff}.btn-quick.bon{background-color:var(--accent);border-color:var(--accent);color:#fff}.btn-quick.bon:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.stock-card--in-bon{outline:2px solid var(--accent);outline-offset:-2px}.stock-card--in-bon:hover{outline-color:var(--accent-hover)}.bon-fab{--bon-fab-right: 24px;position:fixed;right:var(--bon-fab-right);bottom:calc(70px + env(safe-area-inset-bottom,0px));width:56px;height:56px;border:none;border-radius:50%;background:var(--accent);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #2563eb59;z-index:150;transition:transform var(--transition),background var(--transition)}.bon-fab:hover{background:var(--accent-hover);transform:translateY(-2px)}.bon-fab-count{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;border:2px solid #ffffff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}.bon-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:160}.bon-panel{position:fixed;top:0;right:0;bottom:0;width:390px;max-width:94vw;background:var(--bg-card, #ffffff);border-left:1px solid var(--border);box-shadow:-14px 0 34px #0f172a24;display:flex;flex-direction:column;transform:translate(105%);transition:transform var(--transition);z-index:170}.bon-panel.open{transform:translate(0)}.bon-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border)}.bon-panel-head h3{font-size:16px;font-weight:700}.bon-panel-cancel{padding:5px 10px;border:1px solid var(--danger);border-radius:var(--radius);background:transparent;color:var(--danger);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.bon-panel-cancel:hover{background:var(--danger);color:#fff}.bon-panel-body{flex:1;overflow-y:auto;padding:16px 18px}.bon-panel-foot{padding:14px 18px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--border)}.bon-panel-foot .btn{width:100%}.bon-lines{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:8px}.bon-line{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#f8fafc}.bon-line-info{flex:1;min-width:0}.bon-line-name{display:block;font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bon-line-note{display:block;font-size:12px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bon-line-qty{width:76px;flex:none;text-align:center;padding:7px 8px}.bon-empty{text-align:center;color:var(--text-muted);font-size:14px;padding:26px 12px;border:1px dashed var(--border);border-radius:var(--radius);margin-bottom:16px}.bon-suggestions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.bon-suggestion{border:1px solid var(--border);background:#f8fafc;color:var(--text-secondary);border-radius:999px;padding:4px 10px;font-size:12px;font-family:inherit;cursor:pointer;transition:all var(--transition)}.bon-suggestion:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.bon-dialog-sub{color:var(--text-muted);font-size:13px;margin:-4px 0 14px}.bon-dialog-sku{margin-bottom:12px}.bon-choice{display:flex;flex-direction:column;gap:10px;margin-top:14px}.bon-pick{display:flex;flex-direction:column;gap:8px;margin-top:12px}.bon-pick-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#f8fafc;font:inherit;text-align:left;cursor:pointer;transition:all var(--transition)}.bon-pick-item:hover{border-color:var(--accent);background:var(--accent-dim)}.bon-pick-qty{font-weight:700;white-space:nowrap}.bon-pick-note{color:var(--text-muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.bon-check{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text-secondary);cursor:pointer;margin-bottom:12px}.bon-check input{width:15px;height:15px;accent-color:var(--accent)}.bon-exit-text,.bon-lock-text{color:var(--text-secondary);font-size:14px;margin-top:8px}.bon-ref-tag{display:inline-block;margin-left:6px;padding:1px 6px;border:1px solid var(--accent);border-radius:4px;background:var(--accent-dim);color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:700;letter-spacing:.5px;text-decoration:none;white-space:nowrap}.bon-ref-tag:hover{background:var(--accent);color:#fff}.bon-ref-block{display:flex;flex-direction:column;gap:4px}.bon-ref-label{font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-weight:600}.bon-ref-large{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:32px;font-weight:700;letter-spacing:3px}.bon-queued{margin-bottom:14px}.bon-edited-flag{display:flex;align-items:center;gap:8px;margin-bottom:14px;padding:8px 12px;border:1px solid #fde68a;border-radius:var(--radius);background:#fffbeb;color:#92400e;font-size:13px}.bon-edited-hint{color:var(--text-muted)}.bon-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px}.bon-meta-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:600;margin-bottom:4px}.bon-meta-value{font-size:14px;font-weight:600;color:var(--text-primary);word-break:break-word}.bon-locked{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:var(--accent-dim);color:var(--accent);font-size:12.5px;font-weight:700}.bon-lines-card{margin-top:20px}.bon-lines-card .card-title{margin-bottom:12px}.bon-history-btn{border:none;font-family:inherit;cursor:pointer;margin-left:8px;padding-top:2px;padding-bottom:2px}.bon-history-row td{background:#f8fafc}.bon-history-list{padding:4px 0}.bon-state{text-align:center;color:var(--text-muted);padding:40px 24px}.bon-detail--verify .page-header{margin-top:16px;margin-bottom:14px}.bon-detail--verify .bon-ref-large{font-size:26px}.bon-detail--verify .card{background:transparent;border:none;box-shadow:none;padding:0;margin-top:14px}@media (max-width: 768px){.bon-panel{top:auto;left:0;right:0;bottom:0;width:100%;max-width:100%;max-height:80vh;border-left:none;border-top:1px solid var(--border);border-radius:14px 14px 0 0;transform:translateY(105%)}.bon-panel.open{transform:translateY(0)}.bon-fab{--bon-fab-right: 16px;bottom:calc(65px + env(safe-area-inset-bottom,0px));width:52px;height:52px}.bon-ref-large{font-size:26px;letter-spacing:2px}}@media (max-width: 480px){.bon-meta{grid-template-columns:1fr 1fr}.bon-line-qty{width:64px}.bon-panel-cancel{font-size:11px;padding:4px 8px}}.recent-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.recent-toggle{display:inline-flex;padding:3px;border:1px solid var(--border);border-radius:999px;background:var(--bg-primary);flex-shrink:0}.recent-toggle-btn{border:none;background:transparent;color:var(--text-secondary);font-family:inherit;font-size:12.5px;font-weight:600;padding:5px 14px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:color var(--transition),background var(--transition),box-shadow var(--transition)}.recent-toggle-btn:hover{color:var(--text-primary)}.recent-toggle-btn.active{background:var(--bg-card);color:var(--accent);box-shadow:var(--shadow-sm)}.bons-table .bon-ref-tag{margin-left:0}.recent-empty{color:var(--text-muted);font-size:13.5px;padding:6px 0 2px}@media (max-width: 480px){.recent-head{align-items:flex-start}.recent-toggle-btn{padding:5px 10px;font-size:12px}}.update-overlay{z-index:500}.update-modal{max-width:400px;text-align:center}.update-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-bottom:14px;border-radius:50%;background:var(--accent-dim);color:var(--accent)}.update-modal h3{margin-bottom:8px}.update-text{font-size:14px;line-height:1.55;color:var(--text-secondary)}.update-modal .modal-actions{justify-content:center}.electron-chrome{position:fixed;top:0;left:0;right:0;height:env(titlebar-area-height,45px);z-index:10001;box-sizing:content-box;border-bottom:1px solid var(--rule)}.electron-drag{position:absolute;top:0;right:0;bottom:0;left:0;-webkit-app-region:drag}.electron-caption{position:relative;display:flex;align-items:center;justify-content:start;height:100%;padding-right:128px;background:var(--paper);-webkit-app-region:drag}.electron-caption-title{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);pointer-events:none;margin-left:10px}.electron-caption-refresh{display:flex;align-items:center;justify-content:center;width:40px;height:100%;padding:0;border:none;border-left:1px solid var(--rule);border-right:1px solid var(--rule);background:transparent;color:var(--ink-soft);cursor:pointer;-webkit-app-region:no-drag;transition:background .16s cubic-bezier(.2,.6,.2,1),color .16s cubic-bezier(.2,.6,.2,1)}.electron-caption-refresh:hover{background:var(--paper-sunk);color:var(--ink)}.electron-caption-refresh:active{transform:translateY(1px)}body.is-electron .app{padding-top:40px}body.is-electron .sidebar{top:40px;height:calc(100vh - 40px)}body.is-electron .bon-panel,body.is-electron .bon-panel-backdrop{top:40px}body.is-electron:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:10002;pointer-events:none;border:1px solid var(--rule-strong)}.loader{position:fixed;top:0;right:0;bottom:0;left:var(--sidebar-width);z-index:9000;background:var(--paper);background-image:var(--grid-image);background-size:var(--grid-size);background-position:-1px -1px;background-attachment:fixed;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;opacity:1;transition:opacity .35s cubic-bezier(.2,.6,.2,1)}.loader--out{opacity:0;pointer-events:none}.no-sidebar{--sidebar-width: 0px}.loader--inline{position:static;background:none;background-image:none;min-height:130px;gap:12px}.loader--inline .loader-logo{width:min(9vmin,44px)}.loader--inline .loader-text{font-size:10.5px}.loader-logo{width:min(18vmin,80px);overflow:visible}.loader-pillar{fill:currentColor;stroke:#000;stroke-width:2;stroke-linejoin:round;color:#999b9c;animation:loaderHue 1.8s ease-in-out infinite}.loader-p1{animation-delay:0s}.loader-p2{animation-delay:-.6s}.loader-p3{animation-delay:-1.2s}@keyframes loaderHue{0%,to{color:#999b9c}33%{color:#374f60}66%{color:#18344f}}.loader-text{margin:0;color:#18344f;font-family:var(--font-mono);font-size:12px;font-weight:500;letter-spacing:.15em;text-transform:lowercase}.loader-text i{font-style:normal;opacity:0;animation:loaderDot 1.5s infinite}.loader-text i:nth-of-type(2){animation-delay:.25s}.loader-text i:nth-of-type(3){animation-delay:.5s}@keyframes loaderDot{0%,15%{opacity:0}35%,80%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.loader-pillar,.loader-text i{animation:none}.loader{transition-duration:.01ms}}.sidebar-group-items{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .26s cubic-bezier(.2,.6,.2,1),visibility 0s linear .26s}.sidebar-group-items.open{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .26s cubic-bezier(.2,.6,.2,1),visibility 0s}.sidebar-group-items-inner{min-height:0;overflow:hidden}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:var(--paper);background-image:var(--grid-image);background-size:var(--grid-size);background-position:-1px -1px;background-attachment:fixed;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;overflow:hidden;animation:introBgOut .5s ease-in 3.2s forwards}.intro-logo{width:min(30vmin,140px);overflow:visible}.intro-pillar{opacity:0;stroke:#000;stroke-width:2;stroke-linejoin:round;transform-box:fill-box;transform-origin:center;animation:introFocus 1s ease-out calc(var(--i) * .12s) both,introSink .7s cubic-bezier(.6,0,.4,1) calc(2.3s + var(--i) * .08s) forwards}.intro-p1{--i: 0}.intro-p2{--i: 1}.intro-p3{--i: 2}.intro-name{margin:0;color:#18344f;font-size:clamp(22px,5vmin,34px);font-weight:700;letter-spacing:.12em;opacity:0;animation:introTextIn .7s ease-out 1.1s both,introTextOut .35s ease-in 2.75s forwards}.intro-skipping{animation:introBgOut .25s ease-in forwards}.intro-skipping .intro-pillar,.intro-skipping .intro-name{animation:none;opacity:1}@keyframes introFocus{0%{opacity:0;transform:scale(6);filter:blur(10px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes introSink{0%{opacity:1;transform:none;transform-origin:50% 100%}to{opacity:1;transform:scaleY(0);transform-origin:50% 100%}}@keyframes introTextIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes introTextOut{0%{opacity:1}to{opacity:0}}@keyframes introBgOut{to{opacity:0}}@media (prefers-reduced-motion: reduce){.intro{display:none}}.sidebar-group{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px 6px;margin-top:10px;background:none;border:none;border-top:1px solid var(--border);color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:color var(--transition)}.sidebar-group:first-child{border-top:none;margin-top:0}.sidebar-group:hover{color:var(--text-secondary)}.sidebar-group .sidebar-icon{font-size:13px}.sidebar-group-label{flex:1;text-align:left}.sidebar-group-chevron{transition:transform var(--transition)}.sidebar-group-chevron.open{transform:rotate(180deg)}.sidebar-standalone{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.parts-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.parts-action-big{padding:12px 20px;font-size:14px}.parts-section{margin-bottom:20px}.parts-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}.parts-toolbar .form-input,.parts-toolbar .form-select,.parts-toolbar .parts-combo{flex:1 1 200px;min-width:140px}.parts-filter-select{flex:0 0 170px}.parts-filter-date{flex:0 0 160px}.parts-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;margin-bottom:18px}.parts-filters .form-input,.parts-filters .form-select{flex:1 1 200px;min-width:140px}.parts-filter-hint{margin:0 0 18px;padding:10px 14px;border-left:2px solid var(--warning);background:var(--warning-dim);color:var(--text-secondary);font-size:12.5px}.parts-empty{display:flex;align-items:center;justify-content:center;gap:8px;padding:32px 16px;color:var(--text-muted);font-size:13px}.parts-strong{font-weight:600;color:var(--text-primary)}.parts-muted{color:var(--text-muted);font-size:12px}.parts-unit{color:var(--text-muted);font-size:11px}.parts-num{text-align:right;font-variant-numeric:tabular-nums}.parts-neg{color:var(--danger);font-weight:600}.parts-row-off{opacity:.55}.parts-kept-num{color:var(--text-primary);font-weight:600}.parts-kept-hint{margin:-6px 0 14px;max-width:80ch}.parts-kept-note{display:flex;align-items:flex-start;gap:9px;margin-top:16px;padding:10px 14px;border-left:2px solid var(--warning);background:var(--warning-dim);font-size:12.5px;line-height:1.45}.parts-view-closed{margin-left:8px}.parts-row-actions{display:flex;flex-wrap:wrap;gap:6px}.parts-modal-note{margin:6px 0 14px}.parts-step{margin-bottom:16px}.parts-step table tbody tr.parts-row-warn td{background:var(--warning-dim)}.parts-step table tbody tr.parts-row-warn td:first-child{box-shadow:inset 3px 0 0 var(--warning)}.parts-check-line{margin:10px 0 6px}.parts-check-hint{margin:0 0 6px;font-size:13px;max-width:70ch}.parts-step-title{margin:0 0 14px;font-size:14px;font-weight:700;color:var(--text-primary)}.parts-optional{color:var(--text-muted);font-weight:400;font-size:12px}.parts-subtitle{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:12px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.parts-subtitle-gap{margin-top:22px}.parts-subtitle svg{color:var(--text-muted)}.parts-badge-input{display:flex;gap:8px}.parts-badge-input .form-input{flex:1}.parts-borrower-chip{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--success-dim);color:var(--success);font-size:13px;font-weight:600}.parts-borrower-picked{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.parts-borrower-picked .parts-borrower-chip{margin-top:0}.parts-enrol{margin-top:10px}.parts-enrol-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.parts-enrol-row .form-input{flex:1 1 160px}.parts-save-row{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.parts-add-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.parts-add-row .btn.active{border-color:var(--accent);color:var(--accent)}.parts-picker{padding:12px;margin-bottom:16px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-primary)}.parts-picker-list{max-height:260px;overflow-y:auto;margin-top:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card)}.parts-pick-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;background:none;border:none;border-bottom:1px solid var(--border);text-align:left;font-size:13px;color:var(--text-primary);cursor:pointer;transition:background var(--transition)}.parts-pick-row:last-child{border-bottom:none}.parts-pick-row:hover{background:var(--accent-dim)}.parts-pick-name{flex:1}.parts-pick-stock{color:var(--text-muted);font-size:12px;white-space:nowrap}.parts-picker-hint{margin-top:8px}.parts-combo{position:relative}.parts-combo-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;cursor:pointer;background-image:none;padding-right:14px}.parts-combo-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parts-combo-chevron{flex:0 0 auto;color:var(--text-muted);transition:transform var(--transition)}.parts-combo-chevron.open{transform:rotate(180deg)}.parts-combo-panel{position:absolute;z-index:40;top:calc(100% + 4px);left:0;right:0;padding:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 12px 28px #0f172a29}.parts-combo-panel .parts-picker-list{margin-top:8px}.parts-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.parts-lines{margin-top:8px}.parts-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;background:var(--bg-card)}.parts-line-main{display:flex;flex-direction:column;gap:2px}.parts-stepper{display:flex;align-items:center;gap:6px}.parts-line-qty{min-width:32px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums}.parts-over{color:var(--warning);font-weight:600;font-size:12px}.parts-qty-input{width:78px;padding:6px 8px;text-align:right}.parts-confirm{padding:20px}.parts-confirm-head{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--border)}.parts-confirm-icon{color:var(--success);font-size:20px}.parts-confirm-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;padding:16px 0}.parts-line-list{list-style:none;margin:0;padding:0}.parts-line-list li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}.parts-line-list li:last-child{border-bottom:none}.parts-slip-list{display:flex;flex-direction:column;gap:10px}.parts-slip-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card)}.parts-slip-card-on{border-color:var(--accent);background:var(--accent-dim)}.parts-slip-main{display:flex;flex-direction:column;gap:4px}.parts-slip-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.parts-slip-actions{display:flex;flex-wrap:wrap;gap:6px}.parts-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.parts-tab{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--border);border-radius:999px;background:var(--bg-card);color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition)}.parts-tab:hover{border-color:var(--accent);color:var(--accent)}.parts-tab-on{background:var(--accent);border-color:var(--accent);color:#fff}.parts-report-block{padding:12px 0;border-bottom:1px solid var(--border)}.parts-report-block:last-child{border-bottom:none}.parts-report-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.parts-warn-text{color:var(--warning);font-weight:600}.parts-edit-subject{display:flex;flex-direction:column;gap:2px;padding:10px 12px;margin-bottom:14px;border-radius:var(--radius-sm);background:var(--bg-primary)}.parts-history{margin-bottom:14px}.parts-history-list{list-style:none;margin:10px 0 0;padding:0;font-size:12px}.parts-history-row{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0;border-bottom:1px solid var(--border);color:var(--text-secondary)}.parts-history-row:last-child{border-bottom:none}.parts-history-when{color:var(--text-muted);font-variant-numeric:tabular-nums}.parts-machine-list,.parts-group-list{padding:12px}.parts-machine-block,.parts-group{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:10px;overflow:hidden;background:var(--bg-card)}.parts-machine-block:last-child,.parts-group:last-child{margin-bottom:0}.parts-machine-head,.parts-group-head{display:flex;align-items:center;gap:8px;width:100%;padding:12px 14px;background:var(--bg-primary);border:none;text-align:left;font-size:13px;font-weight:700;color:var(--text-primary);cursor:pointer;transition:background var(--transition)}.parts-machine-head.open,.parts-group-head.open{border-bottom:1px solid var(--border)}.parts-machine-head:hover,.parts-group-head:hover{background:var(--accent-dim)}.parts-machine-head-static:hover,.parts-group-head-static:hover{background:var(--bg-primary)}.parts-machine-chevron,.parts-group-chevron{color:var(--text-muted);transition:transform var(--transition);flex:0 0 auto}.parts-machine-icon,.parts-group-icon{color:var(--text-muted);flex:0 0 auto}.parts-machine-name,.parts-group-name{flex:0 1 auto}.parts-machine-total,.parts-group-total{margin-left:auto;color:var(--text-muted);font-size:12px;font-weight:500;white-space:nowrap}.parts-machine-search{margin-bottom:0;flex:1 1 260px}.parts-search-hint{padding:8px 14px 0;color:var(--text-muted);font-size:12px}.parts-cat-block+.parts-cat-block,.parts-sub-block+.parts-sub-block{border-top:1px solid var(--border)}.parts-cat-head,.parts-sub-head{display:flex;align-items:center;gap:8px;padding:12px 14px 10px;font-size:13px;font-weight:700;color:var(--text-primary)}.parts-cat-bar,.parts-sub-bar{flex:0 0 auto;width:3px;height:15px;border-radius:2px;background:var(--accent)}.parts-cat-name,.parts-sub-name{flex:0 1 auto}.parts-sub-head svg{color:var(--text-muted);flex:0 0 auto}.parts-cat-count,.parts-sub-count{margin-left:auto;padding:1px 9px;border:1px solid var(--border);border-radius:999px;background:var(--bg-primary);color:var(--text-secondary);font-size:11px;font-weight:600}.parts-cat-block .table-container,.parts-sub-block .table-container{margin:0 14px 14px;border-radius:var(--radius-sm)}.parts-wizard-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;margin-bottom:16px}.parts-wizard-slip{display:flex;flex-direction:column;gap:2px;text-align:left}.parts-wizard-tags{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}.parts-line-dirty{border-color:var(--accent);background:var(--accent-dim)}.parts-hint{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-muted);font-size:12px}.parts-hint svg{flex:0 0 auto}.parts-slip-list-pad{padding:12px}.parts-add-count{align-self:center}.parts-picker-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px}.parts-picker-field{display:flex;flex-direction:column;gap:5px;min-width:0}.parts-picker-field .form-label{margin:0}.parts-picker-search{margin-top:10px}.parts-picker-scroll{max-height:340px;overflow-y:auto;margin-top:10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card)}.parts-picker-scroll .parts-picker-list{max-height:none;overflow:visible;margin-top:0;border:none;border-radius:0;background:none}.parts-picker-cat+.parts-picker-cat{border-top:1px solid var(--border)}.parts-picker-cat-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-primary);border-bottom:1px solid var(--border);font-size:12px;font-weight:700;color:var(--text-primary)}.parts-pick-side{display:flex;align-items:center;gap:10px;flex:0 0 auto}.parts-pick-row.parts-pick-added{background:var(--accent-dim)}.parts-pick-added-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;white-space:nowrap}.parts-line-modal{max-width:540px}.parts-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 18px;margin:0 0 18px}.parts-info-row{display:flex;flex-direction:column;gap:1px}.parts-info-row dt{color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.parts-info-row dd{margin:0;font-size:13px;font-weight:600;color:var(--text-primary)}.parts-summary-group{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:12px;overflow:hidden;background:var(--bg-card)}.parts-summary-group:last-child{margin-bottom:0}.parts-summary-head{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--bg-primary);border-bottom:1px solid var(--border);font-size:13px;font-weight:700;color:var(--text-primary)}.parts-summary-head svg{color:var(--text-muted);flex:0 0 auto}.parts-summary-lines{padding:10px 12px 4px}.parts-view{display:flex;flex-direction:column;gap:4px}.parts-view-head{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-bottom:12px;border-bottom:2px solid var(--border)}.parts-view-title{display:flex;flex-direction:column;gap:2px}.parts-view-ref{font-size:18px;font-weight:700;color:var(--text-primary);letter-spacing:.02em}.parts-view-when{color:var(--text-muted);font-size:12px}.parts-view-verified{display:flex;align-items:center;gap:8px;margin-top:10px;padding:10px 12px;border:1px solid var(--success);border-radius:var(--radius-sm);background:var(--accent-dim);color:var(--success);font-size:13px;font-weight:600}.parts-view-cards{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 4px}.parts-view-card{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg-card)}.parts-view-label{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.parts-view-value{font-size:14px;font-weight:700;color:var(--text-primary)}.parts-view .table-container,.parts-view td{background:var(--paper-raised)}.parts-ref{font-variant-numeric:tabular-nums;letter-spacing:.02em}.parts-btn-hidden{display:none}.parts-suggest{position:relative}.parts-suggest .form-input{width:100%}.parts-suggest-panel{max-height:240px;overflow-y:auto}@media (max-width: 768px){.parts-actions{flex-direction:column}.parts-action-big{width:100%;justify-content:center}.parts-enrol-row{flex-direction:column}.parts-line{flex-direction:column;align-items:stretch}.parts-stepper{justify-content:flex-end}.parts-filter-select,.parts-filter-date{flex:1 1 100%}.parts-machine-total,.parts-group-total{display:none}.parts-wizard-tags{margin-left:0}.parts-pick-stock{display:none}}html,body{font-family:var(--font-body);background-color:var(--paper);color:var(--ink)}body{background-image:var(--grid-image);background-size:var(--grid-size);background-position:-1px -1px;background-attachment:fixed;font-size:14.5px;line-height:1.55}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink)}::selection{background:#1b4a8029}html{scrollbar-width:thin;scrollbar-color:var(--blue-ink) transparent;scrollbar-gutter:stable}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--blue-ink);border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--blue-ink-deep);background-clip:content-box}::-webkit-scrollbar-corner{background:transparent}.modal,.pending-list,.edit-history-list,.cat-list,.category-scope,.parts-picker-list,.parts-picker-scroll,.bon-panel-body{scrollbar-gutter:stable}td,.stat-value,.stock-card-qty,.parts-num,.parts-machine-total,.parts-group-total,.parts-cat-count,.parts-sub-count,.stock-count,.sidebar-user,.conn-status{font-variant-numeric:tabular-nums}@keyframes sheetRise{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes sheetIn{0%{opacity:0;transform:translateY(10px) scale(.994)}to{opacity:1;transform:none}}@keyframes washIn{0%{opacity:0}to{opacity:1}}.modal-overlay{animation:washIn .16s ease-out both}.modal{animation:sheetIn .19s cubic-bezier(.2,.7,.2,1) both}@media (prefers-reduced-motion: reduce){.page-header,.modal,.modal-overlay{animation:none}}.btn{font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;border-radius:0;padding:11px 18px;border:1px solid transparent;box-shadow:none}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--ink);border-color:var(--ink);color:#f8f5ec;box-shadow:none}.btn-primary:hover:not(:disabled){background:var(--blue-ink);border-color:var(--blue-ink)}.btn-danger{background:transparent;border-color:var(--signal);color:var(--signal)}.btn-danger:hover:not(:disabled){background:var(--signal);border-color:var(--signal);color:#fdf6f1}.btn-outline{background:transparent;color:var(--ink);border:1px solid var(--rule-strong)}.btn-outline:hover:not(:disabled){background:var(--paper-raised);border-color:var(--ink);color:var(--ink)}.btn-sm{padding:7px 11px;font-size:10px;letter-spacing:.1em}.btn-icon{width:32px;min-width:32px;height:32px;padding:0;flex:0 0 auto;border-radius:0;border:1px solid var(--rule-strong);background:transparent;color:var(--ink-soft)}.btn svg{flex-shrink:0}.btn-icon:hover{background:var(--paper-raised);border-color:var(--ink);color:var(--ink)}.form-label{font-family:var(--font-mono);font-size:10.5px;font-weight:500;letter-spacing:.16em;color:var(--ink-mute);margin-bottom:7px}.form-input,.form-select{background:var(--bg-input);border:1px solid var(--rule-strong);border-radius:0;padding:10px 12px;font-family:var(--font-body);font-size:14px;color:var(--ink)}.form-input:focus,.form-select:focus{border-color:var(--blue-ink);box-shadow:0 0 0 1px var(--blue-ink)}.form-input::placeholder{color:var(--ink-faint)}.form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%2359636f' d='M5 7.5 0.8 2.8h8.4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:9px 9px;padding-right:30px}.card{background:var(--paper-raised);border:1px solid var(--rule-strong);border-radius:0;box-shadow:none;padding:20px 22px 22px;position:relative}.card:before,.card:after{content:"";position:absolute;width:9px;height:9px;pointer-events:none;border-color:var(--ink);opacity:.5}.card:before{top:-1px;left:-1px;border-top:2px solid;border-left:2px solid}.card:after{bottom:-1px;right:-1px;border-bottom:2px solid;border-right:2px solid}.card-header{border-bottom:1px solid var(--rule-soft);padding-bottom:12px;margin-bottom:16px;gap:12px}.card-title{font-family:var(--font-display);font-size:19px;font-weight:600;letter-spacing:-.015em;display:inline-flex;align-items:center;gap:9px}.card-title svg{color:var(--blue-ink)}.table-container{border:1px solid var(--rule-soft);border-radius:0;background:transparent}th{background:var(--paper-sunk);color:var(--ink-mute);font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.15em;padding:9px 14px;border-bottom:1px solid var(--rule-strong)}td{padding:11px 14px;border-bottom:1px solid var(--rule-soft);font-size:13.5px;color:var(--ink)}tr:hover td{background:#1b4a800b}.badge{border-radius:0;border:1px solid currentColor;background:transparent;font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;gap:3px}.badge-add{color:var(--ok-ink)}.badge-remove{color:var(--signal)}.badge-neutral{color:var(--ink-mute)}.badge-edited{color:#8a5a10}.alert{border-radius:0;border:1px solid currentColor;font-size:13.5px;padding:12px 16px;background:transparent}.alert-warning{background:#fbf3df;color:#7a4f0c;border-color:#c9a75a}.alert-error{background:#f9e9e3;color:#8a3317;border-color:#c98a72}.alert-info{background:#e9eff6;color:var(--blue-ink);border-color:#9db4cc}.alert-success{background:#e9efe6;color:var(--ok-ink);border-color:#9bb59a}.modal-overlay{background:#17202c70}.modal{background:var(--paper-raised);border:1px solid var(--ink);border-radius:0;box-shadow:var(--shadow-lg);padding:26px 28px}.modal h3{font-family:var(--font-display);font-size:22px;font-weight:600;letter-spacing:-.02em;margin-bottom:14px}.cache-status,.sync-indicator{border-radius:0;border:1px solid var(--rule-strong);background:var(--paper-raised);box-shadow:0 0 0 3px #e8ebe9b3;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:7px 10px;color:var(--ink-soft)}.cache-status.failed{border-color:#c9a75a;background:#fbf3df;color:#7a4f0c}.sync-indicator.clickable:hover{border-color:var(--ink);background:var(--paper-raised)}.sync-indicator{gap:0}.sync-label{display:inline-block;max-width:0;margin-left:0;overflow:hidden;white-space:nowrap;opacity:0;transition:max-width .26s cubic-bezier(.2,.7,.2,1),margin-left .26s cubic-bezier(.2,.7,.2,1),opacity .14s ease}.sync-indicator:hover .sync-label,.sync-indicator:focus-within .sync-label{max-width:220px;margin-left:8px;opacity:1}@media (hover: none){.sync-indicator{gap:8px}.sync-label{max-width:none;opacity:1}}.app{background:transparent}.app-main{max-width:1280px;padding:28px 34px 64px}.sidebar{width:258px;background:var(--paper-sunk);background-image:linear-gradient(90deg,rgba(23,32,44,.035) 1px,transparent 1px);background-size:24px 100%;border-right:1px solid var(--rule-strong)}.sidebar-header{position:relative;padding:18px 16px 16px;border-bottom:1px solid var(--rule-strong);align-items:flex-start}.sidebar .logo-wrap{flex-wrap:wrap;gap:8px;border:1px solid var(--rule-strong);background:var(--paper-raised);padding:5px 8px;max-width:calc(100% - 28px)}.sidebar .logo-wrap .logo-img{height:30px;width:auto;border-radius:0}.logo-name{flex-direction:row;align-items:center}.logo-version{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute);margin-top:0;margin-left:2px;position:absolute;bottom:0;right:2px}.sidebar-close{color:var(--ink-mute);border-radius:0}.sidebar-close:hover{background:var(--paper-raised);color:var(--ink)}.sidebar-nav{padding:8px 0 16px;gap:0}.sidebar-group{font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.17em;color:var(--ink-mute);padding:15px 16px 7px;margin-top:0;border-top:1px solid var(--rule-soft);gap:8px}.sidebar-group:first-child{border-top:none;padding-top:12px}.sidebar-group:hover{color:var(--ink)}.sidebar-group .sidebar-icon{font-size:11px;opacity:.75}.sidebar-group-chevron{opacity:.7}.sidebar-link{border-radius:0;border-left:2px solid transparent;padding:9px 16px 9px 18px;font-size:13.5px;font-weight:400;color:var(--ink-soft);gap:11px}.sidebar-link:hover{background:#f5f7f69e;color:var(--ink)}.sidebar-link.active{background:var(--paper-raised);color:var(--ink);font-weight:600;border-left-color:var(--blue-ink)}.sidebar-icon{font-size:12.5px;width:18px;color:var(--ink-mute)}.sidebar-link.active .sidebar-icon{color:var(--blue-ink)}.sidebar-standalone{margin-top:14px;padding-top:8px;border-top:1px solid var(--rule-soft)}.sidebar-link-btn{width:100%;background:none;border:none;border-left:2px solid transparent;cursor:pointer;text-align:left;font-family:inherit}.sidebar-footer{padding:12px 14px 14px;border-top:1px solid var(--rule-strong);gap:10px;background:var(--paper-deep)}.pu-switcher{position:relative;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}.pu-trigger{width:100%;display:flex;align-items:center;gap:8px;padding:6px 9px 7px;border:1px solid var(--rule-strong);background:var(--paper-raised);color:var(--ink);border-radius:0;cursor:pointer;text-align:left;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;transition:border-color var(--transition),background var(--transition)}.pu-trigger:hover:not(:disabled){border-color:var(--ink)}.pu-trigger:focus-visible{outline:2px solid var(--blue-ink);outline-offset:1px}.pu-trigger:disabled{cursor:default}.pu-trigger-text{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.pu-trigger-label{font:inherit;color:var(--ink-mute);line-height:1.2}.pu-trigger-value{font-family:var(--font-body);font-size:12.5px;font-weight:500;letter-spacing:0;text-transform:none;line-height:1.25;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pu-trigger-value.empty{color:var(--ink-mute)}.pu-trigger-icon{flex-shrink:0;color:var(--ink-mute);transition:transform var(--transition)}.pu-trigger-icon.open{transform:rotate(180deg)}.pu-switcher.locked .pu-trigger{background:var(--paper-sunk)}.pu-switcher.locked .pu-trigger-value{color:var(--ink-soft)}.pu-menu{position:absolute;left:0;right:0;bottom:calc(100% + 6px);z-index:60;display:flex;flex-direction:column;background:var(--paper-raised);border:1px solid var(--rule-strong);box-shadow:var(--shadow-lg)}.pu-option{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;border:none;border-top:1px solid var(--rule-soft);background:none;font-family:var(--font-body);font-size:12.5px;letter-spacing:0;text-transform:none;text-align:left;color:var(--ink-soft);cursor:pointer}.pu-option:first-child{border-top:none}.pu-option:hover,.pu-option:focus-visible{background:var(--paper-sunk);color:var(--ink);outline:none}.pu-option.active{color:var(--ink);font-weight:600}.pu-option-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pu-option-check{flex-shrink:0;color:var(--blue-ink)}.sidebar-user{display:flex;flex-direction:column;align-items:flex-start;gap:3px;border:1px solid var(--rule-strong);background:var(--paper-raised);padding:7px 9px}.header-role{font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.15em;padding:1px 5px;border:1px solid currentColor;border-radius:0;background:transparent}.header-role.admin{color:var(--signal)}.header-role.supervisor{color:#8a5a10}.header-role.worker{color:var(--blue-ink)}.header-user{font-size:12.5px;font-weight:500;color:var(--ink)}.sidebar-footer .btn{width:100%}.page-header{align-items:flex-end;border-bottom:1px solid var(--rule-strong);padding:2px 0 14px;margin-bottom:10px;position:relative}.page-header:after{content:"";position:absolute;left:0;bottom:-1px;width:72px;height:2px;background:var(--ink)}.page-header h1,.page-title{font-family:var(--font-display);font-size:31px;font-weight:600;letter-spacing:-.028em;line-height:1.08}.page-title{margin-bottom:10px}.page-header .btn-group{padding-bottom:2px}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0;border:1px solid var(--rule-strong);background:var(--paper-raised);margin-bottom:10px;counter-reset:stat}.stat-card{background:transparent;border:none;border-right:1px solid var(--rule-soft);border-radius:0;box-shadow:none;padding:15px 20px 17px;position:relative;counter-increment:stat;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.stat-card:last-child{border-right:none}.stat-card:after{content:counter(stat,decimal-leading-zero);position:absolute;top:13px;right:16px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;color:var(--ink-faint)}.stat-label{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.15em;color:var(--ink-mute);margin-bottom:6px}.stat-value{font-family:var(--font-display);font-size:42px;font-weight:600;letter-spacing:-.035em;line-height:1;color:var(--ink)}.stat-value.red{color:var(--signal)}.stat-card-greeting .stat-value{font-size:26px;line-height:1.15;overflow-wrap:anywhere}.stat-greeting-date{margin-top:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}.stat-card-clickable{transition:background var(--transition)}.stat-card-clickable:hover:not(:disabled){background:#a6401f0e;border-color:var(--rule-soft);box-shadow:none}.stock-section{padding:18px 20px 20px}.stock-title-row{align-items:baseline}.stock-count{font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-mute);background:transparent;border:1px solid var(--rule);border-radius:0;padding:4px 8px}.stock-filter-btn.btn-outline{color:var(--ink-soft)}.stock-filter-banner{border:1px solid var(--rule);border-radius:0;background:var(--paper-sunk);font-size:12.5px;color:var(--ink-soft)}.stock-search{margin-bottom:14px}.stock-search-icon{color:var(--ink-mute)}.stock-search .form-input{padding-left:34px}.stock-cat{margin:6px 0 0;background:transparent;border:none;border-radius:0;overflow:visible}.stock-cat-header{border:none;border-bottom:1px solid var(--rule-soft);border-radius:0;background:transparent;box-shadow:none}.stock-cat:hover{border-color:transparent}.stock-cat-header:hover{background:#1b4a8009}.stock-cat-header.open{border-bottom-color:var(--rule-strong)}.stock-cat-toggle{padding:12px 6px}.stock-cat-dot{width:8px;height:8px;border-radius:0;transform:rotate(45deg);flex-shrink:0}.stock-cat-name{font-family:var(--font-body);font-size:15px;font-weight:600;letter-spacing:-.01em}.stock-cat-count{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-mute);border:1px solid var(--rule);padding:1px 6px}.stock-cat-chevron{color:var(--ink-mute)}.stock-grid{background:transparent;border:none;border-radius:0;padding:14px 2px 4px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(236px,1fr))}.stock-card{background:var(--paper-raised);border:1px solid var(--rule);border-left-width:1px;border-radius:0;box-shadow:none;padding:15px 15px 13px;position:relative;overflow:hidden}.stock-card:after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--mat-color, var(--rule-strong))}.stock-card:hover{border-color:var(--ink);box-shadow:none;transform:none;background:#fffdf6}.stock-card.negative{border-color:var(--signal);background:#fbf0eb}.stock-card.negative:hover{border-color:var(--signal);box-shadow:none}.stock-card-name{font-size:14.5px;font-weight:600;letter-spacing:-.01em;margin-top:3px}.stock-card-sku{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:10px}.stock-card-qty{font-family:var(--font-display);font-size:34px;font-weight:600;letter-spacing:-.035em;line-height:1}.stock-card-qty.negative{color:var(--signal)}.stock-card-unit{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--ink-mute)}.stock-card-actions{gap:7px;margin-top:12px}.btn-quick{border-radius:0;border:1px solid var(--rule-strong);background:transparent;color:var(--ink-soft);font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;padding:9px 6px}.btn-quick:hover{background:#17202c0d}.btn-quick.add{background:transparent;color:var(--ok-ink);border-color:var(--ok-ink)}.btn-quick.add:hover{background:#33694a12}.btn-quick.remove{background:transparent;color:var(--signal);border-color:var(--signal)}.btn-quick.remove:hover{background:#a6401f12}.btn-quick.bon{color:var(--blue-ink);border-color:var(--blue-ink);background:transparent}.btn-quick.bon:hover:not(:disabled){background:var(--accent-dim);border-color:var(--blue-ink-deep);color:var(--blue-ink-deep)}.bell-toggle{width:26px;height:26px;border:1px solid transparent;color:var(--ink-mute)}.bell-toggle:hover{border-color:var(--rule);background:transparent;color:var(--ink)}.bell-toggle.active{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.stock-empty{border:1px dashed var(--rule-strong);padding:40px 16px;color:var(--ink-mute)}.stock-empty .logo-img{opacity:.4;border-radius:0}.recent-head{border-bottom:1px solid var(--rule-soft);padding-bottom:10px;margin-bottom:4px}.recent-toggle{border:1px solid var(--rule-strong);border-radius:0;padding:0}.recent-toggle-btn{border-radius:0;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;padding:7px 11px;color:var(--ink-mute);background:transparent}.recent-toggle-btn.active{background:var(--ink);color:#f8f5ec}.recent-toggle-btn:hover:not(.active){background:var(--paper-sunk);color:var(--ink)}.bon-ref-tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;border:1px solid var(--blue-ink);border-radius:0;padding:1px 5px;color:var(--blue-ink);text-decoration:none}.parts-actions{display:grid;grid-template-columns:1.25fr 1fr;gap:10px;margin-bottom:20px}.parts-action-big{min-height:74px;justify-content:flex-start;gap:14px;padding:0 22px;font-size:12px;letter-spacing:.14em}.parts-action-big svg{width:17px;height:17px}.parts-action-big.btn-primary{background:var(--ink);color:#f8f5ec;border-color:var(--ink)}.parts-action-big.btn-primary:hover:not(:disabled){background:var(--blue-ink);border-color:var(--blue-ink)}.parts-action-big.btn-outline{background:var(--paper-raised);border-color:var(--rule-strong)}.parts-action-big.btn-outline:hover:not(:disabled){border-color:var(--ink)}.parts-section{margin-bottom:18px}.parts-toolbar{border-bottom:1px solid var(--rule-soft);padding-bottom:14px}.parts-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}.parts-machine-search .form-input{padding-left:34px}.parts-machine-list,.parts-group-list{padding:4px 0 0}.parts-machine-block,.parts-group{border:1px solid var(--rule);border-radius:0;background:transparent;margin-bottom:8px}.parts-machine-head,.parts-group-head{border-radius:0;background:transparent;padding:11px 14px;gap:10px;width:100%;border:none;border-bottom:1px solid transparent;text-align:left;font-family:inherit;color:var(--ink);cursor:pointer}.parts-machine-head:hover,.parts-group-head:hover{background:#1b4a800a}.parts-machine-head.open,.parts-group-head.open{border-bottom-color:var(--rule-soft);background:var(--paper-sunk)}.parts-machine-head-static,.parts-group-head-static{cursor:default}.parts-machine-icon,.parts-group-icon{color:var(--blue-ink)}.parts-machine-name,.parts-group-name{font-size:14.5px;font-weight:600;letter-spacing:-.01em}.parts-muted{color:var(--ink-mute);font-family:var(--font-mono);font-size:11px}.parts-machine-total,.parts-group-total{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute)}.parts-machine-chevron,.parts-group-chevron{color:var(--ink-mute);transition:transform var(--transition)}.parts-machine-chevron.open,.parts-group-chevron.open{transform:rotate(180deg)}.parts-group-body .table-container{border:0}.parts-cat-block,.parts-sub-block{padding:10px 14px 12px 22px;border-left:1px dashed var(--rule);margin-left:12px}.parts-cat-head,.parts-sub-head{gap:8px;margin-bottom:8px}.parts-sub-head svg{color:var(--ink-mute)}.parts-cat-bar,.parts-sub-bar{width:14px;height:1px;background:var(--ink)}.parts-cat-name,.parts-sub-name{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-soft);font-weight:500}.parts-cat-count,.parts-sub-count{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;color:var(--ink-mute)}.parts-strong{font-weight:600}.parts-num{font-family:var(--font-mono);font-size:12.5px}.parts-unit{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;color:var(--ink-mute)}.parts-neg{color:var(--signal);font-weight:600}.parts-ref{font-family:var(--font-mono);letter-spacing:.04em}.parts-empty{border:1px dashed var(--rule);padding:28px 16px;margin-top:12px;text-align:center;color:var(--ink-mute);font-size:13px}.parts-search-hint{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute);padding:10px 2px 4px}.parts-tabs{gap:0;border-bottom:1px solid var(--rule-strong);margin-bottom:18px}.parts-tab{border-radius:0;border:1px solid transparent;border-bottom:2px solid transparent;background:transparent;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:8px 12px;color:var(--ink-mute);margin-bottom:-1px}.parts-tab:hover{color:var(--ink);border-color:transparent}.parts-tab-on{background:transparent;border-color:transparent;border-bottom-color:var(--ink);color:var(--ink)}.login-page{background:transparent;padding:32px 20px}.login-sheet{display:grid;grid-template-columns:1.02fr .98fr;width:100%;max-width:940px;border:1px solid var(--ink);background:var(--paper-raised);box-shadow:6px 6px #17202c17}.login-spec{position:relative;padding:34px 34px 26px;background:var(--paper-sunk);background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:24px 24px;border-right:1px solid var(--rule-strong);display:flex;flex-direction:column;gap:18px;overflow:hidden}.login-spec-mark{display:flex;align-items:center;gap:12px}.login-spec-mark img{height:38px;width:auto}.login-spec-kicker{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute)}.login-spec h1{font-family:var(--font-display);font-size:38px;line-height:1.04;font-weight:600;letter-spacing:-.035em;margin:6px 0 0;max-width:10ch}.login-spec-lede{font-size:13.5px;color:var(--ink-soft);max-width:34ch;line-height:1.5}.login-spec-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}.login-spec-list li{display:flex;align-items:baseline;gap:10px;padding:7px 0;border-bottom:1px solid var(--rule);font-size:12.5px;color:var(--ink-soft)}.login-spec-list b{font-family:var(--font-mono);font-size:9px;font-weight:500;letter-spacing:.12em;color:var(--ink-mute);min-width:18px}.login-spec-foot{margin-top:auto;border:1px solid var(--rule-strong);background:var(--paper-raised);display:grid;grid-template-columns:1fr 1fr;font-family:var(--font-mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute)}.login-spec-foot span{padding:5px 8px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}.login-spec-foot span:nth-child(2n){border-right:none}.login-spec-foot span:nth-last-child(-n+2){border-bottom:none}.login-card{width:100%;max-width:none;padding:34px 34px 26px;border:none;background:var(--paper-raised);display:flex;flex-direction:column;justify-content:center}.login-card:before,.login-card:after{display:none}.login-form-title{font-family:var(--font-display);font-size:26px;font-weight:600;letter-spacing:-.025em;margin-bottom:2px}.login-subtitle{text-align:left;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:22px}.login-logo{display:none}.login-remember{font-size:12.5px;color:var(--ink-soft)}.login-remember input{accent-color:var(--blue-ink);border-radius:0}.conn-status{border-top:1px solid var(--rule);margin-top:18px;padding-top:12px;justify-content:flex-start;gap:8px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}.conn-dot{width:6px;height:6px;border-radius:0;transform:rotate(45deg)}.conn-online .conn-dot{background:var(--ok-ink);animation:none}.conn-degraded .conn-dot{background:#8a5a10}.conn-offline .conn-dot{background:var(--signal)}.env-info{border-top:1px dashed var(--rule)}.env-info-row span{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;color:var(--ink-mute)}.env-info-row code{background:var(--paper-sunk);border:1px solid var(--rule);border-radius:0;font-family:var(--font-mono);font-size:10px;color:var(--ink-soft)}.login-gear{border-radius:0}.parts-combo-panel{display:flex;flex-direction:column;box-sizing:border-box;padding:0;background:var(--paper-raised);border:1px solid var(--rule-strong);border-radius:0;box-shadow:none;overflow:hidden}.parts-combo-panel>.form-input{flex:0 0 auto;min-height:36px;padding:9px 11px;border:none;border-bottom:1px solid var(--rule);border-radius:0;background:var(--paper);font-family:var(--font-body);font-size:13px}.parts-combo-panel>.form-input:focus{outline:none;border-bottom-color:var(--blue-ink)}.parts-combo-panel .parts-picker-list{flex:1 1 auto;max-height:none;margin-top:0;border:none;border-radius:0;background:transparent;overflow-y:auto}.parts-pick-row.is-active{background:var(--accent-dim)}.parts-create-row{gap:8px;border-top:1px solid var(--rule);color:var(--blue-ink);font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.parts-create-row .parts-pick-name{display:flex;align-items:center;gap:7px}.parts-create-row:hover:not(:disabled){background:var(--accent-dim)}.parts-create-row:disabled{color:var(--ink-mute);cursor:default}.parts-multi-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 11px;border-bottom:1px solid var(--rule);background:var(--paper-sunk)}.parts-multi-count{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-mute)}.parts-multi-clear{padding:0;border:none;background:none;cursor:pointer;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-ink)}.parts-multi-clear:hover{color:var(--blue-ink-deep)}.parts-multi-row{gap:9px;justify-content:flex-start}.parts-multi-row .parts-pick-name{flex:1 1 auto}.parts-multi-box{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;border:1px solid var(--rule-strong);border-radius:0;background:var(--paper-raised);color:#f8f5ec}.parts-multi-box.on{background:var(--ink);border-color:var(--ink)}.parts-multi-chips{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:6px}.parts-multi-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 6px;border:1px solid var(--rule-strong);border-radius:0;background:transparent;color:var(--ink-soft);font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase}.parts-multi-chip-dot{width:5px;height:5px;background:var(--blue-ink);transform:rotate(45deg)}.parts-multi-chip-x{display:inline-flex;padding:0;border:none;background:none;cursor:pointer;color:var(--ink-mute)}.parts-multi-chip-x:hover{color:var(--signal)}.parts-multi-more{padding:3px 7px;border:1px dashed var(--rule-strong);border-radius:0;background:transparent;cursor:pointer;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-mute)}.parts-multi-more:hover{border-style:solid;color:var(--ink)}.parts-chips-flat{margin-top:0;gap:4px}.parts-grid-wrap{padding:12px 14px 14px}.parts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.parts-part-card{display:flex;flex-direction:column;gap:5px;min-width:0;padding:10px 12px 9px;border:1px solid var(--rule);background:var(--paper-raised)}.parts-part-top{display:flex;align-items:baseline;gap:10px;min-width:0}.parts-part-name{flex:1 1 auto;min-width:0;font-size:13.5px;font-weight:600;letter-spacing:-.01em;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parts-part-qty{flex:0 0 auto;font-family:var(--font-mono);font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--ink)}.parts-part-qty.is-zero{color:var(--ink-mute);font-weight:500}.parts-part-qty .parts-unit{font-size:9px}.parts-part-add{flex:0 0 auto;align-self:center;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:1px solid var(--rule);background:var(--paper-raised);color:var(--ink-mute);cursor:pointer;transition:color .15s,border-color .15s}.parts-part-add:hover{color:var(--ink);border-color:var(--ink)}.parts-part-ref{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parts-part-machines{display:flex;flex-wrap:wrap;gap:4px;margin-top:auto;padding-top:4px}.parts-machine-cat+.parts-machine-cat{margin-top:14px;padding-top:12px;border-top:1px dashed var(--rule)}.parts-machine-cat .parts-sub-head{padding:0 0 8px}.parts-stock-row{display:grid;grid-template-columns:3fr 1fr;gap:10px;align-items:center}@media (max-width: 1024px){.app-main{padding:24px 22px 56px}.login-sheet{grid-template-columns:1fr;max-width:520px}.login-spec{border-right:none;border-bottom:1px solid var(--rule-strong);padding:24px;gap:12px}.login-spec h1{font-size:28px;max-width:none}.login-spec-lede,.login-spec-list{display:none}.login-spec-foot{margin-top:4px}.login-card{padding:26px 24px 22px}}@media (max-width: 768px){:root{--sidebar-width: 0px}.app-main{padding:16px 16px 56px}.page-header{align-items:flex-start}.page-header h1,.page-title{font-size:25px}.stats-row{grid-template-columns:1fr}.stat-card{border-right:none;border-bottom:1px solid var(--rule-soft)}.stat-card:last-child{border-bottom:none}.stat-value{font-size:36px}.parts-actions{grid-template-columns:1fr}.parts-action-big{min-height:62px}.stock-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:9px;padding:10px 0 2px}.stock-card{padding:12px 12px 10px}.stock-card-qty{font-size:27px}.stock-card-actions{flex-wrap:wrap}.sidebar{width:282px}.mobile-topbar{background:var(--paper-sunk);border-bottom:1px solid var(--rule-strong)}.mobile-topbar-logo .logo-img{height:30px}.card-header{flex-wrap:wrap;row-gap:10px}.card-header .card-title{flex:1 1 100%}.page-header .btn-group{width:100%}.page-header .btn-group .btn{flex:1 1 100%}.login-page{padding:16px}.login-sheet{box-shadow:4px 4px #17202c17}.card{padding:16px 15px 18px}.modal{padding:20px 18px}}@media (max-width: 480px){.page-header h1,.page-title{font-size:22px}.stat-value{font-size:32px}.parts-machine-total,.parts-group-total{display:none}.stock-grid{grid-template-columns:1fr 1fr}.parts-stock-row,.parts-grid,.parts-picker-filters{grid-template-columns:1fr}.parts-multi-chip{font-size:9px}}.bon-fab{width:auto;min-width:54px;height:54px;padding:0 18px;border-radius:0;border:1px solid var(--ink);background:var(--ink);color:#f8f5ec;box-shadow:4px 4px #17202c29}.bon-fab:hover{background:var(--blue-ink);border-color:var(--blue-ink);transform:translateY(-1px)}.bon-fab-icon{position:relative;display:inline-flex;align-items:center}.bon-fab-label{display:inline-block;max-width:0;margin-left:0;overflow:hidden;white-space:nowrap;opacity:0;font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;transition:max-width .26s cubic-bezier(.2,.7,.2,1),margin-left .26s cubic-bezier(.2,.7,.2,1),opacity .14s ease}.bon-fab:hover .bon-fab-label,.bon-fab:focus-visible .bon-fab-label{max-width:240px;margin-left:10px;opacity:1}.bon-fab-count{border-radius:0;border:1px solid var(--paper-raised);background:var(--signal);font-family:var(--font-mono);font-size:10px;font-weight:500}.cat-chip,.lsq-badge,.badge-lowstock{border-radius:0;border:1px solid var(--rule-strong);background:transparent;color:var(--ink-soft);font-family:var(--font-body);font-size:12px}.cat-chip{padding:6px 10px;min-height:32px}.cat-chip:hover{border-color:var(--ink);background:var(--paper-raised)}.cat-chip-on{border-color:var(--ink);background:var(--paper-raised);font-weight:600}.cat-chip-dot{width:7px;height:7px;border-radius:0;transform:rotate(45deg)}.cat-chip-count{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;color:var(--ink-mute)}.badge-lowstock{padding:1px 5px;font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:#7a4f0c;border-color:#c9a75a;background:#fbf3df}.lsq-badge{padding:1px 6px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;color:var(--blue-ink);border-color:#9db4cc;background:#e9eff6}.pie-wrap{gap:30px}.pie-legend{flex:0 1 260px;max-width:260px}.pie-dot{width:8px;height:8px;border-radius:0;transform:rotate(45deg)}.pie-name{font-size:13px;color:var(--ink-soft)}.pie-val{font-family:var(--font-mono);font-size:12px;color:var(--ink)}.pie-total{font-family:var(--font-display);font-weight:600}.pie-unit{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.chart-empty{border:1px dashed var(--rule);color:var(--ink-mute)}
