
body{font-family:'DM Sans',sans-serif;background:#0a0e17;color:#e2e8f0;overflow:hidden;height:100vh}
#map{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1;background:#0a0e17}
.leaflet-control-zoom a{background:#161d2e!important;color:#94a3b8!important;border-color:#1e293b!important}
.leaflet-control-zoom a:hover{background:#1e293b!important;color:#e2e8f0!important}
.leaflet-control-attribution{background:rgba(10,14,23,0.8)!important;color:#475569!important;font-size:10px!important}
.leaflet-control-attribution a{color:#64748b!important}
/* Top nav */
#header{position:absolute;top:0;left:0;right:0;z-index:1000;height:44px;background:rgba(10,14,23,0.97);border-bottom:1px solid rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:space-between;padding:0 20px;pointer-events:none}
#header>*{pointer-events:auto}
.nav-left{display:flex;align-items:center;gap:10px}
.brand{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;letter-spacing:2px;color:#f97316;text-decoration:none}
.nav-sep{color:#334155;font-size:12px}
.nav-module{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;letter-spacing:1.5px;color:#94a3b8;text-transform:uppercase}
.nav-badge{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:1px;color:#475569;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:4px;padding:1px 6px}
.nav-right{display:flex;align-items:center;gap:8px}
#chat-toggle{border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.04);color:#94a3b8;padding:5px 14px;border-radius:6px;font-size:11px;font-weight:600;font-family:'JetBrains Mono',monospace;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;white-space:nowrap}
#chat-toggle.active{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.14);color:#cbd5e1}
/* Persistent search bar */
#search-bar{position:absolute;top:44px;left:0;right:0;z-index:999;height:38px;background:rgba(18,26,46,0.98);border-bottom:1px solid rgba(255,255,255,0.09);display:flex;align-items:center;padding:0 16px;gap:10px}
.sb-icon{width:14px;height:14px;color:#4f8ef7;flex-shrink:0}
.sb-input{flex:1;background:transparent;border:none;outline:none;font-family:'JetBrains Mono',monospace;font-size:11px;color:#94a3b8}
.sb-input::placeholder{color:#4a5568}
.sb-input:focus{color:#e2e8f0}
.sb-select{background:transparent;border:none;border-left:1px solid rgba(255,255,255,0.06);outline:none;font-family:'JetBrains Mono',monospace;font-size:10px;color:#475569;cursor:pointer;padding:0 8px;height:100%}
.sb-select option{background:#0d1220;color:#94a3b8}
.sb-badge{font-family:'JetBrains Mono',monospace;font-size:9px;color:#4f8ef7;letter-spacing:0.5px;white-space:nowrap}
.sb-clear{background:none;border:none;font-family:'JetBrains Mono',monospace;font-size:9px;color:#475569;cursor:pointer;white-space:nowrap;letter-spacing:0.5px;padding:0}
.sb-clear:hover{color:#f87171}
/* Doc panel */
#doc-panel{position:absolute;bottom:20px;left:325px;z-index:1000;background:rgba(12,16,28,0.96);backdrop-filter:blur(16px);border:1px solid rgba(249,115,22,0.2);border-radius:14px;width:360px;max-height:calc(100vh - 150px);display:flex;flex-direction:column;box-shadow:0 12px 40px rgba(0,0,0,0.5);opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .2s ease,transform .2s ease}
#doc-panel.open{opacity:1;pointer-events:auto;transform:translateY(0)}
.dp-header{padding:14px 16px 10px;border-bottom:1px solid rgba(255,255,255,0.06);display:flex;justify-content:space-between;align-items:flex-start}
.dp-addr{font-size:14px;font-weight:600;color:#f1f5f9}.dp-meta{font-size:11px;color:#64748b;margin-top:2px}
.dp-close{background:none;border:none;color:#64748b;font-size:16px;cursor:pointer;padding:4px}
.dp-list{flex:1;overflow-y:auto;padding:8px 16px 14px}
.dp-item{padding:8px 0;border-bottom:1px solid rgba(255,255,255,0.04)}.dp-item:last-child{border:none}
.dp-type{font-size:12px;font-weight:600;color:#cbd5e1}
.dp-job-row{display:flex;gap:8px;margin-top:2px;align-items:center;flex-wrap:wrap}
.dp-job{font-family:'JetBrains Mono',monospace;font-size:10px;color:#64748b}
.dp-badge{font-size:9px;color:#475569;background:rgba(255,255,255,0.05);padding:1px 5px;border-radius:4px}
.dp-pdf{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:11px;color:#38bdf8;text-decoration:none;font-weight:500}.dp-pdf:hover{color:#7dd3fc}
.dp-loading{color:#64748b;font-size:12px;padding:24px;text-align:center}
.dp-section-hdr{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:2px;color:#6366f1;text-transform:uppercase;padding:10px 0 5px;border-bottom:1px solid rgba(99,102,241,0.15);margin-bottom:4px}
.dp-group{margin-bottom:8px;border:1px solid rgba(255,255,255,0.06);border-radius:7px;overflow:hidden}
.dp-group-hdr{background:rgba(255,255,255,0.04);padding:6px 10px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.dp-group-hdr .dp-job{color:#94a3b8;font-size:11px}
.dp-filing-hdr{font-family:'JetBrains Mono',monospace;font-size:9px;color:#475569;padding:4px 10px;background:rgba(255,255,255,0.02);border-top:1px solid rgba(255,255,255,0.04)}
.dp-group .dp-item{padding:6px 10px;border-bottom:1px solid rgba(255,255,255,0.04)}
.dp-group .dp-item:last-child{border:none}
.dp-dist{font-size:9px;color:#334155;margin-left:auto}
.dp-status{color:#94a3b8}
/* Subsurface prediction panel — permanent left sidebar */
#sub-panel{position:absolute;top:82px;bottom:20px;left:20px;z-index:999;background:rgba(10,14,23,0.97);backdrop-filter:blur(20px);border:1px solid rgba(99,102,241,0.3);border-radius:14px;width:290px;display:flex;flex-direction:column;box-shadow:0 12px 48px rgba(0,0,0,0.6)}
.sp-empty{padding:32px 16px;text-align:center;font-size:11px;color:#334155;line-height:1.6}
.sp-header{padding:14px 16px 12px;border-bottom:1px solid rgba(255,255,255,0.06);display:flex;justify-content:space-between;align-items:flex-start}
.sp-title{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:2.5px;color:#6366f1;text-transform:uppercase;margin-bottom:3px}
.sp-coords{font-size:12px;color:#94a3b8;font-family:'JetBrains Mono',monospace}
.sp-close{background:none;border:none;color:#64748b;font-size:16px;cursor:pointer;padding:4px;margin-left:8px}
.sp-body{padding:14px 16px}
.sp-prop{margin-bottom:14px}
.sp-prop:last-child{margin-bottom:0}
.sp-prop-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.sp-prop-name{font-size:13px;font-weight:600;color:#cbd5e1;letter-spacing:0.3px}
.sp-prop-val{font-family:'JetBrains Mono',monospace;font-size:15px;font-weight:600;color:#f1f5f9}
.sp-prop-unit{font-size:11px;color:#64748b;margin-left:2px}
/* Text size floor for inline-styled content in the data tab */
#sp-body [style*="font-size:9px"]{font-size:11px!important;line-height:1.5!important}
#sp-body [style*="font-size:10px"]{font-size:12px!important;line-height:1.5!important}
#sp-body [style*="font-size:11px"]{font-size:12px!important;line-height:1.5!important}
.sp-bar-labels{font-size:10px!important}
.sp-bar-track{position:relative;height:8px;background:rgba(255,255,255,0.06);border-radius:4px;overflow:hidden;margin-bottom:4px}
.sp-bar-range{position:absolute;top:0;bottom:0;border-radius:4px;opacity:0.85}
.sp-bar-mean{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--bg2);border-radius:1px;box-shadow:0 0 4px rgba(255,255,255,0.6)}
.sp-bar-labels{display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:9px;color:#475569}
.sp-unavail{font-size:11px;color:#334155;font-style:italic;padding:4px 0}
.sp-footer{padding:10px 16px 14px;border-top:1px solid rgba(255,255,255,0.04);display:flex;align-items:center;justify-content:space-between}
.sp-zone{font-size:10px;color:#64748b}
.sp-version{font-family:'JetBrains Mono',monospace;font-size:9px;color:#334155}
/* Legend */
#legend{position:absolute;bottom:20px;right:20px;z-index:1000;background:rgba(15,20,33,0.92);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,0.06);border-radius:10px;padding:12px 14px;min-width:190px}
.leg-title{font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:1.5px;color:#6366f1;text-transform:uppercase;margin-bottom:8px}
#leg-canvas{display:block;border-radius:3px;margin-bottom:5px}
.leg-ticks{display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:9px;color:#475569;margin-bottom:8px}
.leg-hint{font-size:10px;color:#334155;border-top:1px solid rgba(255,255,255,0.04);padding-top:8px;line-height:1.4}
/* Chat panel */
#chat-panel{position:absolute;top:95px;right:20px;z-index:1000;background:rgba(12,16,28,0.96);backdrop-filter:blur(16px);border:1px solid rgba(139,92,246,0.2);border-radius:14px;width:420px;height:calc(100vh - 130px);display:flex;flex-direction:column;box-shadow:0 12px 48px rgba(0,0,0,0.5);opacity:0;pointer-events:none;transform:translateX(12px);transition:opacity .22s ease,transform .22s ease}
#chat-panel.open{opacity:1;pointer-events:auto;transform:translateX(0)}
.ch-header{padding:14px 16px 10px;border-bottom:1px solid rgba(255,255,255,0.06)}
.ch-title{font-size:15px;font-weight:700;color:#e2e8f0}.ch-sub{font-size:10px;color:#64748b;margin-top:2px}
.ch-messages{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:10px}
.msg-user{display:flex;justify-content:flex-end}.msg-asst{display:flex;justify-content:flex-start}
.bubble-user{background:rgba(249,115,22,0.13);border:1px solid rgba(249,115,22,0.2);color:#f1f5f9;padding:8px 12px;border-radius:12px 12px 4px 12px;font-size:13px;max-width:85%;line-height:1.5;word-wrap:break-word}
.bubble-asst{background:rgba(139,92,246,0.07);border:1px solid rgba(139,92,246,0.13);color:#cbd5e1;padding:12px 16px;border-radius:12px 12px 12px 4px;font-size:13.5px;font-family:'DM Sans',system-ui,sans-serif;max-width:92%;line-height:1.75;word-wrap:break-word}
.bubble-asst p{margin:0 0 10px}.bubble-asst p:last-child{margin-bottom:0}
.bubble-asst ul,.bubble-asst ol{margin:6px 0 10px;padding-left:22px}
.bubble-asst li{margin-bottom:8px;line-height:1.7}
.bubble-asst ol li::marker{color:#a78bfa;font-weight:600}
.bubble-asst strong{color:#e2e8f0;font-weight:600}
.bubble-asst code{background:rgba(139,92,246,0.15);padding:1px 5px;border-radius:3px;font-size:11px;font-family:'JetBrains Mono',monospace}
.bubble-asst h1,.bubble-asst h2,.bubble-asst h3{color:#e2e8f0;font-weight:600;margin:10px 0 4px;font-size:13px}
@keyframes cursor-blink{0%,100%{opacity:1}50%{opacity:0}}
.stream-cursor{display:inline-block;width:2px;height:.9em;background:#8b5cf6;margin-left:1px;vertical-align:text-bottom;border-radius:1px;animation:cursor-blink .65s steps(1) infinite}
.stream-synthesis{font-size:12px;color:#cbd5e1;line-height:1.7;font-family:'DM Sans',system-ui,sans-serif;padding:10px 12px;border-left:2px solid rgba(45,212,191,0.4);margin-bottom:10px}
.stream-synthesis p{margin:0 0 7px}.stream-synthesis p:last-child{margin-bottom:0}
.stream-synthesis ul,.stream-synthesis ol{margin:3px 0 7px;padding-left:18px}
.stream-synthesis li{margin-bottom:3px;line-height:1.6}
.stream-synthesis strong{color:#e2e8f0;font-weight:600}
.typing{color:#8b5cf6;font-style:italic;font-size:12px}
.ch-input-wrap{padding:12px 16px;border-top:1px solid rgba(255,255,255,0.06);display:flex;gap:8px}
.ch-input{flex:1;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);border-radius:10px;padding:10px 14px;color:#e2e8f0;font-size:13px;font-family:'DM Sans',sans-serif;outline:none}
.ch-input:focus{border-color:rgba(139,92,246,0.3)}.ch-input::placeholder{color:#475569}
.ch-send{background:rgba(139,92,246,0.2);border:1px solid rgba(139,92,246,0.3);color:#a78bfa;width:42px;border-radius:10px;font-size:18px;cursor:pointer}.ch-send:disabled{opacity:0.3}
/* Sub-panel tabs */
.sp-tabs{display:flex;border-bottom:1px solid rgba(255,255,255,0.06);margin:0}
.sp-tab{flex:1;padding:8px 4px;font-family:'JetBrains Mono',monospace;font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:#475569;cursor:pointer;text-align:center;border-bottom:2px solid transparent;transition:all 0.15s;background:none;border-top:none;border-left:none;border-right:none}
.sp-tab:hover{color:#94a3b8}.sp-tab.active{color:#6366f1;border-bottom-color:#6366f1}
.sp-tabpanel{display:none;overflow-y:auto;flex:1;min-height:0}.sp-tabpanel.active{display:flex;flex-direction:column}
/* Reports tab */
.rpt-item{padding:10px 0;border-bottom:1px solid rgba(255,255,255,0.04)}.rpt-item:last-child{border:none}
.rpt-form{font-size:12px;font-weight:600;color:#cbd5e1}
.rpt-meta{font-family:'JetBrains Mono',monospace;font-size:10px;color:#64748b;margin-top:2px}
.rpt-pdf{display:inline-flex;align-items:center;gap:4px;margin-top:5px;font-size:11px;color:#38bdf8;text-decoration:none;font-weight:500}.rpt-pdf:hover{color:#7dd3fc}
.rpt-loading{color:#64748b;font-size:12px;padding:24px;text-align:center}
/* 3D Panel */
#threed-panel{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1500;background:#0a0e17;display:none;flex-direction:column}
#threed-panel.open{display:flex}
#threed-canvas{flex:1;display:block;width:100%;height:100%}
.td-header{padding:12px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,0.06);flex-shrink:0}
.td-title{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;letter-spacing:2px;color:#6366f1;text-transform:uppercase}
.td-close{background:none;border:none;color:#64748b;font-size:20px;cursor:pointer;padding:4px}
.td-close:hover{color:#94a3b8}
.td-legend{display:flex;gap:16px;align-items:center}
.td-hint{font-size:10px;color:#475569;font-family:'JetBrains Mono',monospace}
.td-btn{background:rgba(99,102,241,0.12);border:1px solid rgba(99,102,241,0.25);color:#818cf8;padding:4px 10px;border-radius:5px;font-size:9px;font-family:'JetBrains Mono',monospace;font-weight:700;cursor:pointer;letter-spacing:1px;transition:all 0.15s}
.td-btn:hover{background:rgba(99,102,241,0.22);color:#a5b4fc}
.td-btn.active{background:rgba(99,102,241,0.3);border-color:rgba(99,102,241,0.5);color:#c7d2fe}
/* Report modal */
#report-modal{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,0.75);align-items:center;justify-content:center}
#report-modal.open{display:flex}
.rm-box{background:#0f1729;border:1px solid rgba(99,102,241,0.3);border-radius:12px;width:420px;max-width:90vw;padding:24px;box-shadow:0 24px 64px rgba(0,0,0,0.6)}
.rm-title{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#6366f1;margin-bottom:18px}
.rm-field{margin-bottom:12px}
.rm-label{display:block;font-size:10px;font-family:'JetBrains Mono',monospace;color:#64748b;margin-bottom:4px;text-transform:uppercase;letter-spacing:0.5px}
.rm-input{width:100%;background:#1e293b;border:1px solid rgba(255,255,255,0.1);border-radius:6px;color:#e2e8f0;font-size:12px;padding:7px 10px;box-sizing:border-box;font-family:'JetBrains Mono',monospace}
.rm-input:focus{outline:none;border-color:rgba(99,102,241,0.5)}
.rm-row{display:flex;gap:8px}
.rm-row .rm-field{flex:1}
.rm-actions{display:flex;gap:8px;margin-top:18px}
.rm-btn{flex:1;padding:9px 12px;border-radius:7px;font-size:10px;font-family:'JetBrains Mono',monospace;font-weight:700;letter-spacing:1px;cursor:pointer;text-transform:uppercase;transition:all 0.15s}
.rm-btn-primary{background:rgba(99,102,241,0.2);border:1px solid rgba(99,102,241,0.4);color:#818cf8}
.rm-btn-primary:hover{background:rgba(99,102,241,0.35)}
.rm-btn-email{background:rgba(16,185,129,0.15);border:1px solid rgba(16,185,129,0.3);color:#34d399}
.rm-btn-email:hover{background:rgba(16,185,129,0.28)}
.rm-btn-cancel{background:none;border:1px solid rgba(255,255,255,0.1);color:#475569;flex:0 0 auto;padding:9px 14px}
.rm-btn-cancel:hover{color:#94a3b8}
.rm-site{font-size:10px;color:#475569;font-family:'JetBrains Mono',monospace;margin-bottom:16px;padding:8px 10px;background:rgba(255,255,255,0.03);border-radius:6px;border:1px solid rgba(255,255,255,0.05)}
/* Cover page (print only) */
#geotech-cover{display:none}
@media print {
  #geotech-cover{display:block !important;page-break-after:always;padding:40px;font-family:'Times New Roman',serif;color:#000;background:#fff}
  #geotech-cover .cv-logo{font-size:22px;font-weight:700;letter-spacing:2px;color:#000;border-bottom:3px solid #000;padding-bottom:12px;margin-bottom:24px}
  #geotech-cover .cv-logo span{font-size:13px;font-weight:400;letter-spacing:1px;color:#555;display:block;margin-top:2px}
  #geotech-cover .cv-title{font-size:26px;font-weight:700;margin:32px 0 8px;color:#000}
  #geotech-cover .cv-subtitle{font-size:14px;color:#555;margin-bottom:32px}
  #geotech-cover .cv-meta-table{width:100%;border-collapse:collapse;margin-bottom:32px}
  #geotech-cover .cv-meta-table td{padding:6px 12px;border:1px solid #ddd;font-size:12px}
  #geotech-cover .cv-meta-table td:first-child{font-weight:700;background:#f5f5f5;width:35%}
  #geotech-cover .cv-disclaimer{font-size:10px;color:#777;border-top:1px solid #ddd;padding-top:12px;line-height:1.5}
  #report-modal{display:none !important}
}
/* Loader */
#loader{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99998;background:#060e1a;display:flex;align-items:center;justify-content:center;transition:opacity 0.8s}
#loader.done{opacity:0;pointer-events:none}
#load-msg{font-size:13px;font-family:'JetBrains Mono',monospace;font-weight:600;letter-spacing:2px;color:#94a3b8;text-transform:uppercase}
@media print {
  body { background: #fff !important; color: #000 !important; font-family: 'Times New Roman', serif; }
  #map, #top-bar, #layer-panel, .lbtn, #chat-toggle, #xsec-btn, #threed-btn,
  .sp-close, .sp-tabs, .sp-footer, #search-bar, #chat-panel, #report-modal { display: none !important; }
  #sub-panel {
    position: static !important; display: block !important; width: 100% !important;
    max-width: 700px !important; margin: 0 auto !important;
    background: #fff !important; color: #000 !important;
    border: none !important; box-shadow: none !important;
    border-radius: 0 !important;
  }
  .sp-header { border-bottom: 2px solid #000 !important; padding: 16px 0 8px !important; }
  .sp-title { font-size: 18px !important; font-weight: 700 !important; color: #000 !important; }
  .sp-coords { font-size: 12px !important; color: #444 !important; }
  #sptab-data { display: block !important; max-height: none !important; overflow: visible !important; }
  #sptab-reports, #sptab-xsec { display: none !important; }
  .sp-body, #sp-body { color: #000 !important; }
  .sp-section { border: 1px solid #ccc !important; background: #fff !important; margin-bottom: 12px !important; page-break-inside: avoid; }
  .sp-section-title { color: #000 !important; background: #f5f5f5 !important; border-bottom: 1px solid #ccc !important; }
  .sp-prop-name, .sp-prop-val, .sp-prop-unit { color: #000 !important; }
  .sp-grid td { color: #333 !important; border-color: #ddd !important; }
  a { color: #000 !important; text-decoration: underline !important; }
  * { background: transparent !important; -webkit-print-color-adjust: exact !important; }
  #sp-borings, #sp-contam, #sp-adj { page-break-inside: avoid; }
}
@media (max-width: 768px) {
  #mobile-banner { display: flex !important; }
}
#mobile-banner {
  display: none;
  align-items: center; gap: 10px;
  padding: 10px 16px;
  background: #0c1225;
  border-bottom: 1px solid #1a2840;
  font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: #7d90b0;
  position: sticky; top: 0; z-index: 9999; flex-shrink: 0;
}
#mobile-banner strong { color: #eef1f8; }
#mobile-banner a { color: #4080e0; text-decoration: none; }
#mobile-banner-close {
  margin-left: auto; background: none; border: none;
  color: #3d5070; font-size: 16px; cursor: pointer; padding: 0 4px; line-height: 1;
}

/* ── ALL CAPS UI ── */
body { text-transform: uppercase; }
/* Chat messages stay readable — never uppercase conversation text */
.bubble-user, .bubble-asst, .typing { text-transform: none; }
/* Form inputs: display as-typed */
input, textarea, select, .rm-input { text-transform: none; }
input::placeholder, .ch-input::placeholder { text-transform: uppercase; }
.sb-input::placeholder { text-transform: uppercase; }

/* ── READABILITY — light enough to read on dark navy ── */
.nav-sep, .dp-dist, .sp-version, .leg-hint { color: #7a8fa8; }
.sp-unavail { color: #94a3b8; font-style: italic; }
.slabel { color: #b8c8dc; }
.nav-badge, .ctrl-lbl, .sp-bar-labels, .sp-tab, .dp-badge,
.dp-filing-hdr, .rm-site, .rm-btn-cancel, .td-hint { color: #b8c8dc; }
.vis-btn.off { color: #b8c8dc; }
.boring-vis-btn.off { color: #b8c8dc; }
.boring-toggle-lbl { color: #c8d8e8; }
.cat-count, .boro-val, .dp-meta, .dp-job, .dp-loading,
.rpt-meta, .rpt-loading, .grid-status, .sp-zone, .sp-prop-unit,
.ch-sub, .sb-clear, .sb-select { color: #b8c8dc; }
.dp-close, .sp-close, .td-close { color: #b8c8dc; }
.lbtn { color: #c8d8e8; text-transform: uppercase; }
.bbtn { color: #b8c8dc; text-transform: uppercase; }
/* Loader sub-line */
#load-sub { color: #7a8fa8; }

/* ── Map cursor ── */
#map { cursor: default; }
#map.panning { cursor: grab; }

/* ── Button press feedback ── */
.lbtn:active { transform: scale(0.96); }
.bbtn:active { transform: scale(0.96); }
.vis-btn:active, .boring-vis-btn:active { transform: scale(0.95); }
#chat-toggle:active { transform: scale(0.97); }

/* ── Chat send hover ── */
.ch-send:hover:not(:disabled) { background: rgba(139,92,246,0.35); border-color: rgba(139,92,246,0.5); }
.ch-send:active { transform: scale(0.95); }

/* ── Smooth input focus transitions ── */
#addr-input { transition: border-color .15s; }
#addr-input:focus { border-color: rgba(99,102,241,0.4) !important; outline: none; }
.ch-input { transition: border-color .15s; }
.rm-input { transition: border-color .15s; }

/* ── Custom scrollbars ── */
/* Sidebar — neutral */
#sidebar::-webkit-scrollbar { width: 4px; }
#sidebar::-webkit-scrollbar-track { background: transparent; }
#sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 2px; }
#sidebar::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.2); }

/* Sub-panel / Site Subsurface Analysis — indigo to match panel border */
.sp-tabpanel::-webkit-scrollbar,
#chunk-results::-webkit-scrollbar,
#rpt-list::-webkit-scrollbar { width: 4px; }
.sp-tabpanel::-webkit-scrollbar-track,
#chunk-results::-webkit-scrollbar-track,
#rpt-list::-webkit-scrollbar-track { background: rgba(99,102,241,0.04); }
.sp-tabpanel::-webkit-scrollbar-thumb,
#chunk-results::-webkit-scrollbar-thumb,
#rpt-list::-webkit-scrollbar-thumb { background: rgba(99,102,241,0.4); border-radius: 2px; }
.sp-tabpanel::-webkit-scrollbar-thumb:hover,
#chunk-results::-webkit-scrollbar-thumb:hover,
#rpt-list::-webkit-scrollbar-thumb:hover { background: rgba(99,102,241,0.65); }

/* Doc panel — orange to match panel border */
.dp-list::-webkit-scrollbar { width: 4px; }
.dp-list::-webkit-scrollbar-track { background: rgba(249,115,22,0.04); }
.dp-list::-webkit-scrollbar-thumb { background: rgba(249,115,22,0.4); border-radius: 2px; }
.dp-list::-webkit-scrollbar-thumb:hover { background: rgba(249,115,22,0.65); }

/* Chat panel — purple to match panel border */
.ch-messages::-webkit-scrollbar { width: 4px; }
.ch-messages::-webkit-scrollbar-track { background: rgba(139,92,246,0.04); }
.ch-messages::-webkit-scrollbar-thumb { background: rgba(139,92,246,0.4); border-radius: 2px; }
.ch-messages::-webkit-scrollbar-thumb:hover { background: rgba(139,92,246,0.65); }

/* ── Loader pulse ── */
#load-msg { animation: pulse-text 1.8s ease-in-out infinite; }
@keyframes pulse-text { 0%,100% { opacity: 0.4; } 50% { opacity: 1; } }
#loader.done #load-msg { animation: none; }

