/* STBL BM Portal */
:root {
  --brand: #0b4f6c;
  --brand-2: #08394f;
  --accent: #e8590c;
  --sob: #1c7ed6;
  --bs-primary: #0b6e99;
  --bs-primary-rgb: 11, 110, 153;
  --bs-link-color: #0b6e99;
  --bs-link-color-rgb: 11, 110, 153;
  --bs-link-hover-color: #08394f;
  --bs-body-font-family: "Segoe UI", system-ui, -apple-system, Roboto, "Noto Sans Bengali", "SolaimanLipi", "Helvetica Neue", Arial, sans-serif;
}
body { background: #f4f7f9; min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }

.btn-primary { --bs-btn-bg: #0b6e99; --bs-btn-border-color: #0b6e99; --bs-btn-hover-bg: #095a7d; --bs-btn-hover-border-color: #095a7d; --bs-btn-active-bg: #08394f; --bs-btn-disabled-bg: #0b6e99; --bs-btn-disabled-border-color: #0b6e99; }
.btn-outline-primary { --bs-btn-color: #0b6e99; --bs-btn-border-color: #0b6e99; --bs-btn-hover-bg: #0b6e99; --bs-btn-hover-border-color: #0b6e99; --bs-btn-active-bg: #0b6e99; --bs-btn-active-border-color: #0b6e99; }
.form-control:focus, .form-select:focus { border-color: #5fa8c9; box-shadow: 0 0 0 .2rem rgba(11, 110, 153, .18); }

.app-nav { background: linear-gradient(90deg, var(--brand-2), var(--brand)); box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.app-nav .nav-link { color: rgba(255,255,255,.82); white-space: nowrap; font-size: .95rem; }
@media (min-width: 992px) and (max-width: 1399.98px) { .brand-sub { display: none !important; } .app-nav .navbar-nav .nav-link { padding-left: .45rem; padding-right: .45rem; } }
.app-nav .nav-link.active, .app-nav .nav-link:hover { color: #fff; }
.app-nav .nav-link.active { box-shadow: inset 0 -2px 0 #ffd8a8; }
.brand-mark { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 9px; background: #fff; color: var(--brand); font-weight: 800; font-size: .95rem; letter-spacing: .5px; }
.brand-sub { color: rgba(255,255,255,.7); font-size: .72rem; }
.app-footer { padding: 1rem 0; font-size: .82rem; color: #6c757d; border-top: 1px solid #e3e8ec; background: #fff; }

.ico { width: 1.05em; height: 1.05em; vertical-align: -0.15em; }
.ico-sm { width: .9em; height: .9em; }

.card { border-color: #e3e8ec; border-radius: .6rem; }
.filter-card { border-top: 3px solid var(--brand); }

.stat { background: #fff; border: 1px solid #e3e8ec; border-radius: .6rem; padding: .7rem 1rem; }
.stat-num { font-size: 1.5rem; font-weight: 700; color: var(--brand-2); line-height: 1.1; font-variant-numeric: tabular-nums; }
.stat-lbl { font-size: .78rem; color: #6c757d; text-transform: uppercase; letter-spacing: .04em; }

.badge-type-sob { background: #e7f1fc; color: #1864ab; border: 1px solid #a5d0f5; }
.badge-type-stbl { background: #fff0e6; color: #c2410c; border: 1px solid #ffc9a1; }
.legend-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; vertical-align: middle; }

.bm-table td, .bm-table th { white-space: nowrap; }
.bm-table thead th { font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; color: #5c6b77; }
.locked-cell { color: #8a96a0; background: repeating-linear-gradient(-45deg, #f8f9fa, #f8f9fa 6px, #f1f3f5 6px, #f1f3f5 12px); font-size: .85rem; }
.font-monospace { font-variant-numeric: tabular-nums; }

.dl-tight dt { font-weight: 500; color: #5c6b77; }
.dl-tight dd { margin-bottom: .45rem; }
.text-pre { white-space: pre-line; }
.coord { background: #f1f6f9; border-radius: .5rem; padding: .55rem .8rem; }
.coord span { display: block; font-size: .74rem; text-transform: uppercase; color: #5c6b77; letter-spacing: .04em; }
.coord strong { font-size: 1.15rem; color: var(--brand-2); }
.coord-rl { background: #fff4e6; }
.locked-card { background: #fbfcfd; border-style: dashed; }
.locked-icon .ico { width: 42px; height: 42px; color: #adb5bd; }

.bm-map { height: 360px; border-radius: .6rem; }
.big-map { height: calc(100vh - 240px); min-height: 420px; border-radius: .6rem; }

.photo-tile { position: relative; border-radius: .5rem; overflow: hidden; background: #e9ecef; aspect-ratio: 4/3; }
.photo-tile img { width: 100%; height: 100%; object-fit: cover; }
.photo-del { position: absolute; top: 6px; right: 6px; }
.photo-thumb { width: 84px; height: 64px; object-fit: cover; border-radius: .35rem; border: 1px solid #dee2e6; }

.step-no { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--brand); color: #fff; font-size: .85rem; margin-right: .35rem; }
.preview-wrap { max-height: 460px; overflow: auto; border: 1px solid #e3e8ec; border-radius: .5rem; }
.preview-wrap td, .preview-wrap th { white-space: nowrap; }
.preview-wrap td.chk { white-space: normal; min-width: 240px; max-width: 340px; }
.map-table td { padding-top: .35rem; padding-bottom: .35rem; }

.sticky-actions { position: sticky; top: 0; z-index: 5; }
.req-card .purpose { background: #f8f9fa; border-left: 3px solid var(--accent); padding: .5rem .75rem; border-radius: .25rem; }

@media print {
  .app-nav, .app-footer, .d-print-none, .leaflet-control-container { display: none !important; }
  body { background: #fff; }
  .card { border: 1px solid #ccc; break-inside: avoid; }
}

.hp-field { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.link-card { border-left: 4px solid var(--accent); }
