/* Shared page headings and list controls. */
main.container { padding-block-start: .75rem; }
main.container h1.page-title { margin-block: 0 .65rem; font-size: 1.5rem; line-height: 1.5; overflow-wrap: anywhere; }
main.container .project-list-header .page-title { margin: 0; }
.page-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin-block-end: .65rem; min-width: 0; }
main.container .page-toolbar .page-title { margin: 0; }
.page-toolbar > .actions-row, .page-toolbar > p, .page-toolbar > .scope-filters { margin: 0; }
.page-toolbar > .scope-filters { flex: 1 1 auto; min-width: 0; gap: .5rem; }
.page-toolbar .scope-links a { min-height: 2rem; padding: .3rem .55rem; font-size: .8rem; }
.page-toolbar > .quick-filters { flex: 1 1 21rem; min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; align-items: center; gap: .5rem; }
.page-toolbar .tag-filter-field { flex: 1 1 12rem; min-width: 0; width: auto; }
.page-toolbar .tag-filter-field > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.page-toolbar .quick-filters .btn { align-self: center; }
.page-filter-form { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; }
.page-filter-form select { min-width: 0; max-width: 100%; padding: .4rem .6rem; border: 1px solid var(--color-border); border-radius: var(--radius); background: var(--color-surface); color: var(--color-text); font: inherit; }
.page-toolbar .more-info { margin: 0; padding: 0; border: 0; }
main.container .entity-page-header { margin-block-end: .65rem; gap: .5rem .75rem; }
main.container .entity-page-header .page-title { margin: 0; }
main.container > .help-text, main.container > .page-lead { margin-block: .35rem .75rem; }

/* Notes: title, search, filters and import share the first row. */
main.container .notes-heading { flex-wrap: wrap; gap: .5rem .75rem; margin-bottom: .65rem; }
main.container .notes-heading .page-title { margin: 0; }
main.container .notes-heading .notes-subtitle { margin: .1rem 0 0; }
main.container .notes-browse-bar { flex: 1 1 20rem; min-width: 0; margin: 0; }
main.container .notes-search { min-width: 0; }
main.container .notes-search input { min-width: 0; padding-block: .5rem; }
main.container .notes-capture { max-width: none; margin: 0 0 .65rem; padding: .35rem; }
main.container .notes-filter-inputs { margin-bottom: .65rem; padding: .65rem; }

/* Documents: search and the expandable filters sit with the page actions. */
main.container .dms-heading { margin: 0 0 .65rem; gap: .5rem .75rem; flex-wrap: wrap; }
main.container .dms-heading .page-title, main.container .dms-heading .actions-row { margin: 0; }
main.container .dms-index > .dms-heading { justify-content: flex-start; }
main.container .dms-index .dms-filters { display: flex; flex: 1 1 26rem; flex-wrap: wrap; align-items: center; gap: .5rem; min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
main.container .dms-index .dms-search-row { flex: 1 1 16rem; min-width: 0; margin: 0; gap: .5rem; }
main.container .dms-search-row input { min-width: 0; }
main.container .dms-index .dms-filters > details > summary { cursor: pointer; padding: .4rem; font-size: .85rem; }
main.container .dms-index .dms-filters > details[open] { flex: 1 1 100%; min-width: 0; }
main.container .dms-index .dms-filter-content { padding: .65rem; border: 1px solid var(--color-border); border-radius: var(--radius); background: var(--color-surface); }
main.container .dms-list-header { margin-block: 0 .5rem; }

/* Messenger: conversation browsing is available in the heading. */
main.container .msg-page-heading { flex-wrap: wrap; gap: .5rem .75rem; margin-block: 0 .65rem; }
main.container .msg-page-heading .page-title { margin: 0; }
.msg-list-controls { display: flex; flex: 1 1 22rem; align-items: center; gap: .5rem; min-width: 0; }
#messenger-app .msg-list-controls #msg-conversation-search { flex: 1 1 14rem; min-width: 0; width: auto; }
#messenger-app .msg-list-controls #msg-mode { flex: 0 1 11rem; min-width: 0; width: auto; }
main.container .msg-sidebar-tools { padding: .65rem; gap: .5rem; }

/* Calendar: optional sentence entry expands on demand. */
main.container .cal-header { gap: .5rem .75rem; }
main.container .cal-header h1 { margin: 0; font-size: 1.5rem; }
main.container .cal-header p { margin: .1rem 0 0; font-size: .8rem; }
.cal-natural-disclosure { min-width: 0; }
.cal-natural-disclosure > summary { cursor: pointer; color: var(--color-primary); font-size: .85rem; padding-block: .4rem; }
.cal-natural-disclosure[open] { flex: 1 1 100%; }
main.container .cal-natural { margin: .35rem 0; padding: .65rem; }
main.container #pm-calendar-app .cal-toolbar { flex-direction: row; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin-block: .65rem; padding: .65rem; }
main.container .cal-navigation { flex: 1 1 auto; }
main.container .cal-filters { display: flex; flex: 1 1 35rem; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; min-width: 0; }
main.container #pm-calendar-app .cal-filter-field { flex: 1 1 8rem; flex-direction: row; align-items: center; gap: .4rem; }
main.container #pm-calendar-app .cal-filter-search { flex-basis: 10rem; }
main.container .cal-filter-field > input, main.container .cal-filter-field > select { flex: 1; min-width: 0; width: 0; }
main.container .cal-filter-toggles { flex-direction: row; flex-wrap: wrap; gap: .5rem .75rem; min-height: 0; }
main.container #pm-calendar-app .cal-filter-toggles label { font-size: .78rem; }
main.container #cal-status:empty, main.container #cal-invitations:empty { margin: 0; }
main.container .cal-legend { margin-block: .5rem; }

/* Upcoming dates use the same compact heading pattern. */
main.container .cal-upcoming { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .75rem; padding: .65rem; margin-bottom: .65rem; }
main.container .cal-upcoming > header { flex: 1 1 20rem; align-items: center; gap: .5rem; }
main.container .cal-upcoming-tabs { margin: 0; }
main.container #cal-upcoming-content { flex: 1 1 100%; }
main.container #cal-upcoming-content > p, main.container #cal-upcoming-content > ol { margin-block: .25rem 0; }

/* Dashboard and work reports keep related controls together on wide screens. */
@media (min-width: 761px) {
    main.container .dashboard-header-row { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .75rem; margin-bottom: .65rem; }
    main.container .dashboard-header-title { flex: 0 1 auto; }
    main.container .dashboard-header-row .project-header-actions { margin: 0; gap: .5rem; }
    main.container .dashboard-header-row .quick-filters { flex: 1 1 34rem; align-items: center; gap: .5rem; padding: 0; border: 0; background: transparent; }
    main.container .dashboard-header-row .filter-field:not(.tag-filter-field) { flex-direction: row; align-items: center; gap: .35rem; }
    main.container .dashboard-header-row .filter-field select { min-width: 0; width: 8rem; }
    main.container .dashboard-header-row .tag-filter-field { flex: 1 1 11rem; min-width: 0; width: auto; }
    main.container .dashboard-header-row .tag-filter-field > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
    main.container .dashboard-header-row .quick-filters .btn { align-self: center; }
    main.container .work-tree:has(> .work-tree-search) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(13rem, 22rem); gap: .35rem .75rem; }
    main.container .work-tree:has(> .work-tree-search) > * { grid-column: 1 / -1; }
    main.container .work-tree:has(> .work-tree-search) > .work-tree-toolbar { grid-area: 1 / 1; margin: 0; gap: .5rem; }
    main.container .work-tree:has(> .work-tree-search) > .work-tree-search { grid-area: 1 / 2; margin: 0; }
    main.container .work-tree-search > span { flex-shrink: 0; }
}

@media (max-width: 760px) {
    main.container h1.page-title, main.container .cal-header h1 { font-size: 1.25rem; }
    .page-toolbar > .scope-filters, .page-toolbar > .quick-filters { flex-basis: 100%; }
    .page-toolbar .scope-user-form { min-width: 0; max-width: 100%; }
    .page-toolbar .scope-user-form select { min-width: 0; flex: 1; }
    main.container .notes-heading > div:first-child { flex: 1; }
    main.container .notes-browse-bar { flex-basis: 100%; order: 1; }
    main.container .dms-heading { flex-direction: row; align-items: center; }
    main.container .dms-index .dms-filters { flex-basis: 100%; }
    main.container .dms-heading .actions-row { gap: .4rem; }
    main.container .msg-list-controls { flex-basis: 100%; order: 1; }
    main.container .msg-page-heading > div:first-child { flex: 1; }
    main.container .msg-page-heading p { font-size: .75rem; }
    main.container .cal-header > .cal-actions { gap: .4rem; }
    main.container .cal-header > .cal-actions > * { flex: 1 1 auto; }
    main.container .cal-natural .form-control { min-width: 0; flex-basis: 100%; }
    main.container .cal-filters { flex-basis: 100%; }
    main.container #pm-calendar-app .cal-filter-field { flex-basis: calc(50% - .75rem); }
    main.container #pm-calendar-app .cal-filter-search { flex-basis: 100%; }
}
@media print { .msg-list-controls { display: none; } }
