body { background: #f0f2f5; font-family: 'Segoe UI', sans-serif; }
.navbar { box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.card { border: none; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,.07); }
.card-header { border-radius: 12px 12px 0 0 !important; font-weight: 600; }
.stat-card:hover { transform: translateY(-2px); transition: transform .15s; }
.stat-number { font-size: 2.2rem; font-weight: 700; }
.table th { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: #6c757d; background: #f8f9fa; }
.badge { font-size: .78rem; padding: .35em .65em; }
/* Warehouse tree */
.wh-tree { list-style: none; padding: 0; }
.wh-tree li { margin: 0; }
.wh-floor { background: #e8f4fd; border-left: 4px solid #0d6efd; border-radius: 6px; padding: .5rem .75rem; margin-bottom: .25rem; font-weight: 600; }
.wh-lane  { background: #fff8e1; border-left: 4px solid #ffc107; border-radius: 6px; padding: .4rem .75rem; margin: .15rem 0 .15rem 1.5rem; font-weight: 500; }
.wh-picket { background: #f8f9fa; border-left: 4px solid #198754; border-radius: 6px; padding: .3rem .75rem; margin: .1rem 0 .1rem 3rem; font-size: .85rem; }
.wh-picket.occupied { background: #e9f7ef; border-color: #198754; }
.wh-picket.empty { border-color: #ced4da; }
.picket-badge { min-width: 50px; text-align: right; }
/* Location breadcrumb */
.loc-path { font-size: .8rem; color: #6c757d; }
.loc-path span { color: #0d6efd; }
/* Placement status */
.status-placed { color: #198754; font-weight: 600; }
.status-pending { color: #dc3545; font-weight: 600; }
.status-partial { color: #fd7e14; font-weight: 600; }
/* Login */
.login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#1a5276,#148f77); }
.login-card { width:380px; border-radius:16px; padding:2.5rem; box-shadow:0 8px 32px rgba(0,0,0,.25); }
.progress { height: 8px; border-radius: 4px; }
