/* --- General Styles --- */
.scm-widget-wrapper .widget-title { font-size: var(--scm-title-font-size, 18px); line-height: var(--scm-title-line-height, 1.4); }
.scm-widget-wrapper .sidebar { font-family: inherit; color: inherit; display: flex; flex-direction: column; gap: var(--scm-row-gap, 5px); }
.scm-widget-wrapper .sidebar a { text-decoration: none; color: inherit; }

/* --- Main Category Row --- */
.scm-widget-wrapper .sidebar__toggle {
  font-size: var(--scm-main-cat-font-size, 16px); font-weight: 400; color: var(--scm-main-cat-text-color, inherit);
  line-height: var(--scm-main-cat-line-height, 1.4);
  background: none; border: none; padding: 2px 0; margin: 0; width: 100%; display: flex;
  align-items: center; cursor: pointer; user-select: none;
  transition: color 0.2s ease-in-out, font-weight 0.2s ease-in-out; gap: 10px;
}
.scm-widget-wrapper .cat-name { text-align: start; }
.sidebar__toggle.count-pos-end_of_row .cat-name { flex-grow: 1; }

/* --- Icons --- */
.scm-widget-wrapper .category-icon { 
    width: var(--scm-icon-size, 20px); 
    height: var(--scm-icon-size, 20px); 
    flex-shrink: 0; 
    color: var(--scm-cat-icon-color, #555555);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out; 
}
.scm-widget-wrapper .category-icon svg {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.scm-widget-wrapper .category-icon--boxed {
    background-color: var(--scm-icon-box-bg-color, #f0f0f0);
    padding: var(--scm-icon-box-padding, 5px);
    border-radius: var(--scm-icon-box-border-radius, 4px);
}

.scm-widget-wrapper .sidebar__icon {
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: color 0.2s ease-in-out;
  margin-inline-start: auto;
  position: relative;
}
.scm-widget-wrapper .sidebar__icon svg {
    width: var(--scm-arrow-icon-size, 15px);
    height: var(--scm-arrow-icon-size, 15px);
    display: block;
}
.scm-widget-wrapper .arrow-style-chevron svg,
.scm-widget-wrapper .arrow-style-simple svg {
    transform-origin: center;
    transition: transform 0.3s ease-in-out;
}
.scm-widget-wrapper .sidebar__icon--boxed {
    background-color: var(--scm-arrow-box-bg-color, #f0f0f0);
    color: var(--scm-arrow-box-icon-color, #333);
    border-radius: var(--scm-arrow-box-border-radius, 4px);
    padding: var(--scm-arrow-box-padding, 5px);
    transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out;
}


/* --- Sub-Menu --- */
.sidebar__submenu-wrapper { overflow: hidden; max-height: 0; opacity: 0; visibility: hidden; transition: max-height 0.3s ease-out, opacity 0.3s ease-out, padding 0.3s ease-out; }
.scm-widget-wrapper .sidebar__submenu {
  display: flex; flex-direction: column; list-style: none; margin: 0;
  padding-block: var(--scm-submenu-padding-y-top, 0) var(--scm-submenu-padding-y-bottom, 0);
  /* --- FIX: This variable now correctly controls the vertical space between items --- */
  gap: var(--scm-submenu-item-gap, 8px); 
  padding-inline-start: var(--scm-submenu-indentation, 20px);
}
.scm-widget-wrapper .sidebar__submenu li { 
    font-size: var(--scm-sub-cat-font-size, 14px); 
    line-height: var(--scm-sub-cat-line-height, 1.4);
    display: flex; align-items: center; margin: 0; padding: 0; 
    transition: color 0.2s ease-in-out; color: var(--scm-sub-cat-text-color, inherit); 
}
/* --- FIX: The gap here controls the space INSIDE the link (e.g., between checkbox and text) --- */
.scm-widget-wrapper .sidebar__submenu li > a { 
    display: flex; flex-grow: 1; align-items: center; 
    gap: var(--scm-checkbox-gap, 8px); 
}

/* --- Count Box --- */
.scm-widget-wrapper .category-count {
  font-size: var(--scm-count-font-size, 12px);
  font-weight: 300;
  flex-shrink: 0;
  transition: all 0.2s ease-in-out;
  padding: 0; /* Reset theme-inherited padding */
  margin: 0;  /* Reset theme-inherited margin */
}
.scm-widget-wrapper .category-count.count-style-box {
  background-color: var(--scm-count-bg-color, #f8f9fb);
  padding: var(--scm-count-padding, 3px 8px);
  border-radius: var(--scm-count-border-radius, 5px);
  color: var(--scm-count-text-color, #333);
  line-height: var(--scm-count-line-height, 1.4);
}
.scm-widget-wrapper .category-count.count-style-plain {
  background-color: transparent;
  color: var(--scm-main-cat-text-color, inherit);
  line-height: var(--scm-count-line-height, 1.4);
}
.sidebar__submenu li > a .category-count.count-style-plain {
    color: var(--scm-sub-cat-text-color, inherit);
}
.sidebar__submenu li > a .category-count { margin-inline-start: auto; }

/* --- Uniform Box Shape --- */
.scm-widget-wrapper .is-shape-square {
    display: flex;
    align-items: center;
    justify-content: center;
}
.scm-widget-wrapper .category-count.is-shape-square {
    line-height: 1; /* Override for perfect centering */
}

/* --- Checkbox Filter & States --- */
.scm-widget-wrapper .ct-checkbox {
    border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px;
    overflow: hidden; padding: 0; position: absolute; width: 1px;
}
.scm-custom-checkbox-wrapper {
    position: relative;
    display: inline-block;
    flex-shrink: 0;
}
.scm-checkbox-visual {
    display: inline-block;
    width: var(--scm-checkbox-size, 18px);
    height: var(--scm-checkbox-size, 18px);
    border: 2px solid var(--scm-checkbox-border-color, #ccc);
    border-radius: 3px;
    transition: all 0.2s ease-in-out;
    position: relative;
}
.scm-checkbox-visual::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 45%;
    width: calc(var(--scm-checkbox-size, 18px) * 0.3);
    height: calc(var(--scm-checkbox-size, 18px) * 0.6);
    border: solid var(--scm-checkbox-checkmark-color, #fff);
    border-width: 0 calc(var(--scm-checkbox-size, 18px) / 9) calc(var(--scm-checkbox-size, 18px) / 9) 0;
    transform-origin: center;
    transform: translate(-50%, -50%) rotate(45deg) scale(0);
    opacity: 0;
    transition: all 0.2s ease-in-out;
}
.ct-checkbox:checked + .scm-checkbox-visual {
    background-color: var(--scm-checkbox-bg-active-color, #5e3fde);
    border-color: var(--scm-checkbox-border-active-color, #5e3fde);
}
.ct-checkbox:checked + .scm-checkbox-visual::after {
    transform: translate(-50%, -50%) rotate(45deg) scale(1);
    opacity: 1;
}
.scm-widget-wrapper .ct-filter-item a:hover .scm-checkbox-visual {
    border-color: var(--scm-checkbox-border-hover-color, #5e3fde);
}
.scm-widget-wrapper .ct-filter-item a:hover .ct-checkbox:checked + .scm-checkbox-visual {
    border-color: var(--scm-checkbox-border-active-color, #5e3fde);
}


/* --- Hover & Active States --- */
.scm-widget-wrapper .sidebar__toggle:hover { color: var(--scm-main-cat-hover-text-color, #5e3fde); }
.scm-widget-wrapper .sidebar__toggle.is-active { color: var(--scm-main-cat-active-text-color, #5e3fde); }
.scm-widget-wrapper .sidebar__submenu li:hover > a { color: var(--scm-item-hover-text-color, #5e3fde); }
.scm-widget-wrapper .ct-filter-item.active > a, .scm-widget-wrapper .sidebar__submenu li a.active-link { color: var(--scm-filter-active-text-color, #5e3fde); }

.scm-widget-wrapper .sidebar__toggle:hover .category-count.count-style-box, .scm-widget-wrapper .sidebar__submenu li:hover .category-count.count-style-box, .scm-widget-wrapper .ct-filter-item.active .category-count.count-style-box, .scm-widget-wrapper .sidebar__submenu li a.active-link .category-count.count-style-box { background-color: var(--scm-count-hover-bg-color, #5e3fde); color: var(--scm-count-hover-text-color, #fff); }

.scm-widget-wrapper .sidebar__toggle:hover .category-icon { color: var(--scm-cat-icon-hover-color, #5e3fde); }
.scm-widget-wrapper .sidebar__toggle.is-active .category-icon, .scm-widget-wrapper .sidebar__toggle[aria-expanded="true"] .category-icon { color: var(--scm-cat-icon-active-color, #5e3fde); }

.scm-widget-wrapper .sidebar__toggle:hover .category-icon--boxed { background-color: var(--scm-icon-box-hover-bg-color, #5e3fde); }

.scm-widget-wrapper .sidebar__toggle:hover .sidebar__icon--boxed {
    background-color: var(--scm-arrow-box-hover-bg-color, #5e3fde);
    color: var(--scm-arrow-box-hover-icon-color, #fff);
}

.scm-widget-wrapper .sidebar__toggle.bold-active-main.is-active { font-weight: bold; }
.scm-widget-wrapper .sidebar__submenu li.bold-active-sub.active > a, .scm-widget-wrapper .sidebar__submenu li.bold-active-sub a.active-link { font-weight: bold; }

/* --- Animation & Prefix --- */
.scm-widget-wrapper .sidebar__toggle[aria-expanded="true"] .arrow-style-chevron svg,
.scm-widget-wrapper .sidebar__toggle[aria-expanded="true"] .arrow-style-simple svg { transform: rotateX(180deg); }
.sidebar__submenu-wrapper[aria-hidden="false"] { max-height: 500px; opacity: 1; visibility: visible; }
.scm-widget-wrapper .sidebar.js-preload .sidebar__icon svg, .scm-widget-wrapper .sidebar.js-preload .sidebar__submenu-wrapper { transition: none !important; }
.scm-widget-wrapper .sidebar__submenu li[data-prefix]::before { color: currentColor; flex-shrink: 0; }
.scm-widget-wrapper .sidebar__submenu li[data-prefix="-"]::before  { content: '- '; }
.scm-widget-wrapper .sidebar__submenu li[data-prefix="• "]::before  { content: '•  '; }
.scm-widget-wrapper .sidebar__submenu li[data-prefix="›"]::before  { content: '› '; }

/* --- Plus/Minus Arrow Style --- */
.scm-widget-wrapper .arrow-style-plus-minus .icon-plus,
.scm-widget-wrapper .arrow-style-plus-minus .icon-minus {
    transition: opacity 0.2s ease-in-out;
}
.scm-widget-wrapper .arrow-style-plus-minus .icon-minus {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
}
.scm-widget-wrapper .sidebar__toggle[aria-expanded="true"] .arrow-style-plus-minus .icon-plus {
    opacity: 0;
}
.scm-widget-wrapper .sidebar__toggle[aria-expanded="true"] .arrow-style-plus-minus .icon-minus {
    opacity: 1;
}