/* Shared client ergonomics; keep the existing dark topographic visual identity. */
[hidden] { display: none !important; }
.btn-cancel, .btn-cancel:hover, .btn-cancel:focus { color: #e1e9e3 !important; border-color: #7d9385 !important; }
.profile-field-help, .text-muted { color: #aebeb4 !important; }
.profile-field-help { font-size: 13px !important; line-height: 1.5; }
button:disabled, input[type=submit]:disabled { opacity: .48; cursor: not-allowed; }
.notification-toggle { border: 0; background: transparent; color: #e1e9e3; padding: 10px; min-height: 44px; min-width: 44px; }
#notificationsDiv { max-width: 100vw; max-height: 100dvh; overflow-y: auto; z-index: 1060; }
.workspace-list-tools { display: flex; flex-wrap: wrap; align-items: end; gap: 16px; padding: 0 24px 18px; }
.workspace-search, .workspace-sort { display: flex; flex-direction: column; gap: 6px; color: #c6d3cb; font-size: 13px; }
.workspace-search { flex: 1 1 200px; }
.workspace-sort { flex: 0 1 170px; }
.workspace-search input, .workspace-sort select, .mosaic-extension-filter select { min-height: 44px; border: 1px solid #587060; border-radius: 6px; background-color: #151d18; color: #f2f6f3; color-scheme: dark; padding: 8px 12px; }
.workspace-search input::placeholder { color: #aebeb4; opacity: 1; }
.workspace-search input:focus, .workspace-sort select:focus, .mosaic-extension-filter select:focus { background-color: #151d18; color: #fff; border-color: #99cc00; box-shadow: 0 0 0 2px #99cc0033; }
.mosaic-extension-filter { display: flex; flex-direction: column; gap: 6px; margin: 0; min-width: 140px; max-width: 100%; color: #c6d3cb; font-size: 13px; font-weight: normal; }
.mosaic-extension-filter select { width: 100%; max-width: 100%; cursor: pointer; }
.asset-filter-bar .mosaic-extension-filter, .mosaic-filter-pills .mosaic-extension-filter { color: #c6d3cb; font-size: 12px; }
.map-secondary-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; max-width: 100%; }
.map-secondary-filters .mosaic-temporal-host { position: relative; inset: auto; pointer-events: auto; }
.map-secondary-filters .mosaic-extension-filter { gap: 0; padding: 4px 10px; border: 1px solid #415047; border-radius: 10px; background: #111713; color: #c9ef61; font-size: 10px; }
.map-secondary-filters .mosaic-extension-filter select { min-height: 44px; padding: 0; border: 0; border-radius: 0; background: #111713; font-size: 13px; }
.workspace-empty-state { padding: 24px; color: #c6d3cb; line-height: 1.6; }
.workspace-empty-state strong { display: block; color: #f2f6f3; font-size: 18px; }
.workspace-empty-state .btn { margin: 6px 8px 6px 0; }
button.project-box-new { width: 100%; background: #151d18; color: #e1e9e3; font: inherit; appearance: none; }
button.project-box-new:hover { background: #202c23; }
button.project-box-new:focus-visible, .mosaic-locate:focus-visible { outline: 3px solid #c9ef61; outline-offset: 3px; }
.preview-provenance { position: absolute; left: 12px; bottom: 12px; padding: 5px 8px; border-radius: 4px; background: #101a14e8; color: #dbe6df; font-size: 11px; }
.mosaic-card-preview { background-color: #26332b; }
.mosaic-card-title, .projectTitle, .asset-info-card h1, .asset-description { overflow-wrap: anywhere; }
.mosaic-card-preview:empty { background-color: #26332b; }
.mosaic-preview-fallback { position: absolute; inset: 0; display: flex; justify-content: center; align-items: center; color: #c6d3cb; font-size: 13px; background: #26332b; }
.mosaic-preview-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mosaic-card-details, .mosaic-action-button { min-height: 44px; min-width: 44px; }
.mosaic-card-select input:focus-visible + .mosaic-select-indicator { outline: 3px solid #c9ef61; outline-offset: 3px; }
.page-purpose a { color: #c9ef61; text-decoration: underline; }
.map-catalogue-search { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; color: #c6d3cb; font-size: 13px; background: #151a17; }
.map-catalogue-search input { width: 100%; min-height: 44px; padding: 10px; border: 1px solid #587060; border-radius: 6px; background: #0e1511; color: #fff; }
.map-catalogue-search small { line-height: 1.45; }
.map-mobile-toggle { display: none; }
.menu-map { background-color: #111713 !important; border: 1px solid #415047; }
.menu-map button { border: 0; background: #111713; color: #dce6df; min-height: 44px; }
.menu-map button:hover { background: #26332b; }
.menu-map button.active-icon-menu { color: #c9ef61; background: #29371b; }
.menu-map .icon-menu, .menu-map .icon-menu path, .menu-map .icon-menu circle, .menu-map .icon-menu rect { fill: currentColor !important; }
.map-filter-stack { z-index: 1000 !important; }
.base-layer-switch { z-index: 999 !important; }
.transaction-reference { display: block; font-size: 11px; color: #b7c7bd; margin-top: 3px; }
.mosaic-locate { color: inherit; background: transparent; border: 0; padding: 0; text-align: left; font: inherit; min-height: 44px; overflow-wrap: anywhere; }
.mymosaic-filter-stack { z-index: 1000; top: calc(var(--mosaic-map-header-height, 120px) + 10px); }
.mymosaic-map-controls { z-index: 999; }
.mymosaic-map-controls button { min-height: 44px; }
.map-filter-stack .mosaic-temporal-panel, .mymosaic-filter-stack .mosaic-temporal-panel { left: 0; right: auto; max-height: calc(100dvh - var(--mosaic-map-header-height, 60px) - 130px); overflow-y: auto; }
.mosaic-temporal-panel select, .mosaic-temporal-panel input, .mosaic-temporal-actions button { min-height: 44px; }
.mosaic-temporal-panel input { min-width: 0; }
.mosaic-temporal-panel p { color: #aebeb4; font-size: 12px; }
#toolbar .row { margin: 0; }

@media (max-width: 1024px) {
    .navbar-collapse { max-height: calc(100dvh - 62px); overflow-y: auto; }
    .navbar-nav .nav-link, .dropdown-menu .dropdown-item { min-height: 44px; display: flex; align-items: center; white-space: normal; overflow-wrap: anywhere; }
    .navbar-toggler { min-height: 44px; min-width: 44px; }
    .map-filter-stack { left: 292px !important; right: 12px !important; }
    .map-filter-stack .menu-map { width: 100% !important; }
    .mymosaic-filter-stack { left: 300px; right: 12px; }
    .mymosaic-filter-stack > .menu-map { width: 100% !important; }
    .menu-item { min-height: 44px; }
    .general-map-intro { display: none; }
    .btn, .filter-tabs button, .project-filter-group button, .mosaic-map-style-switch button { min-height: 44px; }
    .asset-filter-bar button, .mosaic-filter-pills button { min-height: 44px; min-width: 44px; font-size: 12px; }
    .asset-filter-bar .filter-group-label, .mosaic-filter-pills > strong { color: #b9c9bf; font-size: 11px; }
    .asset-detail-grid { grid-template-columns: minmax(0, 1fr) !important; }
    .asset-info-card { min-width: 0; }
}

@media (max-width: 767px) {
    #toolbar .titulo-mapedit { width: 100%; padding: 6px; font-size: 16px; overflow-wrap: anywhere; }
    #toolbar .menu-map-edit { width: 100%; padding: 0 6px 8px; text-align: left !important; }
    #toolbar .menu-map-edit .btn { margin: 0 8px 0 0 !important; }
    .mymosaic-filter-stack { left: 10px; right: 10px; }
    .mymosaic-filter-stack > .menu-map { display: flex !important; }
    .mymosaic-filter-stack > .menu-map .menu-item { flex: 1; padding: 10px 3px !important; white-space: normal; font-size: 10px !important; }
    .mymosaic-filter-stack .icon-menu { display: none; }
    .mymosaic-map-controls { right: 12px; bottom: max(16px, env(safe-area-inset-bottom)); }
    html, body { min-width: 0; }
    .container, .container-fluid { max-width: 100%; }
    .workspace-section > .container { padding-left: 12px; padding-right: 12px; }
    .box-4d, .content-box, .asset-info-card, .import-card { min-width: 0; }
    .content-box { padding-left: 14px !important; padding-right: 14px !important; }
    .form-control, select, textarea { font-size: 16px !important; }
    .form-control { min-height: 44px; }
    .map-edit-fine-adjust { grid-template-columns: 44px minmax(0, 1fr) 44px 62px !important; }
    .map-edit-fine-adjust button, .map-edit-fine-adjust #textHeight, .shared-viewer-controls button { min-height: 44px; }
    .map-edit-fine-adjust button { width: 44px; }
    .map-edit-height-label small { color: #aebeb4; font-size: 12px; }
    .modal-dialog { width: auto !important; min-width: 0 !important; max-width: calc(100% - 20px) !important; margin: 10px auto !important; padding: 0 !important; }
    .modal-content { max-height: calc(100dvh - 20px); overflow-y: auto; }
    .modal-body { min-height: 0; overflow-y: auto; padding: 18px !important; }
    .modal-header, .modal-footer { padding: 16px !important; flex-shrink: 0; }
    .modal-footer > .row { width: 100%; margin: 0; }
    .modal-footer .btn { padding-left: 12px !important; padding-right: 12px !important; white-space: normal; }
    .project-kind-picker, .import-grid, .asset-detail-grid { grid-template-columns: minmax(0, 1fr) !important; }
    .project-kind-option { min-width: 0; padding: 14px; grid-template-columns: 36px minmax(0, 1fr) !important; }
    .project-kind-copy { min-width: 0; overflow-wrap: anywhere; }
    .project-filter-bar { gap: 12px; }
    .project-filter-group { flex-wrap: wrap; }
    .workspace-list-tools { padding: 0 16px 16px; gap: 12px; }
    .workspace-search, .workspace-sort { flex: 1 1 140px; min-width: 0; }
    .project-filter-bar > .workspace-search, .project-filter-bar > .workspace-sort { flex: 0 0 auto; width: 100%; }
    .project-filter-bar > .mosaic-extension-filter { width: 100%; }
    .filter-tabs, .mosaic-library-filters { flex-wrap: wrap; }
    .filter-date-range { flex-wrap: wrap; width: 100%; gap: 10px; }
    .filter-date-range label { flex: 1 1 120px; min-width: 0; }
    .filter-date-range input { width: 100%; min-width: 0; min-height: 44px; }
    #MyMapDetail .content-box .col-6 { width: 100%; }
    .asset-detail-head, .asset-detail-actions, .asset-viewer-head-actions, .project-retention-bar { flex-wrap: wrap; gap: 12px; }
    .asset-detail-actions .btn { flex: 1 1 180px; white-space: normal; }
    .asset-viewer, .processed-asset-viewer { height: 55dvh !important; min-height: 300px !important; max-height: 620px; }
    .viewer-only .asset-viewer { height: calc(100dvh - 120px) !important; max-height: none; }
    .asset-work-dialog, .asset-work-card { width: calc(100vw - 24px) !important; max-height: calc(100dvh - 24px); overflow-y: auto; padding: 18px !important; }
    .source-file-dropzone { min-width: 0; overflow-wrap: anywhere; }
    .source-file-dropzone input[type=file] { max-width: 100%; }
    .source-file-selection strong, .upload-file-name { overflow-wrap: anywhere; }
    .credit-balance-card { display: flex !important; flex-direction: column; gap: 18px; }
    #transactionlist .row-project { margin: 0; padding: 14px 0; border-bottom: 1px solid #415347; }
    #transactionlist .header-table-project { text-align: left !important; padding: 4px 8px; color: #d2ddd6; }
    #transactionlist .col-md-2::before { content: 'Credits: '; }
    #transactionlist .col-md-3:last-child::before { content: 'Balance: '; }
    .modal[aria-labelledby=staticBackdropLabel2] .header-project { display: none; }

}

@media (max-height: 500px) and (max-width: 1024px) {
    .map-filter-stack .mosaic-temporal-trigger { padding-top: 6px; padding-bottom: 6px; }
    .container-fluid2 #itemsContainer { max-height: 55dvh; }
    .asset-viewer, .processed-asset-viewer { min-height: 250px !important; }
}

@media (max-width: 1024px) {
    .map-filter-stack { left: 10px !important; right: 10px !important; gap: 8px; top: calc(var(--mosaic-map-header-height, 60px) + 8px) !important; }
    .map-filter-stack .menu-map { width: 100% !important; }
    .map-filter-stack .menu-item { font-size: 11px; padding: 10px 4px; }
    .map-filter-stack .icon-menu { margin-right: 3px; }
    .container-fluid2 { position: relative; height: calc(100dvh - var(--mosaic-map-header-height, 60px)) !important; min-height: 350px; display: block !important; }
    .container-fluid2 #cesiumContainer { position: absolute; inset: 0; width: 100% !important; height: 100% !important; }
    .container-fluid2 #itemsContainer { position: absolute; z-index: 1001; left: 0; right: 0; bottom: 0; width: 100% !important; height: 48%; max-height: 520px; border-top: 1px solid #718b79; border-radius: 14px 14px 0 0; overflow-y: auto; overscroll-behavior: contain; }
    .container-fluid2 #itemsContainer.is-mobile-collapsed { display: none; }
    .map-mobile-toggle { display: block; position: absolute; z-index: 1002; right: 12px; bottom: calc(48% + 10px); min-height: 44px; padding: 10px 16px; border: 1px solid #a6cc54; border-radius: 24px; background: #18271e; color: #e9f6db; font-weight: 700; }
    .map-mobile-toggle.is-collapsed { bottom: max(62px, env(safe-area-inset-bottom)); }
    .base-layer-switch { right: 12px !important; bottom: max(16px, env(safe-area-inset-bottom)) !important; }
    .base-layer-switch button { min-height: 40px; }
    .container-fluid2 .cesium-viewer-toolbar { top: 130px; right: 12px; }
    .container-fluid2 .cesium-geocoder-input:focus, .container-fluid2 .cesium-geocoder-input:hover { max-width: calc(100vw - 64px); }
    .container-fluid2 .cesium-widget-credits { max-width: calc(100% - 160px); padding-bottom: env(safe-area-inset-bottom); }
    .map-catalogue-search { position: sticky; top: 0; z-index: 5; }
    .section-marketplace .global-asset-card .mosaic-card-preview { height: 140px; }
    .mymosaic-filter-stack { left: 10px; right: 10px; }
    .mymosaic-filter-stack > .menu-map { display: flex !important; }
    .mymosaic-filter-stack > .menu-map .menu-item { flex: 1; width: auto !important; min-height: 44px; padding: 10px 3px !important; white-space: normal; font-size: 11px !important; }
    .mymosaic-filter-stack .icon-menu { margin-right: 4px; }
}

.container-fluid2 { height: calc(100dvh - var(--mosaic-map-header-height, 60px)) !important; min-height: 0 !important; overflow: hidden; }
@media (max-height: 500px) and (max-width: 1024px) {
    .container-fluid2 { min-height: 200px; }
}

/* Keep accessible card text inside its scroller, rather than the document body. */
.mosaic-locate { position: relative; }
.map-filter-stack { position: fixed; }
#menu-nav .navbar { padding-top: 6px; padding-bottom: 6px; min-height: 60px; }
#menu-nav .navbar-nav { align-items: center; }
#menu-nav .nav-item { display: flex; align-items: center; }
#menu-nav .nav-link { min-height: 44px; display: inline-flex !important; align-items: center; padding-top: 8px; padding-bottom: 8px; }
#menu-nav .notification-toggle { display: inline-flex; align-items: center; justify-content: center; height: 44px; padding: 10px; }
#menu-nav #notificationsIcon { padding: 0; margin: 0; width: 20px; height: 22px; display: block; }
#menu-nav #greenDot { top: 5px; right: 5px; }
@media (max-width: 991px) {
    #menu-nav .navbar-nav { align-items: stretch; }
    #menu-nav .nav-item.dropdown { display: block; }
}
.mosaic-extension-picker { position: relative; width: 100%; max-width: 260px; color: #f2f6f3; color-scheme: dark; font-size: 13px; pointer-events: auto; }
.mosaic-extension-picker summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 8px 12px; border: 1px solid #587060; border-radius: 6px; background: #151d18; cursor: pointer; list-style: none; overflow-wrap: anywhere; }
.mosaic-extension-picker summary::-webkit-details-marker { display: none; }
.mosaic-extension-picker summary::after { content: '\2304'; flex: 0 0 auto; color: #c9ef61; }
.mosaic-extension-picker[open] summary { border-color: #99cc00; }
.mosaic-extension-picker summary:focus-visible, .mosaic-extension-clear:focus-visible { outline: 2px solid #c9ef61; outline-offset: 2px; }
.mosaic-extension-panel { position: absolute; z-index: 1050; top: calc(100% + 6px); left: 0; width: 260px; max-width: calc(100vw - 32px); max-height: min(340px, 48dvh); overflow-y: auto; overscroll-behavior: contain; padding: 10px; border: 1px solid #587060; border-radius: 10px; background: #111713; color: #f2f6f3; box-shadow: 0 12px 30px #0008; }
.mosaic-extension-clear { width: 100%; min-height: 44px; padding: 8px; color: #c9ef61; background: #202c23; border: 1px solid #587060; border-radius: 6px; text-align: left; }
.mosaic-extension-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 6px; margin-top: 8px; }
.mosaic-extension-choices label { display: flex; align-items: center; gap: 9px; min-height: 44px; margin: 0; padding: 8px; color: #f2f6f3; font-size: 13px; font-weight: normal; cursor: pointer; }
.mosaic-extension-choices label:hover, .mosaic-extension-choices label:focus-within { background: #29371b; border-radius: 6px; }
.mosaic-extension-choices input { appearance: auto; position: static; opacity: 1; width: 18px; height: 18px; min-height: 0; margin: 0; accent-color: #99cc00; }
.map-secondary-filters .mosaic-extension-picker summary { padding: 0; border: 0; background: #111713; }
@media (max-width: 767px) { .project-filter-bar .mosaic-extension-picker { max-width: none; } }
