/* Interaction sizes and typography shared by existing atlas components. */
:root { --target: 44px; --small-text: 12px; }
body { font-size: 14px; }
.app-layout { grid-template-columns: 340px minmax(0, 1fr); }
.sidebar-controls { flex: 0 1 auto; min-height: 0; max-height: calc(100% - 300px); overflow: auto; scrollbar-width: thin; }
.sidebar-head { padding: 20px 20px 12px; }
.sidebar-head > p:not(.search-scope) { font-size: 11px; margin-bottom: 14px; }
.sidebar-title h1 { font-size: 30px; }
.sidebar-title h1 > span { font-size: 18px; }
.brand-name small { font-size: 10px; letter-spacing: .08em; }
.data-stamp, .main-nav button span { font-size: 11px; }
.source-button { font-size: 12px; min-height: var(--target); }
.search-field { min-height: var(--target); }
.search-field input { font-size: 14px; }
.sidebar-head > .search-scope { display: block; margin: 10px 0 0; color: var(--accent); font: 12px/1.5 var(--sans); letter-spacing: 0; }
.filters-panel > summary { display: none; }
.sidebar-filters { padding: 0 20px 12px; }
.filter-heading { font-size: 11px; margin-bottom: 4px; }
.filter-heading button { font-size: 12px; min-height: var(--target); padding: 0 4px; }
.layer-button { min-height: var(--target); font-size: 12px; padding: 8px; }
.layer-button > span { font-size: 11px; }
.layer-button .icon { width: 16px; height: 16px; }
.threat-filter summary { min-height: var(--target); font-size: 13px; }
.threat-filter summary > span, .confidence-filter, .filter-note { font-size: 12px; }
.threat-options button { min-height: var(--target); font-size: 12px; padding: 8px 10px; }
.confidence-filter { min-height: var(--target); align-items: center; margin-top: 4px; }
.confidence-filter input { width: 18px; height: 18px; margin: 0; flex: none; }
.active-filters { display: flex; flex: none; flex-wrap: wrap; gap: 6px; padding: 8px 20px; border-bottom: 1px solid var(--line); }
.active-filters:empty { display: none; }
.filter-chip, .scope-chip { display: inline-flex; align-items: center; gap: 10px; border: 1px solid #526044; border-radius: 5px; padding: 7px 10px; font-size: 12px; color: var(--accent); background: #283222; }
.filter-chip { min-height: var(--target); text-align: left; }
.filter-chip > span { font-size: 20px; }
.scope-chip { min-height: 32px; }
.result-heading { padding: 12px 20px 8px; }
.result-heading h2, .result-heading > span, .result-meta { font-size: 12px; }
.result-heading h2 { letter-spacing: 0; }
.result-name { font-size: 13px; }
.result-list { flex: 1 1 110px; min-height: 70px; }
.result-select { min-height: 60px; }
.result-save { width: var(--target); height: var(--target); }
.result-save .icon { width: 18px; height: 18px; }
.sidebar-bottom { padding: 10px 20px; }
.sidebar-bottom > div { margin-top: 4px; gap: 8px; font: 12px/1.4 var(--sans); }
.sidebar-bottom > div > button { min-width: 64px; min-height: var(--target); }
.sidebar-bottom > div > span { font-size: 11px; white-space: nowrap; }
.add-marker, .empty-state button, .related-link, .detail-action button, .primary-button { min-height: var(--target); font-size: 13px; }
.panel-bar { display: none; }
.icon-button { width: var(--target); height: var(--target); }
.map-tools { width: 142px; gap: 3px; }
.zoom-controls { width: 100%; display: flex; align-items: center; justify-content: center; }
.zoom-controls output { min-width: 40px; text-align: center; font: 11px var(--mono); color: var(--muted); }
.zoom-controls .icon-button { padding: 0; }
.map-tools .tool-divider { width: 100%; margin: 1px 0; }
.map-command, #nativeView { width: 100%; min-height: var(--target); padding: 8px 5px; display: flex; gap: 6px; align-items: center; justify-content: center; border-radius: 4px; font: 12px/1.3 var(--sans); }
.map-command:hover, .map-command[aria-pressed="true"] { background: #333e2b; color: var(--accent); }
.map-command .icon { width: 16px; height: 16px; }
.map-mode, .map-mode #mapQuality, .coordinate-note > span, .tile-status { font-size: 11px; letter-spacing: .02em; }
.threat-legend { flex-wrap: wrap; gap: 8px 12px; }
.threat-legend > span, .map-credit { font-size: 12px; }
.map-credit a { display: inline-flex; align-items: center; min-height: var(--target); }
.map-bottomline { padding-top: 8px; padding-bottom: 8px; flex-wrap: wrap; gap: 4px 14px; }
.map-pin { width: var(--target); height: var(--target); justify-content: center; }
.map-pin .pin-symbol { flex: none; }
.map-pin .pin-label { left: 46px; font-size: 12px; }
.map-pin .pin-label small { font-size: 11px; }
.map-pin:focus-visible { z-index: 12; }
.map-pin.detail-pin:hover .pin-label, .map-pin.selected .pin-label { left: 46px; }
.selection-card { right: 180px; width: 306px; }
.selection-tools button { width: var(--target); height: var(--target); }
.selection-head p, .detail-facts dd, .detail-note, .detail-source, .detail-date, .zone-row, .source-notes, .source-entry > span { font-size: 13px; }
.eyebrow, .detail-facts dt, .detail-body h3, .sources-dialog > p { font-size: 11px; }
.detail-action { flex-wrap: wrap; }
.detail-source { min-height: var(--target); display: flex; align-items: center; margin-top: 4px; }
.detail-facts { flex-wrap: wrap; }
.detail-facts > div { min-width: 90px; }
.key-research { margin: 16px 0; padding: 2px 12px 8px; background: #232d1f; border: 1px solid #46573b; border-radius: 4px; }
.key-research > p { font-size: 13px; line-height: 1.7; }
.key-research > .filter-note { font-size: 12px; }
.pin-dialog label, .pin-dialog input, .pin-dialog textarea { font-size: 14px; }
.placement-bar button { min-height: var(--target); }
@media (max-width: 1100px) and (min-width: 761px) {
  .app-layout { grid-template-columns: 310px minmax(0, 1fr); }
  .brand { min-width: 230px; }
  .selection-card { width: 272px; right: 176px; }
}
@media (max-width: 760px) {
  .app-header { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 4px; padding: 0 8px; }
  .brand { min-width: 0; gap: 5px; }
  .brand-name small { display: none; }
  .main-nav { gap: 0; margin: 0; }
  .main-nav button { min-width: var(--target); min-height: var(--target); padding: 0 5px; font-size: 12px; }
  .main-nav button[data-view="saved"]:before { font-size: 12px; }
  .header-actions { gap: 0; }
  .source-button, .mobile-search { min-width: var(--target); width: var(--target); height: var(--target); }
  .source-button { white-space: nowrap; }
  .source-button > span { display: none; }
  .sidebar { height: 64dvh; min-height: min(430px, calc(100dvh - 10px)); max-height: calc(100dvh - 10px); transition: transform .2s ease, height .2s ease; visibility: hidden; }
  .sidebar-open .sidebar { visibility: visible; }
  .sidebar[data-size="full"] { height: calc(100dvh - 10px); }
  .panel-bar { display: flex; justify-content: center; flex: none; padding: 0 20px; }
  .panel-size { display: flex; align-items: center; justify-content: center; gap: 12px; min-width: 160px; min-height: var(--target); font-size: 12px; color: var(--muted); touch-action: none; }
  .panel-grip { display: block; width: 36px; height: 4px; border-radius: 4px; background: #7b876f; }
  .sidebar-controls { flex: 0 1 auto; max-height: 55%; overflow-y: auto; overscroll-behavior: contain; }
  .sidebar-head { padding: 0 16px 8px; }
  .sidebar-title h1 { font-size: 22px; }
  .sidebar-title h1 > span { font-size: 15px; }
  .sidebar-title { min-height: var(--target); }
  .search-field { margin-top: 2px; }
  .search-field input, .pin-dialog input, .pin-dialog textarea { font-size: 16px; }
  .sidebar-head > .search-scope { margin-top: 7px; font-size: 12px; }
  .filters-panel > summary { display: flex; align-items: center; justify-content: space-between; padding: 0 16px; min-height: var(--target); list-style: none; color: var(--text); font-size: 13px; }
  .filters-panel > summary::-webkit-details-marker { display: none; }
  .filters-panel[open] > summary > span { transform: rotate(180deg); }
  .sidebar-filters { padding: 0 16px 8px; }
  .layer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .layer-button { min-height: var(--target); font-size: 13px; padding: 8px; gap: 8px; }
  .layer-button > span { font-size: 12px; }
  .active-filters { padding: 4px 16px 8px; }
  .filter-chip { min-height: var(--target); }
  .result-list { flex: 1 1 120px; min-height: 54px; }
  .result-heading { padding: 8px 16px 5px; }
  .result-row { min-height: 60px; }
  .sidebar-bottom { padding: 6px 16px max(6px, env(safe-area-inset-bottom)); }
  .sidebar-bottom > div { margin-top: 2px; }
  .map-tools { right: 10px; top: 53px; width: 138px; }
  .map-topline { left: 12px; right: 12px; }
  .map-mode { gap: 5px; }
  .map-pin { width: var(--target); height: var(--target); }
  .map-pin .pin-symbol { width: 28px; height: 28px; }
  .map-pin .pin-label { font-size: 12px; }
  .selection-card { right: 0; width: 100%; }
  .threat-legend > span, .map-credit, .map-mode #mapQuality { font-size: 11px; }
  .map-bottomline { bottom: 66px; padding: 5px 12px; gap: 0; }
  .map-credit a { min-height: 28px; }
  .mobile-results { min-height: var(--target); }
  .placement-bar { right: 158px; padding: 6px 8px; flex-wrap: wrap; }
}
@media (max-width: 360px) {
  .brand-name { display: none; }
  .sidebar-bottom > div { gap: 4px; }
  .sidebar-title h1 > span { margin-left: 8px; }
}
@media (prefers-reduced-motion: reduce) { .sidebar { transition: none; } }
