:root{font-family:'DM Sans',sans-serif;color:#24384a;background:#f1f5f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}.shell{display:grid;grid-template-columns:316px minmax(300px,1fr) 340px;height:100dvh;min-height:500px}.sidebar{display:flex;flex-direction:column;min-width:0;background:#0e1c2b;color:#eaf4f4;z-index:2}.brand{display:flex;align-items:center;gap:12px;padding:24px 22px;border-bottom:1px solid #263747}.brandmark{display:grid;place-content:center;font:700 23px 'Space Grotesk';width:40px;height:40px;background:#58d5b3;color:#0d2631;border-radius:11px}.brandmark span{color:#fff}.brand strong{font:700 21px 'Space Grotesk';letter-spacing:1.7px;display:block}.brand small{font-size:9px;letter-spacing:3px;color:#91a5b6}.version{margin-left:auto;font-size:10px;color:#82a0ad;border:1px solid #39505b;border-radius:5px;padding:4px 6px}.side-scroll{padding:25px 21px;flex:1;overflow-y:auto}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#72a0aa}.import-block{margin-top:15px;padding:20px;background:#162a3a;border:1px dashed #3b5b65;border-radius:12px}.import-icon{color:#62dcc1;font-size:32px}.import-block h2{font:600 18px 'Space Grotesk';margin:8px 0}.import-block p{font-size:12px;line-height:1.7;color:#afc0c9;margin:8px 0 16px}.upload{display:flex;justify-content:space-between;background:#5be0bb;color:#10332e;font-size:13px;font-weight:700;padding:12px 15px;border-radius:7px;cursor:pointer}.upload:hover{background:#7bf2d1}.import-block .file-help{font-size:10px;color:#829aa6;margin:12px 0 0}.status{display:flex;align-items:center;gap:9px;font-size:11px;color:#a5bac5;margin:17px 2px}.status-dot,.foot-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#6c8390}.status.ready .status-dot,.foot-dot{background:#56dcb6}.divider{height:1px;background:#273949;margin:21px 0}.section-head{display:flex;justify-content:space-between;align-items:center}.count-badge{font-size:11px;color:#55dfb9;background:#1c413f;padding:4px 9px;border-radius:14px}.search-wrap{display:flex;align-items:center;margin:17px 0 10px;background:#1c3040;border:1px solid #324757;border-radius:8px;padding:0 11px;color:#91aeb8}.search-wrap input{width:100%;outline:none;border:0;background:transparent;color:#fff;padding:12px 7px;font-size:12px}.search-wrap input::placeholder{color:#718995}.filter-heading{display:flex;justify-content:space-between;align-items:center;color:#8da5af;font-size:11px;margin:12px 0}.filter-heading strong{color:#e5f3ef}.filter-heading button{border:0;background:none;color:#57d9b6;font-size:11px}.filter-heading button:disabled{color:#657984}.well-list{display:flex;flex-direction:column;gap:7px}.empty-list{padding:22px 10px;color:#8097a4;font-size:12px;line-height:1.7;text-align:center}.well-item{text-align:left;background:#162b3b;border:1px solid #263f4d;color:#eaf3f4;border-radius:8px;padding:11px 13px}.well-item:hover,.well-item.selected{border-color:#53d4b2;background:#1b3e46}.well-item strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.well-item small{font-size:10px;color:#91abb6;display:block;margin-top:5px}.sidebar-foot{border-top:1px solid #263747;padding:16px 21px;display:flex;align-items:center;gap:9px;font-size:9px;letter-spacing:1px;color:#8fa5ae}.foot-right{margin-left:auto}.content{min-width:0;display:flex;flex-direction:column}.topbar{height:68px;background:#fff;border-bottom:1px solid #e0e8ec;display:flex;align-items:center;justify-content:space-between;padding:0 25px;gap:10px;flex-shrink:0;font-size:12px}.breadcrumb{color:#94a5b0;letter-spacing:1.2px;font-size:10px}.breadcrumb-divider{color:#afbac2;margin:0 10px}.topright{display:flex;align-items:center;gap:18px}.topright a{color:#178d77;text-decoration:none;font-weight:700}.privacy{color:#7c8e9a}.map-section{position:relative;flex:1;min-height:0}.map-section #map{position:absolute;inset:0}.map-floating{position:absolute;left:22px;top:22px;background:#fffefefa;box-shadow:0 7px 30px #283a4822;padding:16px 20px;border-radius:10px;pointer-events:none}.map-title{font:700 17px 'Space Grotesk'}.map-subtitle{color:#718591;font-size:11px;margin-top:4px}.map-stats{position:absolute;bottom:20px;left:20px;background:#fff;box-shadow:0 5px 20px #24384a25;padding:13px 17px;border-radius:10px;display:flex;align-items:center;gap:11px}.stats-label{font-size:9px;letter-spacing:1px;color:#8b9aa3}.map-stats strong{color:#233b46;font-size:12px}.stats-rule{height:20px;width:1px;background:#dce3e7;margin:0 7px}.map-hint{position:absolute;bottom:22px;right:20px;pointer-events:none;background:#15283be6;color:#e4f8f2;font-size:10px;padding:11px 12px;border-radius:7px}.detail-panel{background:#fff;border-left:1px solid #e3eaf0;min-width:0;overflow-y:auto}.detail-top{padding:24px 22px 15px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e7edf0}.detail-top .eyebrow{color:#62828d}.detail-top button{border:0;background:#f1f5f6;width:27px;height:27px;border-radius:7px;font-size:20px;color:#627c84}.detail-placeholder{padding:80px 27px;text-align:center}.detail-symbol{font-size:42px;color:#80aaa8}.detail-placeholder h2{font:600 19px 'Space Grotesk';margin:12px 0}.detail-placeholder p{font-size:12px;color:#8b9ca6;line-height:1.8}.detail-content{padding:22px}.detail-content h1{font:700 22px 'Space Grotesk';margin:8px 0;overflow-wrap:anywhere}.detail-content .coordinate{font-size:11px;color:#8797a0}.detail-tag{display:inline-block;border-radius:20px;background:#e1f7f0;color:#16816a;padding:5px 9px;font-size:10px;margin-top:12px;font-weight:700}.detail-section-title{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#68828c;margin:24px 0 12px}.attributes{border-top:1px solid #e5ebef}.attr{display:grid;grid-template-columns:43% 57%;gap:9px;border-bottom:1px solid #e8edf0;padding:10px 0;font-size:11px}.attr dt{color:#81949e;overflow-wrap:anywhere}.attr dd{margin:0;color:#243b46;font-weight:600;overflow-wrap:anywhere;white-space:pre-wrap}.log-placeholder{border:1px dashed #c7d7dc;background:#f5f9fa;border-radius:9px;padding:20px 12px;text-align:center}.log-placeholder .log-icon{font-size:28px;color:#6ba49c}.log-placeholder strong{display:block;margin:8px 0;font-size:12px}.log-placeholder p{font-size:11px;color:#8b9ea8;line-height:1.6;margin:0}.detail-action{padding:9px 13px;background:#193d44;color:#e4f8f2;border:0;border-radius:7px;font-size:11px;margin-top:15px}.source-note{color:#92a1a9;font-size:10px;line-height:1.6;margin-top:18px}#toast{position:fixed;z-index:10;left:50%;bottom:24px;transform:translateX(-50%);background:#182b37;color:white;padding:12px 18px;border-radius:8px;font-size:12px;box-shadow:0 8px 20px #0003;display:none;max-width:90vw}.maplibregl-popup-content{border-radius:8px;font-family:'DM Sans';font-size:12px}@media(max-width:1100px){.shell{grid-template-columns:270px minmax(300px,1fr)}.detail-panel{position:absolute;top:68px;bottom:0;right:0;width:min(360px,90vw);z-index:3;box-shadow:-8px 0 30px #25364625;display:none}.detail-panel.open{display:block}.side-scroll{padding:18px}.map-hint{display:none}}@media(max-width:700px){.shell{display:flex;flex-direction:column;height:100dvh;min-height:0}.sidebar{height:235px;flex-shrink:0}.brand{padding:10px 16px}.brandmark{width:32px;height:32px}.brand strong{font-size:15px}.side-scroll{padding:9px 15px;overflow-y:auto}.side-scroll>.eyebrow,.import-icon,.import-block h2,.import-block p,.import-block .file-help,.divider,.section-head,.search-wrap,.filter-heading,.well-list,.sidebar-foot{display:none}.import-block{margin:0;padding:10px;border:0}.status{margin:7px}.content{flex:1;min-height:0}.topbar{height:46px;padding:0 13px}.privacy{display:none}.map-floating{top:12px;left:12px;padding:10px}.map-stats{bottom:11px;left:11px;padding:9px}.stats-label{display:none}.detail-panel{top:235px;bottom:0}}

.log-import{margin-top:14px;padding:15px;background:#172b3b;border:1px solid #334858;border-radius:10px}.log-import p{font-size:11px;color:#a9bbc4;line-height:1.55}.secondary-upload{background:#b38bf0;color:#231638}.secondary-upload:hover{background:#c4a8f4}.layer-check{display:flex;align-items:center;gap:8px;margin-top:11px;color:#cfdee4;font-size:11px}.layer-check input{accent-color:#a66eeb}.small-status{color:#9fb7c2;margin-top:12px;font-size:10px}.danger-action{background:#a93344}.danger-action:hover{background:#8e2335}@media(max-width:700px){.log-import{padding:8px;margin:5px 0}.log-import p,.log-import .eyebrow,.log-import .small-status{display:none}.layer-check{margin-top:5px}.secondary-upload{padding:8px;font-size:11px}}

.basemap-picker{position:absolute;z-index:1;top:20px;right:20px;display:flex;gap:9px;align-items:center;background:#fff;padding:9px 12px;border-radius:9px;box-shadow:0 5px 22px #20304425;font-size:12px;font-weight:700}.basemap-picker select,.county-tools select{border:1px solid #b8cbd2;border-radius:6px;padding:8px;background:#fff;color:#203a43;font-size:12px}.county-tools{margin-top:14px;padding:15px;background:#162b3b;border:1px solid #334858;border-radius:10px}.county-tools .filter-label{display:block;font-size:11px;margin:12px 0 6px;color:#c1d3dc}.county-tools select{width:100%}.county-tools select:disabled{opacity:.6}.county-file{display:block;color:#60dec0;text-decoration:underline;cursor:pointer;font-size:10px;margin-top:12px;line-height:1.6}@media(max-width:700px){.basemap-picker{top:10px;right:10px;padding:6px}.map-floating{max-width:55%;}.county-tools{padding:8px;margin-top:5px}.county-tools .eyebrow,.county-tools .small-status,.county-file{display:none}}

.arcgis-tools{padding:18px 20px;border-bottom:1px solid rgba(130,155,174,.18)}.arcgis-tools .small-status{overflow-wrap:anywhere}

/* Collapsible data import cards; native details retains keyboard support. */
.data-accordion{margin-top:14px;background:#162a3a;border:1px solid #334858;border-radius:11px;overflow:hidden}.data-accordion>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:15px 16px;cursor:pointer;color:#a8d5d1;font-size:11px;letter-spacing:1.3px;font-weight:700}.data-accordion>summary::-webkit-details-marker{display:none}.data-accordion>summary:focus-visible{outline:2px solid #5be0bb;outline-offset:-3px}.data-accordion .chevron{font-size:18px;transition:transform .15s}.data-accordion[open] .chevron{transform:rotate(180deg)}.data-accordion .import-block,.data-accordion .log-import{margin:0;border:0;border-top:1px solid #334858;border-radius:0}.data-accordion .import-block{padding:16px}.data-accordion .log-import{padding:16px}@media(max-width:700px){.data-accordion{margin-top:5px}.data-accordion>summary{padding:7px 10px;font-size:10px}.data-accordion .import-block,.data-accordion .log-import{padding:9px}}

/* Geologic Atlas of Texas transparency control */
.geology-opacity-control{margin:9px 0 15px 20px;padding:10px 12px;background:#122536;border:1px solid #314a5b;border-radius:9px}
.geology-opacity-control label{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#d8e7ec;gap:8px}
.geology-opacity-control output{font-variant-numeric:tabular-nums;color:#70e0c0;font-weight:700}
.geology-opacity-control input[type=range]{width:100%;margin:12px 0 5px;accent-color:#5be0bb;cursor:pointer}
.opacity-endpoints{display:flex;justify-content:space-between;color:#849eaa;font-size:10px}

/* Native Esri MapView: single map surface */
#map{width:100%;height:100%;}
#map .esri-view-root{height:100%;}

/* County foldout and scrollable white Geologic Atlas attribution pane. */
.county-accordion .county-tools{margin:0;border:0;border-radius:0;padding:14px 10px 12px;background:transparent}
.county-accordion .county-tools>.eyebrow{display:none}
.geology-info{position:absolute;z-index:7;left:18px;bottom:90px;width:min(440px,calc(100% - 36px));height:min(390px,55%);display:flex;flex-direction:column;background:#fff;color:#20323b;border:1px solid #cedde2;border-radius:10px;box-shadow:0 8px 35px #152b3b45;overflow:hidden}
.geology-info[hidden]{display:none!important}
.geology-info-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:12px 15px;background:#fff;border-bottom:1px solid #dce6ea;font-size:10px;letter-spacing:1px}
.geology-info-head button{border:0;border-radius:5px;background:#edf2f4;color:#354b54;font-size:18px;padding:2px 7px}
.geology-info-body{min-height:0;overflow-y:auto;padding:13px 16px;overscroll-behavior:contain;font-size:12px;line-height:1.55}
.geology-info-body h3{font-size:15px;margin:2px 0 8px;color:#172e38}
.geology-info-body h4{font-size:11px;letter-spacing:.08em;background:#eef3f5;border-radius:5px;padding:7px;margin:16px 0 5px}
.geology-info-body dl{margin:0}.geology-info-body .geo-field{padding:7px 0;border-bottom:1px solid #e8eff1}.geology-info-body dt{font-size:10px;color:#687f89;text-transform:uppercase;letter-spacing:.035em}.geology-info-body dd{margin:2px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-weight:550}
.geology-info-body .geo-help{font-size:11px;color:#718691}
@media(max-width:700px){.geology-info{bottom:65px;left:8px;width:calc(100% - 16px);height:min(330px,50%)}}

/* Geological spatial filter and active log URLs */
.geology-well-filter{margin:12px 0;padding:11px;border:1px solid #324757;border-radius:8px;background:#152a39}
.geology-well-filter .layer-check{font-size:11px;line-height:1.5}
.geology-well-filter .small-status{margin:7px 0;color:#a3bfc7;line-height:1.4;overflow-wrap:anywhere}
.geology-well-filter button{border:1px solid #456371;background:#1d3948;color:#7ce0c3;border-radius:6px;padding:7px 9px;font-size:10px;cursor:pointer}
.geology-well-filter button:disabled{opacity:.45;cursor:default}
.attr dd a{color:#087fbb;text-decoration:underline;overflow-wrap:anywhere}

/* Explicit search and browser-local workspace */
.inventory-search-form{display:flex;align-items:stretch;gap:6px;margin:8px 16px 3px}.inventory-search-form .search-wrap{flex:1;min-width:0;margin:0}.search-submit,.workspace-button{cursor:pointer;border:1px solid #517488;border-radius:7px;background:#24495a;color:#fff;padding:9px 12px;font:inherit;font-size:12px}.search-submit:hover,.workspace-button:hover{background:#326176}.workspace-block{display:flex;flex-direction:column;gap:8px}.workspace-block select{width:100%;min-width:0;padding:8px;background:#1a3042;color:#e5f3f7;border:1px solid #385064;border-radius:6px}.workspace-block label{font-size:11px;color:#b7d3d8}.workspace-button.secondary{background:#1a3042}.workspace-button:disabled{opacity:.5;cursor:not-allowed}#searchHelp{padding:0 16px 8px}

/* v1.7.16: keep the inventory/control column structurally separate from the map.
   ArcGIS only owns #map inside .map-section; map panning cannot move sidebar. */
@media (min-width:701px) {
  .shell { width:100%; max-width:100vw; overflow:hidden; }
  .sidebar { grid-column:1; grid-row:1; position:relative; overflow:hidden; height:100%; min-height:0; transform:none; }
  .side-scroll { min-height:0; overscroll-behavior:contain; }
  .content { grid-column:2; grid-row:1; position:relative; min-height:0; overflow:hidden; }
  .map-section { position:relative; isolation:isolate; overflow:hidden; min-height:0; }
  .map-section > #map { position:absolute; inset:0; width:100%; height:100%; overflow:hidden; }
  .detail-panel { grid-column:3; grid-row:1; min-height:0; }
}
@media (min-width:701px) and (max-width:1100px) {
  .detail-panel { grid-column:auto; grid-row:auto; }
}

/* v1.7.18: expanding/collapsing sidebar controls cannot scroll or resize the map. */
html, body { height:100%; overflow:hidden; }
.shell { height:100dvh; min-height:0; overflow:hidden; }
.sidebar { min-height:0; overflow:hidden; }
.side-scroll { min-height:0; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; overflow-anchor:none; }
.data-accordion, .county-accordion, .data-accordion > summary { overflow-anchor:none; }
.content { min-height:0; overflow:hidden; }
.map-section { min-height:0; overflow:hidden; }
@media(max-width:700px) {
  .shell { height:100dvh; min-height:0; overflow:hidden; }
  .sidebar { flex-shrink:0; }
  .side-scroll { overscroll-behavior:contain; overflow-anchor:none; }
}

/* Inline TIFF log viewer: contained in the right record panel. */
.local-log-preview{width:100%;min-width:0;overflow:hidden;margin:6px 0 30px}.log-preview-status{font-size:11px;line-height:1.65;color:#54727f;overflow-wrap:anywhere;margin:10px 0}.log-tiff-pages{width:100%;max-width:100%;overflow:hidden;background:#fff;border:1px solid #dce6ea}.log-tiff-page-label{font-size:10px;color:#597580}.log-tiff-page-label:empty{display:none}.log-tiff-strip{display:block;width:100%;max-width:100%;margin:0;padding:0;border:0}.detail-panel{overscroll-behavior:contain}

/* Invitation-only Identity UI, independent of map layout. */
#appShell[hidden],#identityGate[hidden]{display:none!important}
.identity-gate{min-height:100dvh;display:grid;place-items:center;background:#0d1725;color:#e8f4f6;padding:24px}
.identity-card{width:min(390px,100%);background:#162b3b;border:1px solid #3c5969;border-radius:14px;padding:32px;font-family:inherit}
.identity-card h1{font-size:24px;margin:0 0 12px}.identity-card p{font-size:13px;line-height:1.6;color:#b7cad4}
#identityLogin,.identity-account button{cursor:pointer;background:#3c807d;color:#fff;border:1px solid #6ab8ad;border-radius:7px;padding:9px 15px;font:inherit}
.identity-account{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 6px 14px;border-bottom:1px solid #314456;min-width:0}
.identity-account span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#b9d3d7;font-size:10px;min-width:0}
.identity-account button{flex-shrink:0;font-size:11px}

/* Invitation acceptance and login forms: standalone, independent of map. */
.identity-card form{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.identity-card form[hidden]{display:none!important}
.identity-card label{font-size:12px;font-weight:600;color:#d8eef0}
.identity-card input{width:100%;box-sizing:border-box;border:1px solid #607989;border-radius:7px;background:#fff;color:#152331;padding:11px;font:inherit}
.identity-card form button{cursor:pointer;background:#3c807d;color:white;border:1px solid #6ab8ad;border-radius:7px;padding:11px 15px;font:inherit;font-weight:700}
.identity-card form button:disabled{opacity:.65;cursor:wait}
.identity-card h2{font-size:19px;margin:8px 0 0}
