*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{color:#e2e8f0;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif}.login-page,body{background:#0f1117;min-height:100vh}.login-page{align-items:center;background-image:radial-gradient(ellipse at 50% 0,#1a2040 0,#0000 70%);display:flex;justify-content:center}.login-card{background:#111827;border:1px solid #2d3748;border-radius:20px;max-width:400px;padding:36px;width:100%}.login-brand{margin-bottom:28px;text-align:center}.login-icon{font-size:44px}.login-brand h1{color:#f0f4ff;font-size:22px;font-weight:700;margin-top:10px}.login-brand p{color:#64748b;font-size:13px;margin-top:4px}.login-tabs{background:#1a1d2e;border-radius:10px;display:flex;gap:0;margin-bottom:24px;padding:4px}.ltab{background:none;border:none;border-radius:8px;color:#64748b;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:8px;transition:all .2s}.ltab.active{background:#3b82f6;color:#fff}.auth-alert{border-radius:8px;font-size:13px;margin-bottom:16px;padding:10px 14px}.auth-alert.error{background:#1c0505;border:1px solid #991b1b;color:#f87171}.auth-alert.ok{background:#052e16;border:1px solid #15803d;color:#4ade80}.auth-form{gap:16px}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:6px}.auth-field label{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.auth-field input,.auth-field select{background:#1a1d2e;border:1px solid #2d3748;border-radius:8px;color:#e2e8f0;font-size:14px;outline:none;padding:11px 14px;transition:border-color .2s}.auth-field input:focus,.auth-field select:focus{border-color:#3b82f6}.auth-field input::placeholder{color:#374151}.auth-field select option{background:#1a1d2e}.btn-auth{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;margin-top:4px;padding:12px;transition:background .2s}.btn-auth:hover:not(:disabled){background:#2563eb}.btn-auth:disabled{cursor:not-allowed;opacity:.6}.quick-logins{border-top:1px solid #1e2640;padding-top:16px}.quick-logins p{color:#4a5568;font-size:12px;margin-bottom:10px;text-align:center}.quick-btns{display:flex;gap:8px}.quick-btn{background:#1a1d2e;border:1px solid #2d3748;border-radius:8px;color:#94a3b8;cursor:pointer;flex:1 1;font-size:13px;padding:8px;transition:all .2s}.quick-btn:hover{border-color:#4a5568;color:#e2e8f0}.quick-btn.admin{border-color:#3b82f6;color:#60a5fa}.quick-btn.user{border-color:#10b981;color:#34d399}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{background:linear-gradient(135deg,#1a1d2e,#16213e);border-bottom:1px solid #2d3748;justify-content:space-between;padding:14px 28px}.app-header,.header-brand{align-items:center;display:flex}.header-brand{gap:12px}.header-icon{font-size:28px}.header-brand h1{color:#f0f4ff;font-size:20px;font-weight:700}.header-brand p{color:#64748b;font-size:12px}.header-right{align-items:center;display:flex;gap:16px}.header-stats{display:flex;gap:10px}.stat-chip{background:#1e2640;border:1px solid #2d3748;border-radius:8px;padding:6px 14px;text-align:center}.stat-chip.warn{background:#1f1a0e;border-color:#f59e0b}.stat-value{color:#60a5fa;display:block;font-size:18px;font-weight:700}.stat-chip.warn .stat-value{color:#f59e0b}.stat-label{color:#64748b;font-size:11px}.user-info{background:#1e2640;border:1px solid #2d3748;border-radius:10px;gap:10px;padding:8px 12px}.user-avatar,.user-info{align-items:center;display:flex}.user-avatar{background:#3b82f6;border-radius:50%;color:#fff;font-size:14px;font-weight:700;height:32px;justify-content:center;width:32px}.user-name{color:#e2e8f0;font-size:13px;font-weight:600}.user-role{font-size:11px;margin-top:1px}.user-role.admin{color:#f59e0b}.user-role.readonly{color:#34d399}.btn-logout{background:none;border:none;border-radius:6px;color:#64748b;cursor:pointer;font-size:18px;padding:4px}.btn-logout:hover{background:#1a0505;color:#f87171}.app-main{flex:1 1;margin:0 auto;max-width:1400px;padding:24px 28px;width:100%}.readonly-banner{background:#0c1a10;border:1px solid #15803d;border-radius:8px;color:#4ade80;font-size:13px;margin-bottom:16px;padding:10px 16px}.toolbar{align-items:center;display:flex;gap:12px;margin-bottom:16px}.search-wrap{flex:1 1;max-width:380px;position:relative}.search-icon{font-size:14px;left:12px;position:absolute;top:50%;transform:translateY(-50%)}.search-input{background:#1e2640;border:1px solid #2d3748;border-radius:8px;color:#e2e8f0;font-size:14px;outline:none;padding:10px 36px;transition:border-color .2s;width:100%}.search-input:focus{border-color:#3b82f6}.search-input::placeholder{color:#4a5568}.clear-btn{background:none;color:#64748b;position:absolute;right:10px;top:50%;transform:translateY(-50%)}.btn-primary,.clear-btn{border:none;cursor:pointer}.btn-primary{background:#3b82f6;border-radius:8px;color:#fff;font-size:14px;font-weight:600;padding:10px 20px;transition:background .2s}.btn-primary:hover{background:#2563eb}.btn-secondary{background:#1e2640;border:1px solid #2d3748;border-radius:8px;color:#94a3b8;cursor:pointer;font-size:14px;padding:10px 20px;transition:all .2s}.btn-secondary:hover{color:#e2e8f0}.btn-danger{background:#dc2626;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px}.btn-danger:hover{background:#b91c1c}.btn-filter{background:#1e2640;border:1px solid #2d3748;border-radius:8px;color:#94a3b8;cursor:pointer;font-size:13px;padding:10px 16px;transition:all .2s}.btn-filter.active{background:#1f1a0e;border-color:#f59e0b;color:#f59e0b}.table-wrap{border:1px solid #2d3748;border-radius:12px;overflow-x:auto}.parts-table{border-collapse:collapse;font-size:14px;width:100%}.parts-table thead{background:#1a1d2e}.parts-table th{color:#64748b;font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 16px;text-align:left;text-transform:uppercase}.parts-table tbody tr{background:#111827;border-top:1px solid #1e2640;transition:background .15s}.parts-table tbody tr:hover{background:#1a1d2e}.parts-table tbody tr.row-warn{background:#1a160a}.parts-table td{color:#cbd5e1;padding:12px 16px;vertical-align:middle}.td-id{color:#4a5568;font-size:12px}.td-name{color:#f0f4ff;font-weight:600}.td-actions{display:flex;gap:6px}.badge{background:#1e3a5f;color:#60a5fa;font-weight:500}.badge,.status-badge{border-radius:6px;font-size:12px;padding:3px 10px}.status-badge{font-weight:600}.status-badge.ok{background:#052e16;color:#4ade80}.status-badge.warn{background:#1c0f00;color:#f59e0b}.qty-ok{color:#4ade80;font-weight:600}.qty-low{color:#f59e0b;font-weight:600}.btn-icon{background:#1e2640;border:1px solid #2d3748;border-radius:6px;cursor:pointer;font-size:14px;padding:5px 8px;transition:all .2s}.btn-icon:hover{border-color:#4a5568}.btn-icon.del:hover{background:#1c0505;border-color:#dc2626}.state-box{background:#111827;border:1px solid #1e2640;border-radius:12px;color:#4a5568;font-size:15px;padding:60px;text-align:center}.state-box.empty{align-items:center;display:flex;flex-direction:column;gap:12px}.state-box.empty span{font-size:48px}.form-page{display:flex;justify-content:center}.form-card{background:#111827;border:1px solid #2d3748;border-radius:16px;max-width:720px;overflow:hidden;width:100%}.form-header{background:linear-gradient(135deg,#1a1d2e,#16213e);border-bottom:1px solid #2d3748;padding:22px 30px}.form-header h2{font-size:18px;font-weight:700}.form-header p{color:#64748b;font-size:13px;margin-top:4px}.part-form{padding:26px 30px}.form-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:1fr 1fr}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1/-1}.form-field label{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.form-field input,.form-field select,.form-field textarea{background:#1a1d2e;border:1px solid #2d3748;border-radius:8px;color:#e2e8f0;font-family:inherit;font-size:14px;outline:none;padding:10px 14px;transition:border-color .2s}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#3b82f6}.form-field input::placeholder,.form-field textarea::placeholder{color:#374151}.form-field select option{background:#1a1d2e}.form-field.has-error input,.form-field.has-error select{border-color:#dc2626}.err{color:#f87171;font-size:12px}.form-actions{border-top:1px solid #1e2640;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:18px}.detail-page{display:flex;justify-content:center}.detail-card{background:#111827;border:1px solid #2d3748;border-radius:16px;max-width:760px;overflow:hidden;width:100%}.detail-header{background:linear-gradient(135deg,#1a1d2e,#16213e);border-bottom:1px solid #2d3748;padding:22px 30px}.btn-back{background:none;border:none;color:#60a5fa;cursor:pointer;font-size:14px;margin-bottom:10px;padding:0}.btn-back:hover{text-decoration:underline}.detail-title{align-items:center;display:flex;gap:12px;margin-bottom:10px}.detail-title h2{font-size:20px;font-weight:700}.part-num{background:#1e2640;border-radius:6px;color:#94a3b8;font-size:12px;padding:3px 10px}.detail-badges{display:flex;gap:8px}.detail-grid{display:grid;grid-template-columns:1fr 1fr}.detail-section{border-bottom:1px solid #1e2640;padding:22px 30px}.detail-section:nth-child(2n){border-left:1px solid #1e2640}.detail-section h3{color:#4a5568;font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:14px;text-transform:uppercase}.detail-row{border-bottom:1px solid #1a1d2e;display:flex;font-size:14px;justify-content:space-between;padding:7px 0}.detail-row:last-child{border-bottom:none}.detail-row span{color:#64748b}.detail-row strong{color:#e2e8f0}.detail-actions{display:flex;gap:12px;justify-content:flex-end;padding:18px 30px}.toast{align-items:center;animation:slideIn .25s ease;border-radius:10px;box-shadow:0 4px 20px #0006;display:flex;font-size:14px;font-weight:500;gap:10px;padding:12px 20px;position:fixed;right:24px;top:24px;z-index:1000}.toast-success{background:#052e16;border:1px solid #15803d;color:#4ade80}.toast-error{background:#1c0505;border:1px solid #991b1b;color:#f87171}@keyframes slideIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}code{font-family:Courier New,monospace;font-size:12px}
/*# sourceMappingURL=main.00eeb81c.css.map*/