:root {
  --bim-orange: #F58300;
  --bim-orange-light: #FF9F2E;
  --bim-dark: #1E1E1E;
  --bim-charcoal: #2D2D2D;
  --bim-slate: #3A3A3A;
  --bim-card: #252525;
  --bim-border: rgba(245,131,0,0.15);
  --bim-light: #F5F5F5;
  --bim-white: #FFFFFF;
  --bim-text: #E0E0E0;
  --bim-text-muted: #9A9A9A;
  --bim-success: #22c55e;
  --bim-warning: #eab308;
  --bim-danger: #ef4444;
  --bim-info: #3b82f6;
  --radius: 8px;
  --radius-lg: 12px;
}
*{box-sizing:border-box;margin:0;padding:0;font-family:'Inter',ui-sans-serif,sans-serif;}
body{background:var(--bim-dark);color:var(--bim-text);min-height:100vh;}
a{color:var(--bim-orange);text-decoration:none;}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.1rem;border-radius:var(--radius);border:none;cursor:pointer;font-size:.875rem;font-weight:600;transition:all .2s;}
.btn-primary{background:var(--bim-orange);color:#fff;}
.btn-primary:hover{background:var(--bim-orange-light);transform:translateY(-1px);}
.btn-secondary{background:var(--bim-slate);color:var(--bim-text);}
.btn-secondary:hover{background:#444;}
.btn-danger{background:var(--bim-danger);color:#fff;}
.btn-danger:hover{opacity:.9;}
.btn-ghost{background:transparent;color:var(--bim-text-muted);border:1px solid var(--bim-border);}
.btn-ghost:hover{color:var(--bim-text);border-color:var(--bim-orange);}
.btn-sm{padding:.3rem .7rem;font-size:.8rem;}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;}

/* Cards */
.card{background:var(--bim-card);border:1px solid var(--bim-border);border-radius:var(--radius-lg);padding:1.25rem;}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;}
.card-title{font-size:1rem;font-weight:700;color:var(--bim-text);}

/* Form */
.form-group{margin-bottom:1rem;}
.form-label{display:block;font-size:.8rem;font-weight:600;color:var(--bim-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.35rem;}
.form-input,.form-select,.form-textarea{width:100%;background:var(--bim-slate);border:1px solid var(--bim-border);border-radius:var(--radius);padding:.55rem .85rem;color:var(--bim-text);font-size:.9rem;transition:border-color .2s;}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--bim-orange);}
.form-textarea{resize:vertical;min-height:80px;}

/* Table */
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:.875rem;}
th{text-align:left;padding:.6rem .85rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--bim-text-muted);border-bottom:1px solid var(--bim-border);}
td{padding:.65rem .85rem;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle;}
tr:hover td{background:rgba(245,131,0,.04);}

/* Badges */
.badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;}
.badge-green{background:rgba(34,197,94,.15);color:#22c55e;}
.badge-yellow{background:rgba(234,179,8,.15);color:#eab308;}
.badge-red{background:rgba(239,68,68,.15);color:#ef4444;}
.badge-blue{background:rgba(59,130,246,.15);color:#3b82f6;}
.badge-gray{background:rgba(156,163,175,.15);color:#9ca3af;}
.badge-orange{background:rgba(245,131,0,.15);color:var(--bim-orange);}

/* Nav / tabs */
.tab-bar{display:flex;gap:.25rem;border-bottom:1px solid var(--bim-border);margin-bottom:1.5rem;overflow-x:auto;}
.tab-btn{padding:.65rem 1.1rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--bim-text-muted);font-size:.875rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s;margin-bottom:-1px;}
.tab-btn.active{color:var(--bim-orange);border-bottom-color:var(--bim-orange);}
.tab-btn:hover:not(.active){color:var(--bim-text);}
.tab-panel{display:none;}.tab-panel.active{display:block;}

/* Toast */
#toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;}
.toast{background:var(--bim-charcoal);border:1px solid var(--bim-border);border-radius:var(--radius);padding:.75rem 1rem;font-size:.875rem;min-width:240px;animation:slide-in .25s ease;}
.toast-success{border-left:3px solid var(--bim-success);}
.toast-error{border-left:3px solid var(--bim-danger);}
.toast-info{border-left:3px solid var(--bim-info);}
@keyframes slide-in{from{opacity:0;transform:translateX(20px);}to{opacity:1;transform:translateX(0);}}

/* Modal */
.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:500;align-items:center;justify-content:center;}
.modal-backdrop.open{display:flex;}
.modal{background:var(--bim-charcoal);border:1px solid var(--bim-border);border-radius:var(--radius-lg);width:min(520px,95vw);max-height:90vh;overflow-y:auto;padding:1.5rem;}
.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;}
.modal-title{font-size:1.1rem;font-weight:700;}
.modal-close{background:none;border:none;color:var(--bim-text-muted);font-size:1.25rem;cursor:pointer;}
.modal-close:hover{color:var(--bim-text);}

/* Stock quantity colors */
.qty-zero{color:var(--bim-danger);font-weight:700;}
.qty-low{color:var(--bim-warning);}
.qty-ok{color:var(--bim-success);}

/* Part image thumbnail */
.part-thumb{width:36px;height:36px;border-radius:6px;border:1px solid var(--bim-border);background:var(--bim-slate);display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0;}
.part-thumb.clickable{cursor:pointer;transition:border-color .15s,opacity .15s;}.part-thumb.clickable:hover{border-color:var(--bim-orange);opacity:.85;}
.part-thumb img{width:100%;height:100%;border-radius:5px;object-fit:cover;}

/* Image lightbox */
#lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:1000;align-items:center;justify-content:center;cursor:pointer;}
#lightbox.open{display:flex;}
#lightbox img{max-width:90vw;max-height:90vh;border-radius:var(--radius);}

/* Realtime dot */
.realtime-dot{width:8px;height:8px;border-radius:50%;background:var(--bim-success);display:inline-block;box-shadow:0 0 6px var(--bim-success);animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.4;}}

/* Navbar */
.navbar{background:rgba(30,30,30,.92);backdrop-filter:blur(20px);border-bottom:1px solid var(--bim-border);position:sticky;top:0;z-index:100;padding:.6rem 1.5rem;display:flex;align-items:center;justify-content:space-between;}
.navbar-brand{display:flex;align-items:center;gap:.75rem;}
.navbar-logo{height:30px;width:auto;object-fit:contain;}
.navbar-logo-product{height:26px;}
.navbar-logo-client{height:28px;}
.navbar-sep{width:1px;height:28px;background:var(--bim-border);flex-shrink:0;}
.navbar-right{display:flex;align-items:center;gap:1rem;font-size:.875rem;color:var(--bim-text-muted);}

.main-content{max-width:1440px;margin:0 auto;padding:1.5rem;}

/* Responsive grid */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;}
@media(max-width:900px){.grid-4{grid-template-columns:repeat(2,1fr);}.grid-3{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

/* Upload zone */
.upload-zone{border:2px dashed var(--bim-border);border-radius:var(--radius);padding:2rem;text-align:center;color:var(--bim-text-muted);cursor:pointer;transition:border-color .2s;}
.upload-zone:hover,.upload-zone.drag{border-color:var(--bim-orange);color:var(--bim-text);}

/* Stat cards */
.stat-card{background:var(--bim-card);border:1px solid var(--bim-border);border-radius:var(--radius-lg);padding:1.1rem 1.25rem;}
.stat-value{font-size:1.75rem;font-weight:800;color:var(--bim-orange);}
.stat-label{font-size:.78rem;color:var(--bim-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:.25rem;}

/* Scrollbar */
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:var(--bim-dark);}
::-webkit-scrollbar-thumb{background:var(--bim-slate);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:#555;}
