/* Outreacher — shared app stylesheet, loaded on EVERY page (via each page's
   <head>). Home for global layout normalizations so that whatever a page puts
   inside .content, the page still scrolls and the footer stays reachable.
   New pages must load this file. Served under /assets/app/* (no-cache). */

/* The theme fixes the layout height: .page-content is `overflow: hidden` and
   sized to the viewport. Tall page content must therefore scroll INSIDE
   .content-wrapper — otherwise the bottom (buttons, footer) is clipped with no
   way to reach it on short screens. Make the content column the scroll area. */
.content-wrapper {
  overflow-y: auto;
  overflow-x: hidden;
}

/* The theme's floating gear (#demo_config) is repurposed as "Настройки страницы".
   Hidden everywhere by default; pages that have a domains list show it via JS. */
#demo_config > .position-absolute { display: none; }

/* Page-settings panel — kept compact so sections (e.g. Show Columns) stay dense
   as the column list grows. */
#demo_config { width: min(92vw, 440px); }
.ps-section { margin-bottom: 1rem; }
.ps-section-title { font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; color: #9aa0ac; font-weight: 600; margin-bottom: .4rem; }
/* fill column-first, 10 items per column → up to 3 columns of 10 as columns grow */
.ps-cols { display: grid; grid-auto-flow: column; grid-template-rows: repeat(10, auto); column-gap: 1rem; row-gap: .1rem; justify-content: start; }
/* categorised settings: fill column-first (vertical) so related metrics stay
   stacked; row count is set inline per section to yield up to 3 columns */
.ps-cols3 { display: grid; grid-auto-flow: column; column-gap: 1rem; row-gap: .1rem; justify-content: start; }
.ps-cols3 .ps-col { min-width: 8.5rem; }

/* click-to-open searchable picker for enum table cells (Add-a-filter style) */
.dt-combo { position: fixed; z-index: 2100; background: #fff; border: 1px solid #e5e7eb; border-radius: .375rem; box-shadow: 0 8px 28px rgba(0,0,0,.14); padding: .4rem; min-width: 240px; }
.dt-combo-search { margin-bottom: .35rem; }
.dt-combo-list { max-height: 260px; overflow-y: auto; }
.dt-combo-item { padding: .3rem .5rem; border-radius: .25rem; cursor: pointer; font-size: .82rem; white-space: nowrap; }
.dt-combo-item:hover, .dt-combo-item.active { background: #f3f4f6; }
.dt-combo-add { padding: .3rem .5rem; border-radius: .25rem; cursor: pointer; font-size: .8rem; color: #2563eb; }
.dt-combo-add:hover { background: #eff6ff; }
.dt-combo-empty { padding: .3rem .5rem; color: #9aa0ac; font-size: .78rem; }
.ps-col { display: flex; align-items: center; gap: .45rem; font-size: .8rem; line-height: 1.2; margin: 0; cursor: pointer; padding: .12rem .25rem; border-radius: .2rem; }
.ps-col:hover { background: #f3f4f6; }
.ps-col input { width: .85rem; height: .85rem; margin: 0; flex: 0 0 auto; }
