*,:before,:after{box-sizing:border-box}:root{color:#1f2937;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f5;font-family:system-ui,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}body{margin:0}#root{min-height:100vh}.page{max-width:1200px;margin:0 auto;padding:24px;font-family:system-ui,-apple-system,sans-serif}.page--narrow{max-width:640px}.page--medium{max-width:900px}.page-title{margin-bottom:24px;font-size:20px;font-weight:600}.card{background:#fff;border-radius:12px;margin-bottom:16px;padding:20px;box-shadow:0 1px 3px #00000014}.form-row{margin-bottom:16px}.label{color:#374151;margin-bottom:6px;font-weight:500;display:block}.input{box-sizing:border-box;border:1px solid #d1d5db;border-radius:8px;width:100%;padding:12px 16px;font-size:16px}.input--compact{border-radius:4px;width:auto;min-width:160px;padding:8px 12px;font-size:14px}.btn{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:500}.btn--compact{border-radius:4px;padding:8px 16px}.btn--primary{color:#fff;background:#2563eb}.btn--primary:hover{background:#1d4ed8}.btn--secondary{color:#374151;background:#e5e7eb}.btn--secondary:hover{background:#d1d5db}.btn--danger{color:#fff;background:#dc2626}.btn--danger:hover{background:#b91c1c}.btn--small{padding:4px 12px;font-size:12px}.table{border-collapse:collapse;width:100%}.table th{text-align:left;background:#f9fafb;border-bottom:2px solid #e5e7eb;padding:12px}.table td{border-bottom:1px solid #e5e7eb;padding:12px}.text-success{color:#059669;margin-top:8px;font-weight:500}.text-error{color:#dc2626;margin-top:8px}.flex-row{gap:8px;display:flex}.flex-row--md{gap:12px}.flex-row--lg{gap:16px}.tabs{gap:8px;margin-bottom:24px;display:flex}.tab{cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:8px 16px;font-weight:500}.tab--active{color:#fff;background:#2563eb;border-color:#2563eb}.toolbar{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:480px;max-height:90vh;padding:24px;overflow:auto}.input-wrap{position:relative}.dropdown{z-index:10;background:#fff;border:1px solid #e5e7eb;border-radius:8px;max-height:180px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow:auto;box-shadow:0 4px 6px #0000001a}.dropdown-item{cursor:pointer;border-bottom:1px solid #f3f4f6;padding:10px 12px}.dropdown-item:hover{background:#f3f4f6}.sku-row{align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.sku-img{object-fit:cover;border-radius:8px;width:80px;height:80px}.sku-img--small{width:48px;height:48px}.sku-info{flex:1}.status-tag{border-radius:4px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-block}.status-tag--success{color:#059669;background:#d1fae5}.status-tag--danger{color:#dc2626;background:#fee2e2}.status-tag--muted{color:#6b7280;background:#f3f4f6}.status-tag--warning{color:#d97706;background:#fef3c7}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.stat-card{text-align:center;background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #00000014}.stat-card__value{color:#1f2937;margin-bottom:4px;font-size:28px;font-weight:700}.stat-card__label{color:#6b7280;font-size:14px}.stat-card--blue{border-left:4px solid #2563eb}.stat-card--green{border-left:4px solid #059669}.stat-card--orange{border-left:4px solid #d97706}.stat-card--red{border-left:4px solid #dc2626}.section-title{color:#374151;margin-bottom:12px;font-size:16px;font-weight:600}.summary-bar{color:#4b5563;background:#f9fafb;border-radius:8px;flex-wrap:wrap;gap:24px;margin-bottom:16px;padding:12px 16px;font-size:14px;display:flex}.modal-content--wide{max-width:720px}.btn:focus-visible,.input:focus-visible,.tab:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.btn:disabled{opacity:.5;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
