diff --git a/modules/web_viewer/templates/contacts.html b/modules/web_viewer/templates/contacts.html index d1aae40..28f4154 100644 --- a/modules/web_viewer/templates/contacts.html +++ b/modules/web_viewer/templates/contacts.html @@ -51,6 +51,132 @@ line-height: 1.25; padding: 0.35em 0.55em; } + + /* Contacts table toolbar: one row on mobile, matching control heights */ + .contacts-toolbar-filters-wrap { + overflow-x: auto; + overflow-y: hidden; + -webkit-overflow-scrolling: touch; + min-width: 0; + max-width: 100%; + } + + .contacts-toolbar-filters { + display: flex; + flex-wrap: nowrap; + align-items: center; + justify-content: flex-start; + gap: 0.35rem; + width: 100%; + min-height: 2.375rem; + } + + @media (min-width: 768px) { + .contacts-toolbar-filters { + justify-content: flex-end; + gap: 0.5rem; + } + } + + @media (min-width: 576px) and (max-width: 767.98px) { + .contacts-toolbar-filters { + gap: 0.5rem; + } + } + + .contacts-toolbar-filters .form-select-sm, + .contacts-toolbar-filters .input-group-sm, + .contacts-toolbar-filters #contacts-timespan { + flex-shrink: 0; + } + + .contacts-toolbar-filters #contacts-timespan { + min-height: 2.375rem; + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 0.875rem; + box-sizing: border-box; + } + + .contacts-toolbar-search { + flex: 1 1 7.5rem; + min-width: 0; + max-width: 100%; + } + + @media (min-width: 768px) { + .contacts-toolbar-search { + flex: 0 1 300px; + max-width: 300px; + } + } + + .contacts-toolbar-filters .contacts-overflow-btn { + flex-shrink: 0; + width: 2.375rem; + height: 2.375rem; + box-sizing: border-box; + } + + /* Match search + refresh to the same row height as overflow icon buttons (2.375rem) */ + .contacts-toolbar-filters .contacts-toolbar-search.input-group { + min-height: 2.375rem; + align-items: stretch; + } + + .contacts-toolbar-filters .contacts-toolbar-search > .input-group-text, + .contacts-toolbar-filters .contacts-toolbar-search > .form-control { + min-height: 2.375rem; + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 0.875rem; + box-sizing: border-box; + } + + .contacts-toolbar-filters .contacts-toolbar-search > .input-group-text { + display: flex; + align-items: center; + justify-content: center; + padding-left: 0.65rem; + padding-right: 0.65rem; + } + + .contacts-toolbar-filters .contacts-toolbar-search .input-group-text i { + font-size: 1rem; + } + + .contacts-toolbar-filters #refresh-contacts { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 2.375rem; + padding-top: 0.375rem; + padding-bottom: 0.375rem; + font-size: 0.875rem; + box-sizing: border-box; + } + + .contacts-toolbar-filters #refresh-contacts i { + font-size: 1rem; + } + + @media (max-width: 575.98px) { + .contacts-toolbar-filters #refresh-contacts { + min-width: 2.375rem; + padding-left: 0.5rem; + padding-right: 0.5rem; + } + } + + .contacts-mobile-sort-row { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + min-width: 0; + } + + .contacts-mobile-sort-row .flex-grow-1 { + min-width: 0; + } {% endblock %} @@ -162,32 +288,48 @@