/* Geospan light palette; independent slate/sage palette for dark mode. */
@font-face { font-family: Manrope; src: url('./manrope.woff2') format('woff2'); font-weight: 200 800; font-style: normal; font-display: swap; }
:root, [data-bs-theme="light"] {
  color-scheme: light;
  --geospan-cream: #f4e9cd; --geospan-olive: #8a9a5b; --geospan-sky: #74c0fc;
  --geospan-ink: #18181b; --geospan-surface: #fff; --geospan-hero: #fbfaf4; --geospan-canvas: #ffffff; --geospan-subtle: #f4f4f5; --geospan-border: #e4e4e7; --geospan-muted: #71717a;
  --geospan-action: #526137; --geospan-action-hover: #42502c; --geospan-action-active: #354124; --geospan-action-text: #fff; --geospan-input-border: #d4d4d8;
  --geospan-selection: #e7eddc; --geospan-selection-text: #354124; --geospan-focus-rgb: 82, 97, 55;
  --bs-body-font-family: Manrope, system-ui, sans-serif; --bs-body-bg: var(--geospan-canvas); --bs-body-color: var(--geospan-ink); --bs-body-color-rgb: 24, 24, 27;
  --bs-emphasis-color: #18181b; --bs-emphasis-color-rgb: 24, 24, 27; --bs-secondary-color: var(--geospan-muted); --bs-secondary-color-rgb: 113, 113, 122; --bs-secondary-bg: #f4f4f5;
  --bs-tertiary-color: var(--geospan-muted); --bs-tertiary-bg: var(--geospan-subtle); --bs-border-color: var(--geospan-border); --bs-border-color-translucent: #18181b20;
  --bs-primary: var(--geospan-action); --bs-primary-rgb: 82, 97, 55; --bs-primary-bg-subtle: var(--geospan-selection); --bs-primary-border-subtle: #c4d1af; --bs-primary-text-emphasis: #354124;
  --bs-link-color: #526137; --bs-link-color-rgb: 82, 97, 55; --bs-link-hover-color: #354124; --bs-link-hover-color-rgb: 53, 65, 36;
  --bs-border-radius: .5rem; --bs-border-radius-lg: .5rem;
}
[data-bs-theme="dark"] {
  color-scheme: dark;
  --geospan-ink: #fafafa; --geospan-surface: #18181b; --geospan-hero: #18181b; --geospan-canvas: #09090b; --geospan-subtle: #27272a; --geospan-border: #3f3f46; --geospan-muted: #a1a1aa;
  --geospan-action: #b1c78e; --geospan-action-hover: #c3d6a5; --geospan-action-active: #d1e1b9; --geospan-action-text: #182215; --geospan-input-border: #52525b;
  --geospan-selection: #30332a; --geospan-selection-text: #d3e6b7; --geospan-focus-rgb: 177, 199, 142;
  --bs-body-color-rgb: 250, 250, 250; --bs-emphasis-color: #f5f8fc; --bs-emphasis-color-rgb: 245, 248, 252; --bs-secondary-color-rgb: 161, 161, 170; --bs-secondary-bg: #27272a; --bs-border-color-translucent: #fafafa26;
  --bs-primary-rgb: 177, 199, 142; --bs-primary-border-subtle: #526b49; --bs-primary-text-emphasis: #d3e6b7; --bs-link-color: #d4d4d8; --bs-link-color-rgb: 212, 212, 216; --bs-link-hover-color: #fafafa; --bs-link-hover-color-rgb: 250, 250, 250;
}
body { font-family: var(--bs-body-font-family); font-size: .875rem; line-height: 1.5; }
h1, h2, h3, h4, h5, h6 { color: var(--geospan-ink); font-weight: 600; letter-spacing: -.025em; }
h1 { font-size: 1.5rem; }
a { text-underline-offset: .18em; }
:focus-visible { outline: 3px solid var(--geospan-action); outline-offset: 3px; }
/* Quiet navigation, with one filled create action. */
#navbar { min-height: 60px; background: var(--geospan-surface) !important; border-color: var(--geospan-border) !important; box-shadow: none !important; --bs-navbar-color: var(--geospan-muted); --bs-navbar-hover-color: var(--geospan-ink); --bs-navbar-active-color: var(--geospan-ink); }
#navbar > .container-fluid { gap: .65rem; }
#navbar .nav-link { font-size: .875rem; font-weight: 600; border-radius: .45rem; padding: .55rem .7rem; }
#navbar .nav-link:hover, #navbar .nav-link.show { background: var(--geospan-subtle); color: var(--geospan-ink); }
.geospan-brand { display: inline-flex; align-items: center; padding: 0; margin: 0 .5rem 0 0; }
.geospan-brand img { width: 36px; height: 36px; object-fit: contain; border-radius: 50%; }
.geospan-brand-wordmark { font-family: var(--bs-body-font-family); font-size: .95rem; font-weight: 700; letter-spacing: 0; margin-left: 10px; color: var(--geospan-ink); }
#navbar-search-form > .dropdown > .btn::after { display: none; }
.geospan-nav-create { display: flex; align-items: center; margin-left: .6rem; }
.geospan-nav-create .btn { padding: .45rem .75rem; font-size: .85rem; }
.geospan-nav-create .dropdown-toggle-split { padding-inline: .6rem; border-left-color: #ffffff30; }
#navbar-search-form { gap: .4rem; }
#navbar-search-form > .dropdown > .btn { font-size: .8rem; color: var(--geospan-muted); }
#navbar-quicksearch-container { width: clamp(180px, 20vw, 340px); }
.geospan-tools-menu { min-width: min(20rem, calc(100vw - 1.5rem)); max-width: calc(100vw - 1.5rem); max-height: min(70vh, 38rem); overflow-y: auto; }
#fixed-sidebar { background: var(--geospan-surface) !important; border-right: 1px solid var(--geospan-border); padding: 1rem .75rem; color: var(--geospan-ink); }
#fixed-sidebar .input-group { border-bottom: 1px solid var(--geospan-border); padding-bottom: .5rem; margin-bottom: .6rem !important; }
#fixed-sidebar .input-group .btn, #fixed-sidebar .input-group .form-control { background: transparent !important; }
#fixed-sidebar .input-group .btn { padding-left: .25rem; color: var(--geospan-ink); font-weight: 700; }
#fixed-sidebar .sidebar-title { font-size: .8125rem; }
#fixed-sidebar .treeview { font-size: .8rem; }
#fixed-sidebar .list-group-item { border: 0; border-radius: .4rem; padding: .4rem .5rem; margin-bottom: 2px; color: var(--geospan-muted); background: transparent; }
#fixed-sidebar .list-group-item:hover { background: var(--geospan-subtle) !important; color: var(--geospan-ink) !important; }
#fixed-sidebar .list-group-item.node-selected { background: var(--geospan-selection) !important; color: var(--geospan-selection-text) !important; font-weight: 700; }
#fixed-sidebar .nav > [data-controller] { margin-bottom: .6rem; }
#content-container { padding: 1.25rem 1.5rem !important; }
/* Upstream create/add actions use both primary and success classes. Semantic alerts and destructive actions remain distinct. */
.btn { font-weight: 600; border-radius: .45rem; }
.btn-primary, .btn-success {
  --bs-btn-color: var(--geospan-action-text); --bs-btn-bg: var(--geospan-action); --bs-btn-border-color: var(--geospan-action);
  --bs-btn-hover-color: var(--geospan-action-text); --bs-btn-hover-bg: var(--geospan-action-hover); --bs-btn-hover-border-color: var(--geospan-action-hover);
  --bs-btn-active-color: var(--geospan-action-text); --bs-btn-active-bg: var(--geospan-action-active); --bs-btn-active-border-color: var(--geospan-action-active);
  --bs-btn-disabled-color: var(--geospan-action-text); --bs-btn-disabled-bg: var(--geospan-action); --bs-btn-disabled-border-color: var(--geospan-action); --bs-btn-focus-shadow-rgb: var(--geospan-focus-rgb); background-image: none;
}
.btn-outline-primary, .btn-outline-success {
  --bs-btn-color: var(--geospan-action); --bs-btn-border-color: var(--geospan-action); --bs-btn-hover-color: var(--geospan-action-text); --bs-btn-hover-bg: var(--geospan-action); --bs-btn-hover-border-color: var(--geospan-action);
  --bs-btn-active-color: var(--geospan-action-text); --bs-btn-active-bg: var(--geospan-action); --bs-btn-active-border-color: var(--geospan-action); --bs-btn-disabled-color: var(--geospan-muted); --bs-btn-disabled-border-color: var(--geospan-border); --bs-btn-focus-shadow-rgb: var(--geospan-focus-rgb);
}
.btn-outline-secondary { --bs-btn-color: var(--geospan-ink); --bs-btn-border-color: var(--geospan-border); --bs-btn-hover-color: var(--geospan-ink); --bs-btn-hover-bg: var(--geospan-subtle); --bs-btn-hover-border-color: var(--geospan-muted); --bs-btn-active-color: var(--geospan-ink); --bs-btn-active-bg: var(--geospan-subtle); --bs-btn-active-border-color: var(--geospan-muted); }
.card { --bs-card-bg: var(--geospan-surface); --bs-card-border-color: var(--geospan-border); --bs-card-cap-bg: transparent; border-radius: .5rem; box-shadow: none; }
.card-header { padding: .9rem 1.1rem; color: var(--geospan-ink); font-weight: 700; }
.card-header h2, .card-header h3, .card-header h4 { font-size: 1rem; margin: 0; }
.geospan-form-heading { background: var(--geospan-subtle); color: var(--geospan-ink); border-bottom-color: var(--geospan-border); }
.card-body { padding: 1.1rem; }
.card-footer { background: var(--geospan-surface); border-color: var(--geospan-border); }
.dropdown-menu { --bs-dropdown-bg: var(--geospan-surface); --bs-dropdown-color: var(--geospan-ink); --bs-dropdown-link-color: var(--geospan-ink); --bs-dropdown-link-hover-bg: var(--geospan-subtle); --bs-dropdown-link-hover-color: var(--geospan-ink); --bs-dropdown-link-active-bg: var(--geospan-selection); --bs-dropdown-link-active-color: var(--geospan-selection-text); --bs-dropdown-border-color: var(--geospan-border); padding: .45rem; border-radius: .65rem; box-shadow: 0 8px 24px #00000018; }
.dropdown-item { padding: .55rem .65rem; border-radius: .35rem; font-size: .875rem; }
.dropdown-header { color: var(--geospan-muted); }
.form-control, .form-select { background-color: var(--geospan-surface); color: var(--geospan-ink); border-color: var(--geospan-input-border); }
.form-control:focus, .form-select:focus { background-color: var(--geospan-surface); color: var(--geospan-ink); border-color: var(--geospan-action); box-shadow: 0 0 0 .2rem rgba(var(--geospan-focus-rgb), .16); }
.form-control::placeholder { color: var(--geospan-muted); opacity: 1; }
.aa-Form { border-color: var(--geospan-input-border); background-color: var(--geospan-surface); }
.aa-Form:focus-within { background-color: var(--geospan-surface); border-color: var(--geospan-action); box-shadow: 0 0 0 .2rem rgba(var(--geospan-focus-rgb), .16); }
.input-group-text { background-color: var(--geospan-subtle); border-color: var(--geospan-border); color: var(--geospan-muted); }
.form-check-input:checked { background-color: var(--geospan-action); border-color: var(--geospan-action); }
[data-bs-theme="dark"] .form-check-input:checked { background-color: #526137; }
.nav-tabs { --bs-nav-tabs-border-color: var(--geospan-border); --bs-nav-tabs-link-active-bg: var(--geospan-surface); --bs-nav-tabs-link-active-color: var(--geospan-ink); --bs-nav-tabs-link-active-border-color: var(--geospan-border) var(--geospan-border) var(--geospan-surface); }
.nav-pills { --bs-nav-pills-link-active-bg: var(--geospan-selection); --bs-nav-pills-link-active-color: var(--geospan-selection-text); }
.pagination { --bs-pagination-bg: var(--geospan-surface); --bs-pagination-color: var(--geospan-muted); --bs-pagination-border-color: var(--geospan-border); --bs-pagination-hover-bg: var(--geospan-subtle); --bs-pagination-hover-color: var(--geospan-ink); --bs-pagination-active-bg: var(--geospan-action); --bs-pagination-active-border-color: var(--geospan-action); --bs-pagination-active-color: var(--geospan-action-text); --bs-pagination-disabled-bg: var(--geospan-canvas); --bs-pagination-disabled-color: var(--geospan-muted); --bs-pagination-disabled-border-color: var(--geospan-border); }
.table { --bs-table-bg: var(--geospan-surface); --bs-table-color: var(--geospan-ink); --bs-table-border-color: var(--geospan-border); --bs-table-striped-bg: var(--geospan-canvas); --bs-table-striped-color: var(--geospan-ink); --bs-table-hover-bg: var(--geospan-subtle); --bs-table-hover-color: var(--geospan-ink); }
.table thead th { color: var(--geospan-muted); font-size: .8rem; font-weight: 700; padding-block: .8rem; }

/* Compact inventory workspace, inspired by the shadcn-admin Tasks layout. */
body { padding-top: 64px; }
#navbar { min-height: 64px; }
#navbar > .container-fluid { min-height: 64px; }
#navbar .navbar-collapse > .navbar-nav.me-auto { margin-left: auto; margin-right: 0 !important; }
#navbar-search-form { order: -1; }
#navbar-quicksearch-container { width: clamp(180px, 23vw, 360px); }
.geospan-nav-create { margin-left: .5rem; }
#fixed-sidebar { top: 64px; padding: 1.25rem .75rem; }
#content-container { padding: 1.75rem 2rem !important; }
.geospan-navigation-group { margin-bottom: 1.5rem; }
.geospan-navigation-label { margin: 0 .65rem .5rem; color: var(--geospan-muted); font: 500 .75rem/1.5 var(--bs-body-font-family); letter-spacing: 0; }
.geospan-navigation-link { display: flex; gap: .65rem; align-items: center; min-height: 36px; padding: .45rem .65rem; border-radius: .375rem; color: var(--geospan-ink); text-decoration: none; font-size: .875rem; }
.geospan-navigation-link i { color: var(--geospan-muted); font-size: .85rem; }
.geospan-navigation-link:hover { color: var(--geospan-ink); background: var(--geospan-subtle); }
.geospan-navigation-link.is-active { background: var(--geospan-selection); color: var(--geospan-selection-text); font-weight: 600; }
.geospan-navigation-link.is-active i { color: inherit; }
.geospan-browse-tree summary { padding: .4rem .65rem; cursor: pointer; color: var(--geospan-muted); font-size: .8rem; }
.geospan-browse-tree > div { margin: .5rem 0 1rem; }
.geospan-workspace { display: flex; flex-direction: column; gap: 1.75rem; }
.geospan-page-header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.geospan-page-heading h1 { margin: 0 0 .35rem; font-size: 1.5rem; font-weight: 600; }
.geospan-home-meta { color: var(--geospan-muted); margin: 0; font-size: .8rem; }
.geospan-version { margin-left: .5rem; color: var(--geospan-muted); font-size: .75rem; }
.geospan-page-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.geospan-home-setup { border-block: 1px solid var(--geospan-border); padding: 1rem 0; display: flex; gap: 1rem; align-items: stretch; flex-direction: column; }
.geospan-home-setup h2 { font-size: .8rem; margin: 0; }
.geospan-setup-links--compact { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; list-style: none; padding: 0; margin: 0; }
.geospan-setup-links--compact a { display: flex; flex-direction: column; align-items: flex-start; gap: .45rem; height: 100%; padding: .75rem; border-radius: .375rem; font-size: .75rem; text-decoration: none; color: var(--geospan-muted); }
.geospan-setup-links--compact strong { font-size: .8125rem; font-weight: 600; color: var(--geospan-ink); }
.geospan-setup-links--compact a:hover { background: var(--geospan-subtle); color: var(--geospan-ink); }
.geospan-setup-links--compact i { font-size: 1.15rem; color: var(--geospan-action); margin-bottom: .25rem; }
@media (min-width: 768px) {
  .geospan-nav-create > .btn-group > .dropdown-menu { top: calc(100% + 1rem); right: 0; left: auto; margin-top: 0; max-height: calc(100dvh - 90px); overflow-y: auto; }
}
.geospan-section-header { margin-bottom: .8rem; }
.geospan-section-header h2 { font-size: 1rem; margin: 0; }
.geospan-table-surface { border: 1px solid var(--geospan-border); border-radius: .5rem; padding: 1rem; min-width: 0; }
.geospan-workspace .dt-info, .geospan-workspace .dt-length { font-size: .75rem; color: var(--geospan-muted); }
.card.border-primary { border-color: var(--geospan-border) !important; }
.card-header.bg-primary { background: var(--geospan-surface) !important; color: var(--geospan-ink) !important; }
.card-header.bg-primary a.text-white { color: var(--geospan-ink) !important; }
.geospan-form-heading { font-size: 1.25rem; background: transparent; border: 0; padding-bottom: 0; }
.btn { font-size: .8125rem; min-height: 34px; }
.form-control, .form-select, .ts-control { min-height: 36px; font-size: .875rem; }
.geospan-common-editor { padding: 1.25rem 0; }
.geospan-common-editor .row { display: block; margin-inline: 0; }
.geospan-common-editor .row > * { width: 100%; max-width: 100%; margin-left: 0; padding-inline: 0; }
.geospan-common-editor .col-form-label { padding-top: 0; padding-bottom: .4rem; font-size: .8125rem; }
.geospan-common-editor label { text-align: left !important; }
.geospan-common-editor legend.col-form-label { text-align: left !important; }
.geospan-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: 1rem 0; border-top: 1px solid var(--geospan-border); }
.geospan-form-actions > .row { margin: 0 !important; }
.geospan-form-actions > .row > div { width: auto; padding: 0; margin-left: 0 !important; }
.geospan-record-actions { display: flex; flex-wrap: wrap; align-items: flex-start; gap: .5rem; margin-block: .5rem; }
.geospan-record-actions > .row, .geospan-record-actions form, .geospan-record-actions .form-group { margin: 0 !important; }
.geospan-record-actions > .row > div, .geospan-record-actions form .form-group > div { width: auto; padding: 0 !important; margin-left: 0 !important; }
.geospan-record-actions form .form-group > div:empty { display: none; }
.geospan-shortcut-group { font-size: .8rem; color: var(--geospan-muted); margin: 1.25rem 0 .6rem; }
.geospan-shortcut-list { margin: 0; }
.geospan-shortcut-list > div { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .45rem 0; border-bottom: 1px solid var(--geospan-border); }
.geospan-shortcut-list dt { font-size: .85rem; font-weight: 500; }
.geospan-shortcut-list dd { margin: 0; white-space: nowrap; }
.geospan-shortcut-list kbd { background: var(--geospan-subtle); color: var(--geospan-ink); border: 1px solid var(--geospan-border); font-size: .75rem; }
#geospan-shortcuts .modal-content { background: var(--geospan-surface); border-color: var(--geospan-border); color: var(--geospan-ink); }
#geospan-shortcuts:focus-visible { outline: none; }
.geospan-common-editor .form-text { font-size: .75rem; }
.geospan-primary-image { border-left: 1px solid var(--geospan-border); padding-left: 1.5rem; }
.geospan-primary-image h2 { font-size: .875rem; }
.geospan-image-preview { height: 180px; border: 1px dashed var(--geospan-border); border-radius: .5rem; background: var(--geospan-subtle); display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; text-align: center; color: var(--geospan-muted); font-size: .75rem; }
.geospan-image-preview img { width: 100%; height: 100%; object-fit: contain; border-radius: .5rem; }
.geospan-setup-instructions { max-width: 750px; }
.geospan-setup-instructions li { margin: 1rem 0; }
.geospan-setup-instructions code { overflow-wrap: anywhere; }
.geospan-login { max-width: 460px; margin: 2.5rem auto; border-top: 4px solid var(--geospan-action); }
.geospan-login-logo { width: 76px; height: 76px; margin: 0 auto 1rem; }
.geospan-local-login .form-check { margin-block: 1rem; }
.geospan-settings-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.25rem; }
.geospan-settings-heading .btn { margin: 0; }
.geospan-settings-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; gap: .25rem; }
.geospan-settings-tabs .nav-item { flex: 0 0 auto; }
.geospan-settings-tabs .nav-link { display: flex; align-items: center; gap: .4rem; white-space: nowrap; font-size: .8125rem; padding: .75rem; }
.geospan-settings-panels { padding: 1.5rem 0 .25rem; }
.geospan-settings-panels h2 { font-size: 1.05rem; font-weight: 600; margin-bottom: .5rem; }
.geospan-settings-profile-form:not(:has(> .tab-pane.active)) { display: none; }
.geospan-settings .tab-pane { max-width: 960px; }
.geospan-settings .tab-pane > .card { margin-top: 0 !important; border: 0; }
.geospan-settings .tab-pane > .card > .card-header { padding-top: 0; }
.geospan-settings .tab-pane > .card > .card-body { padding-inline: 0; }
.geospan-settings-panels .form-label, .geospan-settings-panels .col-form-label { font-size: .8125rem; }
body:has(.geospan-local-login) #sidebar-container,
body:has(.geospan-local-login) #sidebar-toggle-button,
body:has(.geospan-local-login) #navbar [data-bs-target="#sidebar-container"] { display: none !important; }
body:has(.geospan-local-login) #main { width: 100%; max-width: 100%; margin-left: 0 !important; }
.geospan-google-button { display: inline-flex; gap: .75rem; align-items: center; justify-content: center; min-height: 48px; width: 100%; }
.geospan-google-button svg { width: 20px; height: 20px; }
@media (min-width: 768px) and (max-width: 1100px) {
  #navbar-search-form > .dropdown > .btn { font-size: 0; }
  #navbar-search-form > .dropdown > .btn i { font-size: .9rem; }
  #navbar-search-form > .dropdown > .btn::after { font-size: .75rem; }
  #navbar .nav-link { padding-inline: .4rem; }
  .geospan-nav-create { display: none; }
}
@media (max-width: 1023px) {
  .geospan-setup-links--compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .geospan-primary-image { border-left: 0; padding: 1.25rem 0 0; border-top: 1px solid var(--geospan-border); }
  .geospan-image-preview { max-width: 300px; }
}
@media (max-width: 767.98px) {
  #navbar .navbar-collapse { padding: .75rem 0; max-height: calc(100dvh - 64px); }
  #navbar .navbar-nav { gap: .3rem; }
  #navbar .navbar-collapse > .navbar-nav { margin-bottom: .6rem; }
  #navbar-search-form { width: 100%; margin: 0 0 .75rem; }
  #navbar-quicksearch-container { flex: 1; width: auto; min-width: 0; }
  .geospan-nav-create { margin: .3rem 0; }
  #fixed-sidebar { margin-top: 0; max-height: calc(100dvh - 64px); opacity: 1; }
  #content-container { padding: 1.25rem 1rem !important; }
  #sidebar-container { padding-top: 0; }
  .geospan-page-actions { width: 100%; }
  .geospan-home-setup { align-items: flex-start; flex-direction: column; gap: .6rem; }
  .geospan-setup-links--compact { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .geospan-nav-create > .btn-group { flex-wrap: wrap; }
  .geospan-nav-create .dropdown-menu { flex-basis: 100%; width: 100%; }
  .geospan-table-surface { padding: .75rem; }
  .geospan-login { margin: 1rem .5rem; }
  .geospan-part-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; gap: .2rem; margin-bottom: .75rem; padding-bottom: .25rem; scrollbar-width: thin; }
  .geospan-part-tabs .nav-item { flex: 0 0 auto; }
  .geospan-part-tabs .nav-link { white-space: nowrap; padding: .65rem .75rem; }
}

/* One table toolbar and one footer, with the compact geometry of shadcn-admin. */
.geospan-table-toolbar { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .5rem; min-height: 32px; margin-bottom: .75rem; }
.geospan-table-toolbar .dt-buttons { margin: 0; gap: .5rem; width: auto; flex: 0 0 auto; }
.geospan-list-actions { margin: 0 auto .75rem 0; flex: 0 1 auto; flex-wrap: wrap; max-width: 100%; }
.geospan-table-toolbar .geospan-list-actions { margin-bottom: 0; }
.geospan-table-toolbar .geospan-list-actions .btn { min-height: 32px; height: 32px; padding-block: 0; display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; }
.geospan-table-toolbar .buttons-colvis { margin: 0 !important; min-height: 32px; height: 32px; padding: 0 .65rem; border-radius: .375rem !important; }
.geospan-table-toolbar .buttons-colvis > span { display: inline-flex; align-items: center; gap: .45rem; }
.geospan-table-frame { border: 1px solid var(--geospan-border); border-radius: .5rem; min-width: 0; overflow-x: auto; }
.geospan-table-frame table.dataTable { margin: 0 !important; }
.geospan-table-frame .table > :not(caption) > * > * { padding: .65rem .75rem; vertical-align: middle; }
.geospan-table-frame .table thead th { height: 42px; font-size: .75rem; font-weight: 500; }
.geospan-table-frame .table tbody td { font-size: .8125rem; }
.geospan-table-frame .table tbody tr:last-child > * { border-bottom: 0; }
.geospan-table-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem 1.5rem; padding: .85rem .1rem; }
.geospan-table-summary { min-width: 0; color: var(--geospan-muted); font-size: .75rem; }
.geospan-table-summary .dt-info { padding: 0; }
.geospan-table-controls { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .75rem 1.25rem; margin-left: auto; }
.geospan-table-controls .dt-length { display: inline-flex; align-items: center; gap: .5rem; margin: 0; }
.geospan-table-controls .dt-length label { order: 0; margin: 0; font-size: .75rem; font-weight: 500; white-space: nowrap; }
.geospan-table-controls .dt-length select { order: 1; width: 78px; height: 32px; min-height: 32px; margin: 0; padding-block: 0; border-radius: .375rem; font-size: .75rem; }
.geospan-table-page-status { font-size: .75rem; font-weight: 500; white-space: nowrap; }
.geospan-table-controls .pagination { align-items: center; flex-wrap: wrap; gap: .3rem; margin: 0; }
.geospan-table-controls .page-link { display: inline-flex; align-items: center; justify-content: center; height: 32px; min-width: 32px; margin: 0 !important; padding: 0 .45rem; border-radius: .375rem !important; font-size: .75rem; }
.geospan-table-controls .disabled .page-link { opacity: .5; }
/* Keep DataTables' localized text and accessible names through every redraw. */
.geospan-table-controls .page-link:is([data-dt-idx="first"], [data-dt-idx="previous"], [data-dt-idx="next"], [data-dt-idx="last"]) { font-size: 0; }
.geospan-table-controls .page-link:is([data-dt-idx="first"], [data-dt-idx="previous"], [data-dt-idx="next"], [data-dt-idx="last"])::before { font-family: 'Font Awesome 7 Free'; font-weight: 900; font-size: .75rem; }
.geospan-table-controls .page-link[data-dt-idx="first"]::before { content: '\f100'; }
.geospan-table-controls .page-link[data-dt-idx="previous"]::before { content: '\f104'; }
.geospan-table-controls .page-link[data-dt-idx="next"]::before { content: '\f105'; }
.geospan-table-controls .page-link[data-dt-idx="last"]::before { content: '\f101'; }
.geospan-table-frame td .btn-sm, .geospan-table-frame td .btn-group-sm > .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 28px; padding: .2rem .4rem; }
.geospan-table-selection { padding: .6rem .75rem; margin-bottom: .75rem; border: 1px solid var(--geospan-border); border-radius: .5rem; background: var(--geospan-subtle); }
.geospan-table-selection-controls { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.geospan-table-selection-controls > .form-select, .geospan-table-selection-controls > .ts-wrapper { flex: 1 1 220px; min-width: 0; }
.geospan-table-selection-controls > .input-group-text { border: 0; background: transparent; padding-inline: 0; }
.geospan-table-selection-controls .btn { min-height: 32px; }
.geospan-table-selection-controls .ts-control { min-height: 32px; }
.geospan-table-selection-controls .input-group-text .badge { color: var(--geospan-ink) !important; background: transparent !important; font-size: .75rem; font-weight: 500; }
.geospan-table-selection.sticky-select-bar { margin-inline: 0; }
.geospan-activity-section .geospan-table-surface { border: 0; border-radius: 0; padding: 0; }
.geospan-filter-panel .accordion-button { gap: .45rem; font-size: .8125rem; }
.geospan-filter-panel .nav-tabs { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; }
.geospan-filter-panel .nav-item { flex: 0 0 auto; }
.geospan-filter-panel .nav-link { white-space: nowrap; font-size: .8125rem; padding: .6rem .75rem; }
.geospan-filter-panel .tab-pane > .row { margin-bottom: .75rem !important; }
.geospan-filter-panel .geospan-form-actions { justify-content: flex-end; }
@media (max-width: 1100px) {
  .geospan-table-footer { align-items: flex-start; flex-direction: column; }
  .geospan-table-controls { width: 100%; justify-content: space-between; margin-left: 0; gap: .75rem; }
}
@media (max-width: 575.98px) {
  .geospan-table-controls .dt-length { justify-content: space-between; }
  .geospan-table-controls .dt-length label { font-size: .7rem; }
  .geospan-table-controls .dt-paging { flex-basis: 100%; }
  .geospan-table-controls .pagination { justify-content: flex-end; }
  .geospan-table-selection-controls > .form-select, .geospan-table-selection-controls > .ts-wrapper { flex-basis: 100%; }
}
