/* Admin panel sidebar: compact, separated groups with a clear active state. */
:root {
    --sb-border: rgb(226 232 240);
    --sb-text: rgb(51 65 85);
    --sb-muted: rgb(100 116 139);
    --sb-hover: rgb(241 245 249);
    --sb-accent: rgb(79 70 229);
    --sb-accent-bg: rgb(238 242 255);
    --sb-bg: rgb(255 255 255);
}

.dark {
    --sb-border: rgb(255 255 255 / 0.08);
    --sb-text: rgb(226 232 240);
    --sb-muted: rgb(148 163 184);
    --sb-hover: rgb(255 255 255 / 0.05);
    --sb-accent: rgb(129 140 248);
    --sb-accent-bg: rgb(99 102 241 / 0.14);
    --sb-bg: rgb(17 24 39);
}

.fi-sidebar {
    background: var(--sb-bg) !important;
    border-right: 1px solid var(--sb-border);
}

.fi-sidebar-nav {
    padding: 1rem 0.75rem;
    row-gap: 0.25rem;
}

.fi-sidebar-nav-groups {
    margin-inline: 0;
    row-gap: 0;
}

/* One group per block, divided by a hairline. */
.fi-sidebar-group {
    row-gap: 0;
    padding-block: 0.375rem;
    border-top: 1px solid var(--sb-border);
}

.fi-sidebar-group:first-child {
    border-top: 0;
    padding-top: 0;
}

/* Group header */
.fi-sidebar-group-btn {
    gap: 0.75rem;
    padding: 0.5rem 0.625rem;
    border-radius: 0.5rem;
}

.fi-sidebar-group.fi-collapsible > .fi-sidebar-group-btn:hover {
    background: var(--sb-hover);
}

.fi-sidebar-group-btn .fi-icon {
    color: var(--sb-muted);
}

.fi-sidebar-group-label {
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--sb-text);
}

.fi-sidebar-group.fi-active > .fi-sidebar-group-btn .fi-sidebar-group-label,
.fi-sidebar-group.fi-active > .fi-sidebar-group-btn .fi-icon {
    color: var(--sb-accent);
}

/* Items */
.fi-sidebar-item-btn {
    padding: 0.5rem 0.625rem;
    border-radius: 0.5rem;
}

.fi-sidebar-item-label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--sb-text);
}

.fi-sidebar-item.fi-active > .fi-sidebar-item-btn {
    background: var(--sb-accent-bg);
}

.fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-sidebar-item-label {
    font-weight: 600;
    color: var(--sb-accent);
}

/* Items inside a collapsible group: indented under a quiet guide line, no dots. */
.fi-sidebar-group.fi-collapsible > .fi-sidebar-group-items {
    margin: 0.125rem 0 0.25rem 1.375rem;
    padding-left: 0.5rem;
    border-left: 1px solid var(--sb-border);
    row-gap: 0.125rem;
}

.fi-sidebar-group.fi-collapsible .fi-sidebar-item-grouped-border {
    display: none;
}

.fi-sidebar-group.fi-collapsible .fi-sidebar-group-items .fi-sidebar-item-btn {
    padding: 0.4375rem 0.625rem;
}

.fi-sidebar-group.fi-collapsible .fi-sidebar-group-items .fi-sidebar-item-label {
    color: var(--sb-muted);
}

.fi-sidebar-group.fi-collapsible .fi-sidebar-group-items .fi-sidebar-item:hover > .fi-sidebar-item-btn .fi-sidebar-item-label {
    color: var(--sb-text);
}

.fi-sidebar-group.fi-collapsible .fi-sidebar-group-items .fi-sidebar-item.fi-active > .fi-sidebar-item-btn {
    box-shadow: inset 2px 0 0 var(--sb-accent);
    border-radius: 0 0.5rem 0.5rem 0;
}

/* Top-level items (Dashboard): the unlabeled group is still "collapsible" in Filament, so match it by its empty label. */
.fi-sidebar-group[data-group-label=""] > .fi-sidebar-group-items {
    margin: 0;
    padding: 0;
    border: 0;
}

.fi-sidebar-group[data-group-label=""] .fi-sidebar-item-grouped-border {
    display: none;
}

.fi-sidebar-group[data-group-label=""] .fi-sidebar-item-btn {
    padding: 0.5rem 0.625rem;
}

.fi-sidebar-group[data-group-label=""] .fi-sidebar-item-label {
    color: var(--sb-text);
}

.fi-sidebar-group[data-group-label=""] .fi-sidebar-item.fi-active > .fi-sidebar-item-btn {
    box-shadow: none;
    border-radius: 0.5rem;
}

.fi-sidebar-group[data-group-label=""] .fi-sidebar-item.fi-active > .fi-sidebar-item-btn .fi-sidebar-item-label {
    color: var(--sb-accent);
}
