:root{--bg-primary: #0f0f1a;--bg-secondary: #1a1a2e;--bg-card: #16213e;--bg-card-hover: #1e2d4a;--text-primary: #e8e8e8;--text-secondary: #a0a0b0;--text-muted: #6b7280;--accent: var(--dept-color, #14b8a6);--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--border: #2a2a3e;--radius: 12px;--radius-sm: 8px;--bottom-nav-height: 56px;--bi-navbar-height: 45px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:calc(100vh - var(--bi-navbar-height, 0px));overflow:hidden}.app-container{display:flex;flex-direction:column;height:100%}.app-header{padding:12px 16px 8px;flex-shrink:0}.app-title{font-size:1.25rem;font-weight:700;color:var(--accent);letter-spacing:-.01em}.app-content{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:var(--bottom-nav-height);-webkit-overflow-scrolling:touch}.search-bar{display:flex;align-items:center;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;margin:0 16px 12px;gap:10px}.search-bar input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:.95rem}.search-bar input::placeholder{color:var(--text-muted)}.search-icon{color:var(--text-muted);flex-shrink:0}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin:0 16px 12px;overflow:hidden;transition:background .15s,border-color .15s}.card:active{background:var(--bg-card-hover);border-color:var(--accent)}.card-body{padding:14px 16px}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:600;line-height:1.5}.badge-accent{background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}.badge-success{background:color-mix(in srgb,var(--success) 20%,transparent);color:var(--success)}.badge-warning{background:color-mix(in srgb,var(--warning) 20%,transparent);color:var(--warning)}.badge-danger{background:color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;cursor:pointer;min-height:48px;transition:opacity .15s,transform .1s;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn-primary{background:var(--accent);color:#fff}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-block{width:100%}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:flex-end;justify-content:center;z-index:1000;padding:0;overscroll-behavior:contain;touch-action:none}.modal-content{background:var(--bg-secondary);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:500px;max-height:85vh;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding:20px 16px calc(env(safe-area-inset-bottom,16px) + 16px);animation:slideUp .25s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.modal-title{font-size:1.15rem;font-weight:700}.modal-close{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;padding:4px 8px;cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.toast{position:fixed;top:calc(var(--bi-navbar-height, 0px) + 12px);left:50%;transform:translate(-50%);padding:12px 20px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;z-index:2000;animation:fadeIn .2s ease-out;max-width:calc(100vw - 32px);text-align:center}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--danger);color:#fff}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.form-group{margin-bottom:16px}.form-label{display:block;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.form-input{width:100%;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1rem;outline:none;min-height:48px}.form-input:focus{border-color:var(--accent)}.form-input::placeholder{color:var(--text-muted)}.qty-stepper{display:flex;align-items:center;gap:4px}.qty-stepper button{width:48px;height:48px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);font-size:1.4rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.qty-stepper button:active{background:var(--bg-card-hover)}.qty-stepper input{width:80px;text-align:center;padding:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:1.2rem;font-weight:600;outline:none;min-height:48px}.qty-stepper input:focus{border-color:var(--accent)}.loading{display:flex;align-items:center;justify-content:center;padding:48px 16px;color:var(--text-muted)}.empty-state{text-align:center;padding:48px 16px;color:var(--text-muted)}.empty-state-icon{font-size:3rem;margin-bottom:12px}.refresh-btn{background:none;border:none;color:var(--text-secondary);padding:8px;cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.refresh-btn:active{color:var(--accent)}.section-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px 8px}.section-title{font-size:.85rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.bom-table{width:100%;border-collapse:collapse;font-size:.85rem}.bom-table th{text-align:left;color:var(--text-muted);font-weight:600;padding:6px 0;border-bottom:1px solid var(--border)}.bom-table td{padding:6px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 50%,transparent)}.bom-table .warn{color:var(--danger)}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
