@layer components { /* List toolbar — page-size selector, filter toggle, and search controls above grids. */ .app-list-toolbar { --app-list-toolbar-gap: 10px; --app-list-toolbar-padding-x: 10px; --app-list-toolbar-padding-y: 6px; display: flex; align-items: flex-end; flex-wrap: wrap; gap: var(--app-list-toolbar-gap); margin-bottom: var(--app-spacing); } .app-list-toolbar > * { margin: 0; width: auto; font-size: var(--text-sm); height: auto; } .app-list-toolbar :is(.app-field, label, button, [role="button"], input, select, .multi-select) { margin: 0; width: auto; } .app-list-toolbar :is(button, [role="button"], input, select) { --app-form-element-spacing-horizontal: var(--app-list-toolbar-padding-x); --app-form-element-spacing-vertical: var(--app-list-toolbar-padding-y); font-size: var(--text-sm); min-height: calc(var(--app-list-toolbar-padding-y) * 2 + 1.4em); } .app-list-toolbar > button, .app-list-toolbar > [role="button"] { padding: var(--app-list-toolbar-padding-y) var(--app-list-toolbar-padding-x); } .app-list-toolbar input:not( [type="checkbox"], [type="radio"], [type="range"], [type="file"] ):is( [type="date"], [type="datetime-local"], [type="month"], [type="time"], [type="week"] ) { width: auto; } .app-list-toolbar > label > span, .app-list-toolbar > .app-field > span { display: block; font-size: var(--text-xs); margin-bottom: 2px; } .app-list-toolbar .app-grid-page-size { margin-inline-start: auto; } .app-list-toolbar .app-grid-page-size select { min-width: 84px; } .app-list-toolbar .multi-select { width: 200px; } .app-list-toolbar .multi-select .multi-select-header .multi-select-header-placeholder { font-size: var(--text-sm); } .app-list-toolbar .multi-select .multi-select-header, .app-list-toolbar .multi-select .multi-select-option, .app-list-toolbar .multi-select .multi-select-all { min-height: unset; padding-left: 5px; } .app-list-toolbar span.multi-select-header-option { background: transparent; border: 0; padding: 0 0 0 3px; font-size: var(--text-xs); } @media (max-width: 768px) { .app-list-toolbar .app-grid-page-size { margin-inline-start: 0; } } /* xs — only the "wide" controls stack full-width so they don't overflow the grid; compact controls (page-size, small buttons) keep their natural width. */ @media (max-width: 576px) { .app-list-toolbar { width: 100%; } .app-list-toolbar > .multi-select, .app-list-toolbar > label:has(input[type="search"]), .app-list-toolbar > label:has(input[type="text"]), .app-list-toolbar > .app-field:has(input[type="search"]), .app-list-toolbar > .app-field:has(input[type="text"]), .app-list-toolbar > .app-field:has(textarea) { width: 100%; } .app-list-toolbar > .multi-select .multi-select-header { width: 100%; } .app-list-toolbar > :is(.app-field, label):has(input[type="search"]) input, .app-list-toolbar > :is(.app-field, label):has(input[type="text"]) input, .app-list-toolbar > .app-field:has(textarea) textarea { width: 100%; } } }