body { 
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 
  margin: 20px; 
  color: #333;
}

h1 { 
  color: #2c3e50; 
  margin-bottom: 20px;
  border-bottom: 2px solid #3498db;
  padding-bottom: 10px;
}

.stats {
  background: #eaf4fd;
  padding: 15px;
  border-radius: 8px;
  margin-bottom: 20px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 10px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.stats div {
  padding: 5px;
}

table { 
  width: 100%; 
  border-collapse: separate;
  border-spacing: 0;
  margin-top: 20px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

th, td { 
  padding: 12px 15px;
  border: 1px solid #e0e0e0;
  text-align: left;
  vertical-align: middle;
}

th { 
  background-color:rgb(52, 152, 219);
  color: white;
  position: sticky;
  z-index: 9999;
  top: 0;
  font-weight: 500;
}

tr:nth-child(even) { background-color: #f8f9fa; }
tr:hover { background-color: #f1f8fe; }

a { 
  color: #2980b9; 
  text-decoration: none;
  font-weight: 500;
}

a:hover { 
  text-decoration: underline;
  color: #1a5276;
}

.problem-list { 
  margin: 0; 
  padding-left: 5px;
}

.problem-list li {
  margin-bottom: 8px;
  padding-left: 8px;
  border-left: 3px solid;
  list-style-type: none;
  position: relative;
}

.problem-list li::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-right: 5px;
  vertical-align: middle;
  background-size: contain;
  background-repeat: no-repeat;
}

.missing { 
  color: #f07e4d;
  border-left-color: #f07e4d;
}
.missing::before { 
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23f07e4d"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/></svg>'); 
}

.internal { 
  color: #e67e22;
  border-left-color: #e67e22;
}
.internal::before { 
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23e67e22"><path d="M11 15h2v2h-2zm0-8h2v6h-2zm1-5C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></svg>'); 
}

.attribute-duplicate { 
  color: #e74c3c;
  border-left-color: #e74c3c;
}
.attribute-duplicate::before { 
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23e74c3c"><path d="M18 9v10c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h3.17L7.58 4.41C7.21 4.15 7 3.74 7 3.3V2h10v1.3c0 .44-.21.85-.58 1.11L16.83 7H18c1.1 0 2 .9 2 2zm-2 0H4v10h12V9zM9 9l1 4h4l1-4H9zm7.5-6h-9l-.5 1h10l-.5-1z"/></svg>'); 
}

.pack-duplicate { 
  color: #9b59b6;
  border-left-color: #9b59b6;
}
.pack-duplicate::before { 
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%239b59b6"><path d="M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4V4c0-1.1-.9-2-2-2zm0 15.17L18.83 16H4V4h16v13.17z"/><path d="M8 10h8v2H8zM8 7h8v2H8z"/></svg>'); 
}

.mismatch { 
  color: #f39c12;
  border-left-color: #f39c12;
}
.mismatch::before { 
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23f39c12"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31C15.55 19.37 13.85 20 12 20zm6.31-3.1L7.1 5.69C8.45 4.63 10.15 4 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z"/></svg>'); 
}

.code { 
  font-family: monospace; 
  color: #555;
  background: #f5f5f5;
  padding: 2px 5px;
  border-radius: 3px;
}

.filter{
display:flex;
flex-wrap:wrap;
gap:1rem;
margin:1.25rem 0;
padding:1rem;
background:#eaf4fd;
border-radius:8px;
box-shadow:0 1px 3px rgb(0 0 0 / .08);
}

/* --- группа чекбоксов ---------------------------------------------------- */
.filter__group{
display:flex;
align-items:center;
flex-wrap:wrap;
gap:.75rem 1.25rem;
padding:.5rem 1rem .75rem;
border:1px solid #c9e3fb;
border-radius:6px;
}

.filter__group legend{
padding:0 .5rem;
font-weight:600;
color:#2c3e50;
}

/* --- чекбокс со своим текстом ------------------------------------------- */
.chk{display:flex; align-items:center; gap:.35rem; line-height:1;}
.chk input{accent-color:#3498db; transform:translateY(-.5px);}

/* --- блок с кнопками ----------------------------------------------------- */
.filter__actions{display:flex; gap:.5rem; align-items:center; margin-left:auto;}

/* --- TOOLTIP ------------------------------------------------------------- */
.tooltip{position:relative; cursor:help;}
.tooltip::after{
content:attr(data-tip);
position:absolute;
bottom:calc(100% + 6px);
left:50%; transform:translateX(-50%);
width:max-content; max-width:220px;
padding:.45rem .6rem;
border-radius:4px;
background:#2c3e50;
color:#fff;
font-size:.75rem; line-height:1.2;
box-shadow:0 4px 10px rgb(0 0 0 / .12);
opacity:0; pointer-events:none;
transition:opacity .15s;
z-index:20;
}
.tooltip:hover::after{opacity:1;}

button {
  padding: 8px 16px;
  background-color: #3498db;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s;
  font-size: 14px;
}

button:hover {
  background-color: #2980b9;
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

button:active {
  transform: translateY(0);
  box-shadow: none;
}

.no-results { 
  color: #777; 
  padding: 20px; 
  text-align: center; 
  display: none;
  font-size: 1.1em;
}

.pack-name { 
  color: #7f8c8d;
  font-size: 0.9em;
  margin-left: 5px;
}

.pack-item {
  display: flex;
  justify-content: space-between;
}

.uom-cell { 
  min-width: 100px;
  font-weight: 500;
}

.dataTables_wrapper .dataTables_filter input {
  margin-left: 10px;
  padding: 5px;
  border: 1px solid #ddd;
  border-radius: 4px;
}

.dataTables_wrapper .dataTables_length select {
  padding: 5px;
  border: 1px solid #ddd;
  border-radius: 4px;
}

@media (max-width: 768px) {
  .filter-group {
      display: block;
      margin-bottom: 15px;
  }
  
  .stats {
      grid-template-columns: 1fr;
  }
  
  th, td {
      padding: 8px 10px;
      font-size: 0.9em;
  }
}