.brand-mark {
  display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: 6px;
  background: var(--tblr-primary); color: #fff; font-weight: 800; font-size: .75rem; letter-spacing: .02em;
}
.dropzone-area { border: 2px dashed var(--tblr-border-color); padding: 2.5rem 1rem; transition: background .15s, border-color .15s; }
.dropzone-area.dragover { border-color: var(--tblr-primary); background: var(--tblr-primary-lt); }
.issues-body { max-height: 340px; overflow: auto; }
.issues-body .list-group-item { padding: .45rem 1rem; font-size: .875rem; }
#map { height: 520px; }
.map-legend { background: #fff; padding: .4rem .6rem; border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,.2); font-size: .75rem; max-height: 300px; overflow: auto; }
.map-legend i { display: inline-block; width: .7rem; height: .7rem; border-radius: 50%; margin-right: .35rem; vertical-align: -1px; }
.hist-row { display: grid; grid-template-columns: 5.5rem 1fr 2.5rem; align-items: center; gap: .5rem; margin-bottom: .45rem; font-size: .85rem; }
.hist-row .progress { height: .9rem; }
#event-table tr { cursor: pointer; }
#event-table tr.active td { background: var(--tblr-primary-lt); }
.event-swatch { display: inline-block; width: .65rem; height: .65rem; border-radius: 50%; margin-right: .4rem; }
.tabulator { font-size: .85rem; border: 0; border-top: 1px solid var(--tblr-border-color); }
.tabulator .badge { font-size: .7rem; margin-right: .2rem; }
.tabulator-row.moved { background: #fff8e1 !important; }
.kpi .h1 { margin-bottom: 0; }
.mapping-table td, .mapping-table th { padding: .3rem .4rem; font-size: .85rem; }
.mapping-table .sample { color: var(--tblr-secondary); max-width: 9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
