/* ====================================================================== Maps app – Concrete Blocks view styles ====================================================================== */ #cb-main { flex-grow: 1; overflow: hidden; height: calc(100vh - 70px); } #cb-map-header { flex-shrink: 0; display: flex; align-items: center; justify-content: center; padding: 0.75rem 1rem calc(0.75rem + 1px); border-bottom: 1px solid #dee2e6; background-color: #ffffff; font-size: 1rem; font-weight: 600; color: #2f3e8b; } .cb-container { display: flex; width: 100%; height: 100%; } /* ── Left Panel (1/3) ─────────────────────────────────────────────────── */ .cb-panel { width: calc(100% / 3); min-width: 300px; max-width: 600px; height: 100%; display: flex; flex-direction: column; border-right: 1px solid rgba(47, 62, 139, 0.25); background-color: #ffffff; } .panel-header { flex-shrink: 0; border-bottom: 1px solid #dee2e6; } .panel-header .nav-tabs { border-bottom: none; } .panel-header .nav-link { border-radius: 0; border: none; border-bottom: 3px solid transparent; color: #6c757d; padding: 0.75rem 1rem; } .panel-header .nav-link:hover { border-color: #dee2e6; color: #2f3e8b; } .panel-header .nav-link.active { color: #2f3e8b; background-color: transparent; border-bottom-color: #2f3e8b; font-weight: 600; } .panel-content { flex-grow: 1; overflow-y: auto; } /* ── Map container (2/3) ─────────────────────────────────────────────── */ .cb-map-container { flex-grow: 1; display: flex; flex-direction: column; position: relative; height: 100%; } #cb-map { flex-grow: 1; min-height: 0; width: 100%; } /* ── Legend ──────────────────────────────────────────────────────────── */ .legend-item { display: flex; align-items: center; margin-bottom: 0.4rem; } /* Legend toggle buttons */ .legend-mode-btn.active { background-color: #2f3e8b; color: #fff; border-color: #2f3e8b; } /* ── Detail Panel ────────────────────────────────────────────────────── */ #cb-detail-content { font-size: 0.9rem; } .detail-section { margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px solid #dee2e6; } .detail-section:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; } .detail-label { font-weight: 600; color: #6c757d; font-size: 0.75rem; text-transform: uppercase; margin-bottom: 0.25rem; } .detail-value { font-size: 0.9rem; } /* ── Responsive ──────────────────────────────────────────────────────── */ @media (max-width: 768px) { .cb-container { flex-direction: column; } .cb-panel { width: 100%; max-width: none; height: 40vh; min-height: 200px; } .cb-map-container { height: 60vh; } #cb-map { height: 60vh; } } /* ── Scrollbar ───────────────────────────────────────────────────────── */ .panel-content::-webkit-scrollbar { width: 6px; } .panel-content::-webkit-scrollbar-track { background: #f1f1f1; } .panel-content::-webkit-scrollbar-thumb { background: #888; border-radius: 3px; } .panel-content::-webkit-scrollbar-thumb:hover { background: #555; } /* ── Edit panel ──────────────────────────────────────────────────────── */ .cb-edit-toolbar { background: #f8f9fa; flex-shrink: 0; } .cb-checkbox-group { max-height: 130px; overflow-y: auto; background: #fff; } /* Pick-position cursor feedback */ #cb-map.picking-position { cursor: crosshair !important; } /* Rubber-band overlay lives inside .cb-map-container */ .cb-map-container { position: relative; } #cb-rubber-band { pointer-events: none; box-sizing: border-box; } /* Multi-select mode button active state */ #cb-btn-select-mode.active { background-color: #495057; color: #fff; border-color: #495057; } /* Feedback alerts sizing */ #cb-edit-single-feedback, #cb-edit-bulk-feedback, #cb-create-feedback { font-size: 0.85rem; }