// ─── Shared sidebar + sidebar-header styles ─────────────────────────────────── // Plain CSS rules (not a mixin) used for M3U/legacy sidebar layouts. // // Usage (after adding libs/ui/styles to stylePreprocessorOptions.includePaths): // @use 'portal-sidebar'; (no alias needed — no exported members to call) .sidebar { // Width is controlled by the resizable directive // Default fallback if directive not applied width: 400px; min-width: 250px; max-width: 600px; border-right: 1px solid var(--app-separator); display: flex; flex-direction: column; flex-shrink: 0; // Prevent sidebar from shrinking .sidebar-header { padding: 8px 12px; background: var(--app-widget-header-bg, var(--mat-sys-surface-container-high)); border-bottom: 1px solid var(--app-separator); app-region: drag; display: flex; align-items: center; gap: 8px; flex-shrink: 0; h2 { margin: 0; font-size: 0.94rem; font-weight: 600; letter-spacing: -0.01em; color: var(--mat-sys-on-surface); flex: 1; } button { app-region: no-drag; } .switcher { flex: 1; min-width: 0; } .manage-categories-btn { margin-left: auto; } .category-heading { display: flex; align-items: baseline; gap: 8px; flex: 1; min-width: 0; } .category-title { margin: 0; font-size: 0.94rem; font-weight: 600; letter-spacing: -0.01em; color: var(--mat-sys-on-surface); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .category-count { flex-shrink: 0; font-size: 0.72rem; font-weight: 500; color: var(--mat-sys-on-surface-variant); background: var(--mat-sys-surface-container); padding: 2px 8px; border-radius: 999px; } } }