:host { display: flex; flex-direction: column; width: 220px; min-width: 220px; background: #1e1e2e; border-right: 1px solid #313244; padding: 16px 12px; gap: 4px; height: 100%; overflow: hidden; box-sizing: border-box; } .item { display: flex; align-items: center; gap: 10px; padding: 5px 12px; margin: 2px; border-radius: 6px; text-decoration: none; color: #a6adc8; font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; min-height: 25px; transition: background 0.1s, color 0.1s; } .item:hover { background: #313244; color: #cdd6f4; } .item.active { background: #313244; color: #89b4fa; } .item.active .icon { color: #89b4fa; } .icon { display: flex; align-items: center; color: #6c7086; flex-shrink: 0; } .item:hover .icon { color: #cdd6f4; } .section-header { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: #45475a; padding: 14px 12px 4px; } .separator { height: 1px; background: #313244; margin: 6px 4px; } /* ── Accordion group ────────────────────────────────────────────────────── */ .group { display: flex; flex-direction: column; } .group-header { display: flex; align-items: center; gap: 10px; padding: 5px 12px; margin: 2px; border-radius: 6px; background: transparent; border: none; cursor: pointer; color: #a6adc8; font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; min-height: 25px; transition: background 0.1s, color 0.1s; width: 100%; text-align: left; } .group-header:hover { background: #313244; color: #cdd6f4; } .group-header:hover .icon { color: #cdd6f4; } .group-header.has-active { color: #89b4fa; } .group-header.has-active .icon { color: #89b4fa; } .chevron { margin-left: auto; display: flex; align-items: center; color: #6c7086; flex-shrink: 0; transition: transform 0.2s ease; } .chevron.open { transform: rotate(90deg); } .group-children { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.2s ease; } .group-children.open { grid-template-rows: 1fr; } .group-children > div { overflow: hidden; } .item.child { padding-left: 36px; }