:root{font-family:Tahoma,"Segoe UI",sans-serif;color:#182f38;background:#edf2f4;font-size:16px;font-synthesis:none;--accent:#087e72;--line:#e2e9ec;--muted:#687d85;--ink:#0c252d}*{box-sizing:border-box}body{margin:0}button,select,input,a{-webkit-tap-highlight-color:transparent}button,select,input{font:inherit}button,a,select,input[type=range]{cursor:pointer}button{transition:background .15s,color .15s}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #00b99e;outline-offset:3px}button{border:0}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}.header{height:76px;background:var(--ink);color:#fff;display:flex;align-items:center;padding:0 28px;gap:28px}.brand{color:#fff;text-decoration:none;display:flex;align-items:center;gap:11px;font-family:"Segoe UI",sans-serif;letter-spacing:.12em;font-size:20px;font-weight:350}.brand b{font-weight:750}.brand-mark{color:#2bd2b4;font-size:37px;line-height:1}.header-label{color:#c0d0d4;border-left:1px solid #3b5158;padding-left:28px;font-size:14px}.header-end{margin-left:auto;display:flex;align-items:center;gap:22px;font-size:13px;color:#adbec4}.header-button{background:#1d3b44;border:1px solid #3b545e;color:#fff;padding:10px 14px;border-radius:6px;font-size:14px}.header-button:hover{background:#294b55}.workspace{display:grid;grid-template-columns:352px minmax(0,1fr);height:calc(100dvh - 76px);min-height:540px}.library{display:flex;flex-direction:column;min-height:0;background:#fff;border-right:1px solid var(--line);z-index:500}.library-head{padding:27px 22px 0}.eyebrow{font:600 12px/1.5 "Segoe UI",sans-serif;letter-spacing:.15em;color:var(--accent)}h1{font-size:26px;line-height:1.4;margin:8px 0 24px;display:flex;align-items:center;gap:12px;font-weight:600}.total{font:600 14px "Segoe UI",sans-serif;border-radius:5px;background:#e6f4f0;color:var(--accent);padding:5px 9px}.filter-row{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px}.filter-row select{border:1px solid #cfdbdf;background:#fff;border-radius:6px;padding:9px 10px;min-width:170px;color:#183c46}.dates{display:flex;gap:10px;margin:16px 0 18px}.dates label{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--muted)}input[type=date]{width:100%;min-width:0;border:1px solid #cfdbdf;border-radius:6px;padding:9px 6px;color:#25414b;background:#fff;font-size:13px}.list-caption{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:16px 0;font-size:13px;color:var(--muted)}.text-button{background:none;padding:4px 0;font-size:13px;color:var(--accent)}.image-list{overflow:auto;flex:1;min-height:0;padding:0 12px 18px}.image-card{width:100%;background:#fff;border:1px solid transparent;border-bottom-color:var(--line);padding:14px 10px;display:flex;align-items:center;gap:13px;text-align:left;color:inherit;border-radius:7px}.image-card:hover{background:#f2f7f7}.image-card.selected{background:#e9f6f2;border-color:#72b9aa}.thumbnail{height:74px;width:84px;border-radius:5px;object-fit:cover;background:#d8e3e6;flex:none}.thumb-unavailable{background:repeating-linear-gradient(135deg,#dce6e9,#dce6e9 10px,#e9eff1 10px,#e9eff1 20px)}.card-info{min-width:0;flex:1}.card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-date{font-size:16px;font-weight:600;white-space:nowrap}.zone-badge{border:1px solid #b7d9d5;color:#087b77;font:600 12px "Segoe UI",sans-serif;padding:3px 5px;border-radius:4px}.zone-badge.warm{color:#b46118;border-color:#eccaa5}.card-name{font:12px/1.5 "Segoe UI",sans-serif;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:7px 0 5px}.card-meta{font-size:12px;color:#71818a}.library-footer{padding:14px 20px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px;color:var(--muted);font-size:12px;line-height:1.6}.library-footer b{font-weight:500;color:#25434c}.message{padding:24px 22px;color:#617983;font-size:14px;line-height:1.8}.message.error{color:#9a3636}.map-section{position:relative;min-width:0;min-height:0;overflow:hidden}#map{height:100%;width:100%;background:#dce5e9}.map-toolbar{position:absolute;top:20px;left:20px;right:20px;z-index:700;display:flex;justify-content:space-between;gap:12px;pointer-events:none}.map-toolbar>*{pointer-events:auto}.map-mode,.map-button{display:flex;align-items:center;gap:9px;background:#fff;box-shadow:0 3px 15px #1837401b;border:1px solid #d7e1e5;border-radius:6px;padding:11px 14px;font-size:14px;color:#304e59}.map-button:hover{background:#f0f8f6}.legend-dot{height:9px;width:9px;border:2px solid;display:inline-block;border-radius:2px}.legend-dot.zone47{color:#008d80}.legend-dot.zone48{color:#d3862f;margin-left:12px}.map-hint{position:absolute;z-index:650;bottom:45px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:14px;background:#ffffffee;padding:12px 18px;border:1px solid #d7e1e5;border-radius:6px;box-shadow:0 3px 15px #1837401b}.map-error{position:absolute;z-index:750;left:20px;top:80px;max-width:390px;font-size:14px;line-height:1.6;background:#fff4e7;color:#865016;border:1px solid #e9d1ad;padding:12px 16px;border-radius:6px}.detail{position:absolute;z-index:700;bottom:42px;right:20px;width:350px;max-height:calc(100% - 120px);overflow:auto;padding:20px;background:#0c252df5;color:#fff;border-radius:9px;box-shadow:0 8px 35px #0a243842}.detail-heading{display:flex;justify-content:space-between;align-items:start}.detail .eyebrow{color:#60d8c2;font-size:12px}.detail h2{font-size:22px;margin:6px 0 0;font-weight:500}.close-button{color:#c4d6dc;background:#28414b;border-radius:5px;width:30px;height:30px;font-size:24px;line-height:1}.filename{overflow-wrap:anywhere;font:13px/1.6 "Segoe UI",sans-serif;color:#a4bec7;margin:12px 0 17px}.detail-stats{border-top:1px solid #35515b;display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:15px}.detail-stats span{color:#a4bec7;font-size:12px;display:block;margin-bottom:7px}.detail-stats strong{font:500 15px "Segoe UI",sans-serif}.opacity-row{display:flex;align-items:center;gap:12px;margin-top:20px;font-size:13px}.opacity-row input{min-width:0;flex:1;accent-color:#35cbb0}.opacity-row output{font-size:12px;width:34px}.raster-status{font-size:12px;line-height:1.6;color:#b0cbd3;margin-bottom:0}.detail-actions{display:flex;gap:16px;border-top:1px solid #35515b;margin-top:16px;padding-top:14px}.detail-actions a{color:#69e0c8;font-size:13px;text-decoration:none}.detail-actions a:hover{text-decoration:underline}.map-scale-label{position:absolute;bottom:8px;left:14px;font:600 11px "Segoe UI",sans-serif;letter-spacing:.08em;color:#39515c;z-index:650;background:#ffffffbb;padding:4px 7px;border-radius:3px}.leaflet-control-zoom{margin-top:80px!important;margin-right:20px!important;border:1px solid #d0dce1!important;box-shadow:0 3px 15px #1837401b!important}.leaflet-control-zoom a{color:#2f515d!important}.leaflet-control-attribution{font-size:11px!important}.leaflet-tooltip{font-family:Tahoma,sans-serif;border:0;box-shadow:0 2px 12px #162d3b30;padding:8px 12px}.noscript{position:fixed;inset:100px 20px auto;background:white;padding:30px;z-index:9999}.leaflet-control-scale{margin-bottom:35px!important}
@media(min-width:1500px){.workspace{grid-template-columns:390px minmax(0,1fr)}.library-head{padding-left:28px;padding-right:28px}.image-list{padding-left:18px;padding-right:18px}}
@media(max-width:900px){.header{padding:0 18px;gap:14px}.header-label{display:none}.header-end{gap:10px}#sync-label{display:none}.workspace{grid-template-columns:310px minmax(0,1fr)}.library-head{padding:20px 16px 0}.detail{width:290px;right:12px;padding:16px}.thumbnail{width:64px;height:66px}.card-date{font-size:14px}.map-hint{white-space:normal;width:80%;text-align:center;bottom:40px}}
@media(max-width:640px){.header{height:64px}.brand{font-size:17px}.brand-mark{font-size:31px}.header-button span{display:none}.header-button{font-size:20px;padding:5px 12px}.workspace{height:auto;min-height:calc(100dvh - 64px);display:flex;flex-direction:column}.library{order:2;height:440px;border-right:0}.map-section{order:1;height:55dvh;min-height:360px}.library-head{padding-top:16px}h1{font-size:23px;margin-bottom:12px}.eyebrow{display:none}.dates{margin:10px 0}.dates input{font-size:14px}.list-caption{padding:9px 0}.image-list{min-height:100px}.image-card{padding:12px 8px}.thumbnail{width:78px}.card-date{font-size:16px}.detail{bottom:30px;width:calc(100% - 24px);max-height:62%;padding:14px;right:12px}.detail .eyebrow{display:block}.detail h2{font-size:19px}.detail-stats{padding-top:9px}.filename{margin:7px 0 10px}.opacity-row{margin-top:12px}.map-toolbar{top:12px;left:12px;right:12px}.map-mode,.map-button{padding:9px 11px;font-size:13px}.map-hint{font-size:13px}.map-scale-label{display:none}.header-end{margin-left:auto}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.area-filter{border-top:1px solid var(--line);padding:12px 0 0}
.area-filter p{font-size:12px;line-height:1.6;color:var(--muted);margin:6px 0 12px}
@media(max-width:640px){.library{height:540px}.area-filter{padding-top:8px}.area-filter p{margin-bottom:8px}}

.place-search{padding:0 0 14px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.place-search>label{display:block;font-size:14px;margin-bottom:8px}
.place-input{display:flex;gap:5px}.place-input input{min-width:0;flex:1;width:100%;padding:9px 7px;font-size:13px;border:1px solid #cfdbdf;border-radius:5px}
.place-input button{background:#087e72;color:#fff;border-radius:5px;font-size:13px;padding:8px}
.place-input #clear-place{background:#e9f0f2;color:#25414b;font-size:20px;padding:4px 9px}
#place-message{font-size:12px;line-height:1.6;color:#526a74;margin:8px 0;overflow-wrap:anywhere}
#place-message:empty{display:none}#place-results{list-style:none;padding:0;margin:8px 0;max-height:160px;overflow:auto}
#place-results:empty{display:none}#place-results button{width:100%;text-align:left;padding:9px;background:#f0f7f5;color:#183c46;border-bottom:1px solid #dbe7e2;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
#place-results button:hover{background:#dceee8}.place-search small{font-size:10px;color:#687d85}.place-search small a{color:#087e72}
.library-head{max-height:70%;overflow:auto;flex-shrink:0}
@media(max-width:640px){.library{height:660px}.library-head{max-height:75%}}

#measure-panel{position:absolute;left:14px;bottom:45px;width:min(300px,calc(100% - 28px));z-index:800;background:#fff;padding:14px;border:1px solid #d7e1e5;border-radius:8px;box-shadow:0 3px 15px #18374030;font-size:13px;max-height:65%;overflow:auto}
.measure-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.measure-heading button{font-size:22px;background:#eef3f4;border-radius:4px;padding:0 8px}
.measure-actions{display:flex;gap:6px}.measure-actions button{background:#eef3f4;color:#25414b;border-radius:5px;padding:8px 10px;font-size:13px}
.measure-actions button[aria-pressed=true]{background:#7936bd;color:#fff}
#measure-help{font-size:12px;line-height:1.6;color:#526a74}#measure-result{font-weight:600;line-height:1.7;color:#6b21a8}
#measure-panel small{display:block;margin-top:10px;font-size:11px;color:#687d85;line-height:1.6}
.measuring{cursor:crosshair!important}.measuring .leaflet-interactive{cursor:crosshair!important}
.map-toolbar{gap:5px}.map-toolbar .map-button{padding:9px;font-size:13px}

#coordinate-panel{position:absolute;top:74px;left:14px;z-index:750;background:#fffffff2;border:1px solid #d7e1e5;border-radius:6px;padding:8px;width:min(390px,calc(100% - 78px));box-shadow:0 2px 10px #18374018}
#coordinate-mode{display:block;font-size:11px;line-height:1.6;color:#526a74;margin-bottom:5px}
.coordinate-row{display:flex;gap:4px;align-items:center}
#coordinate-value{flex:1;width:100%;min-width:0;font:12px "Segoe UI",sans-serif;padding:6px 3px;border:1px solid #d7e1e5;border-radius:4px;color:#25414b;background:#fff;cursor:text}
.coordinate-row button{font-size:11px;padding:7px 6px;border-radius:4px;background:#e8f3f0;color:#08695f;white-space:nowrap}
#coordinate-feedback{display:block;font-size:11px;line-height:1.5;color:#087e72;margin-top:4px}
#coordinate-feedback:empty{display:none}
@media(max-width:640px){#coordinate-panel{top:62px;left:12px;width:calc(100% - 76px)}.coordinate-row{flex-wrap:wrap}#coordinate-value{flex-basis:100%}}

/* Layer Control */
.layer-toggle{
  position:absolute;
  top:20px;
  right:72px;
  z-index:760;
  background:#fff;
  color:#304e59;
  border:1px solid #d7e1e5;
  border-radius:6px;
  padding:9px 12px;
  font-size:13px;
  box-shadow:0 3px 15px #1837401b;
}
.layer-toggle:hover{background:#f0f8f6}

.layer-panel{
  position:absolute;
  top:66px;
  right:20px;
  z-index:800;
  width:290px;
  max-height:calc(100% - 90px);
  overflow:auto;
  background:#fff;
  border:1px solid #d7e1e5;
  border-radius:8px;
  box-shadow:0 5px 24px #18374030;
  padding:14px;
  color:#25414b;
}

.layer-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:8px;
}

.layer-heading strong{
  font-size:16px;
}

.layer-heading button{
  background:#eef3f4;
  color:#25414b;
  border-radius:4px;
  font-size:21px;
  line-height:1;
  padding:3px 8px;
}

.layer-group{
  border-top:1px solid var(--line);
  padding:13px 0;
}

.layer-group-title{
  font:600 11px "Segoe UI",sans-serif;
  letter-spacing:.12em;
  color:var(--muted);
  margin-bottom:10px;
}

.layer-item{
  display:flex;
  align-items:center;
  gap:9px;
  font-size:13px;
  line-height:1.5;
}

.layer-item input{
  width:16px;
  height:16px;
  accent-color:var(--accent);
}

.layer-opacity{
  display:grid;
  grid-template-columns:auto 1fr 38px;
  align-items:center;
  gap:8px;
  margin:12px 0 0 25px;
  font-size:11px;
  color:var(--muted);
}

.layer-opacity input{
  width:100%;
  min-width:0;
  accent-color:var(--accent);
}

.layer-opacity output{
  text-align:right;
}

.layer-empty{
  margin:0;
  padding:9px 10px;
  background:#f3f7f8;
  border-radius:5px;
  color:var(--muted);
  font-size:12px;
  line-height:1.6;
}

@media(max-width:640px){
  .layer-toggle{
    top:12px;
    right:66px;
    padding:9px 10px;
  }

  .layer-panel{
    top:56px;
    right:12px;
    width:min(290px,calc(100% - 24px));
    max-height:65%;
  }
}

/* Terrain Analysis V1 */
.terrain-panel{position:absolute;top:74px;left:14px;width:min(390px,calc(100% - 28px));z-index:820;background:#fff;padding:15px;border:1px solid #d7e1e5;border-radius:9px;box-shadow:0 5px 22px #18374038;font-size:13px;max-height:calc(100% - 118px);overflow:auto;color:#18343d}
.terrain-heading{display:flex;align-items:center;justify-content:space-between;font-size:15px}.terrain-heading button{width:30px;height:30px;border-radius:5px;background:#eef3f4;color:#34515a;font-size:22px}.terrain-note{margin:5px 0 11px;color:#687d85;font-size:12px;line-height:1.5}.terrain-actions{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.terrain-actions button,.terrain-panel button:not(.terrain-clear){border:1px solid #cfdddf;background:#f7faf9;color:#23454d;padding:7px 9px;border-radius:5px;font-size:12px}.terrain-actions button:hover,.terrain-panel button:not(.terrain-clear):hover{background:#e8f5f1}.terrain-actions button:disabled{opacity:.5}.terrain-status{min-height:18px;margin:6px 0;color:#47636b;font-size:12px;line-height:1.5}.terrain-field{display:flex;flex-direction:column;gap:5px;color:#516a72;font-size:12px;min-width:0}.terrain-field select,.terrain-field input{width:100%;min-width:0;border:1px solid #cfdbdf;border-radius:5px;background:#fff;padding:7px 8px;color:#18343d;font-size:13px}.terrain-form-row,.terrain-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:8px 0}.terrain-metrics>div,.terrain-results>div{min-width:0;border-radius:5px;background:#f2f7f7;padding:7px 9px}.terrain-metrics span,.terrain-results span{display:block;color:#71828a;font-size:11px}.terrain-metrics strong,.terrain-results strong{display:block;margin-top:3px;font-size:13px;overflow-wrap:anywhere}.terrain-run button{background:#087e72!important;color:#fff!important;border-color:#087e72!important;font-weight:600}.terrain-results{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:9px 0}.terrain-clear{border:0;background:none;color:#9a4545;padding:5px 0;font-size:12px}.terrain-contour-label{display:block;white-space:nowrap;background:#fffd;padding:1px 3px;border-radius:3px;border:1px solid #b8c7c8;color:#27545a;font:600 10px/1.2 Tahoma,sans-serif;transform-origin:center;box-shadow:0 1px 3px #102c3033}.terrain-contour-label.index{background:#fff3df;border-color:#d3862f;color:#914b09;font-weight:700}.terrain-label-icon{background:transparent;border:0}.terrain-vertex-icon{background:#fff;border:2px solid #087e72;border-radius:50%;box-shadow:0 1px 5px #1238;width:14px!important;height:14px!important;margin:-7px!important}.terrain-drawing{cursor:crosshair!important}
.map-toolbar{flex-wrap:wrap;align-items:flex-start}.map-toolbar #fit{margin-left:auto}
@media(max-width:640px){.terrain-panel{top:102px;left:12px;width:min(390px,calc(100% - 24px));max-height:calc(100% - 120px);padding:12px}.map-toolbar{gap:5px}.map-toolbar #fit{margin-left:0}.terrain-actions button{padding:8px 9px}.terrain-results{grid-template-columns:1fr 1fr}}

.terrain-draw-bar{position:absolute;left:50%;bottom:48px;transform:translateX(-50%);z-index:900;display:flex;align-items:center;gap:7px;max-width:calc(100% - 20px);padding:8px 10px;background:#fff;border:1px solid #cbd9dc;border-radius:7px;box-shadow:0 4px 15px #18374038;font-size:12px;white-space:nowrap}.terrain-draw-bar[hidden]{display:none!important}.terrain-draw-bar button{background:#087e72;color:#fff;border-radius:5px;padding:7px 9px;font-size:12px}.terrain-draw-bar button:last-child{background:#eff3f4;color:#37535b}.terrain-draw-bar button:disabled{opacity:.5}@media(max-width:640px){.terrain-draw-bar{bottom:40px;gap:5px;padding:7px;font-size:11px}.terrain-draw-bar button{padding:8px 7px}}

/* Keep the existing layer manager operable above the Terrain panel. */
.layer-panel{z-index:860}.layer-toggle{z-index:870}

.terrain-edit-bar{display:flex}

/* Elevation Profile V1 is isolated from the polygon Terrain V1 panel/layers. */
.profile-toolbar-button{position:absolute;top:62px;right:78px;z-index:710;box-shadow:0 3px 15px #1837401b;border:1px solid #d7e1e5;border-radius:6px;padding:9px 12px;background:#fff;color:#304e59;font-size:13px}
.profile-panel{position:absolute;top:104px;right:14px;width:min(380px,calc(100% - 120px));z-index:825;background:#fff;padding:15px;border:1px solid #d7e1e5;border-radius:9px;box-shadow:0 5px 22px #18374038;font-size:13px;max-height:calc(100% - 148px);overflow:auto;color:#18343d}
.profile-panel button:not(.terrain-clear){border:1px solid #cfdddf;background:#f7faf9;color:#23454d;padding:7px 9px;border-radius:5px;font-size:12px}
.profile-panel button:hover{background:#e8f5f1}.profile-panel .terrain-run button:first-child{background:#087e72;color:#fff;border-color:#087e72;font-weight:600}
.profile-results{margin-top:8px}.profile-results .terrain-metrics{grid-template-columns:1fr 1fr;margin:7px 0}
#profile-chart{display:block;width:100%;height:auto;min-height:180px;background:#fbfdfd;border:1px solid #e2e9ec;border-radius:6px;touch-action:pan-y}
#profile-chart .profile-grid{stroke:#e5ecee;stroke-width:1}#profile-chart .profile-axis{stroke:#789098;stroke-width:1.2}
#profile-chart .profile-line{fill:none;stroke:#087e72;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
#profile-chart .profile-label{fill:#526b73;font:12px Tahoma,sans-serif}#profile-chart .profile-title{fill:#264750;font:600 12px Tahoma,sans-serif}
.profile-draw-bar{bottom:48px}
.profile-drawing{cursor:crosshair!important}.profile-vertex-icon{background:#fff;border:2px solid #6b4cc2;border-radius:50%;box-shadow:0 1px 5px #1238;width:14px!important;height:14px!important;margin:-7px!important}
@media(max-width:640px){.profile-toolbar-button{top:58px;right:70px;padding:8px 9px;font-size:12px}.profile-panel{top:104px;right:12px;left:auto;width:min(380px,calc(100% - 96px));max-height:calc(100% - 144px);padding:12px}.profile-panel .terrain-actions button{padding:8px}.profile-draw-bar{bottom:40px;left:50%;max-width:calc(100% - 16px);white-space:normal}}

/* Preserve a clear right-side strip for Leaflet controls on narrow phones. */
@media(max-width:420px){.terrain-panel{width:min(320px,calc(100% - 88px));}}

/* Raster Analysis V1 is visually and state-wise separate from Contour/Profile. */
.raster-toolbar-button{position:absolute;top:104px;right:72px;z-index:710;box-shadow:0 3px 15px #1837401b;border:1px solid #d7e1e5;border-radius:6px;padding:9px 12px;background:#fff;color:#49336d;font-size:13px}
.raster-panel{position:absolute;top:150px;right:14px;width:min(400px,calc(100% - 120px));z-index:835;background:#fff;padding:15px;border:1px solid #ded5eb;border-radius:9px;box-shadow:0 5px 22px #18374038;font-size:13px;max-height:calc(100% - 194px);overflow:auto;color:#302641}
.raster-panel button:not(.terrain-clear){border:1px solid #d7cde5;background:#faf8fc;color:#49336d;padding:7px 9px;border-radius:5px;font-size:12px}
.raster-panel button:hover{background:#f1ebf8}.raster-panel .terrain-run button:first-child{background:#7046a5;color:#fff;border-color:#7046a5;font-weight:600}
.raster-panel .terrain-field select{border-color:#d7cde5}.raster-opacity{display:flex;align-items:center;gap:8px;margin:9px 0;color:#5e536c;font-size:12px}.raster-opacity input{min-width:40px;flex:1;accent-color:#7046a5}.raster-opacity output{width:38px;text-align:right}
.raster-legend{margin:10px 0 6px}.raster-legend>strong{display:block;margin-bottom:5px;font-size:12px;color:#423552}.raster-legend-ramp{height:12px;border:1px solid #887d9677;border-radius:3px}.raster-legend-ramp.slope{background:linear-gradient(90deg,#1c9b65 0%,#d7d84e 45%,#f39a36 72%,#b32a2a 100%)}.raster-legend-ramp.aspect{background:conic-gradient(from 0deg,#ef3b2c,#e8d63c,#3d9c4e,#25a4bf,#5140ae,#cf35a1,#ef3b2c)}.raster-legend-ramp.hillshade{background:linear-gradient(90deg,#161616,#f4f4f4)}.raster-legend-labels{display:flex;justify-content:space-between;gap:4px;margin-top:3px;color:#746d7d;font-size:10px}.raster-legend-labels span{white-space:nowrap}
.raster-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:9px 0}.raster-stats>div{min-width:0;background:#f5f2f8;border-radius:5px;padding:7px 9px}.raster-stats span{display:block;color:#756c7f;font-size:11px}.raster-stats strong{display:block;margin-top:3px;font-size:13px;overflow-wrap:anywhere}.raster-coverage-note{margin:7px 0;padding:7px 9px;border-radius:5px;background:#f7f4fa;color:#5d526c;font-size:11px;line-height:1.5}.raster-download{display:inline-block;margin:2px 0 5px;padding:8px 11px;border-radius:5px;background:#7046a5;color:#fff;text-decoration:none;font-size:12px;font-weight:600}.raster-download:hover{background:#5b388d}.raster-vertex-icon{background:#fff;border:2px solid #7046a5;border-radius:50%;box-shadow:0 1px 5px #1238;width:14px!important;height:14px!important;margin:-7px!important}.raster-drawing{cursor:crosshair!important}.raster-draw-bar{bottom:48px}
@media(max-width:640px){.raster-toolbar-button{top:102px;right:70px;padding:8px 9px;font-size:12px}.raster-panel{top:146px;right:12px;left:auto;width:min(380px,calc(100% - 96px));max-height:calc(100% - 184px);padding:12px}.raster-panel .terrain-actions button{padding:8px}.raster-draw-bar{bottom:40px;left:50%;max-width:calc(100% - 16px);white-space:normal}}
@media(max-width:420px){.raster-panel{width:min(320px,calc(100% - 88px));}}

/* Unified Terrain Analysis panel */
.terrain-panel{position:absolute;top:74px;left:14px;right:auto;width:min(410px,calc(100% - 28px));z-index:835;background:#fff;padding:14px;border:1px solid #d7e1e5;border-radius:9px;box-shadow:0 5px 22px #18374038;font-size:13px;max-height:calc(100% - 118px);overflow:auto;color:#18343d}
.terrain-tabs{display:flex;gap:5px;border-bottom:1px solid #e2e9ec;margin:8px 0 10px;padding-bottom:7px;position:sticky;top:-14px;background:#fff;z-index:2}
.terrain-tab{flex:1;min-width:0;padding:8px 6px;border-radius:6px;background:#f3f6f7;color:#39545d;font-size:13px;font-weight:600}
.terrain-tab.active,.terrain-tab[aria-selected="true"]{background:#087e72;color:#fff}
.terrain-tab-pane[hidden]{display:none!important}
.terrain-panel>.terrain-tab-pane{position:static;width:auto;max-height:none;overflow:visible;padding:0;border:0;border-radius:0;box-shadow:none}
.terrain-panel .terrain-heading{position:sticky;top:-14px;z-index:3;background:#fff;padding:0 0 6px}
.layer-group.terrain-layers .layer-group-title{font-weight:700}
.terrain-layer-subtitle{margin:8px 0 3px;color:#71828a;font-size:10px;font-weight:700;letter-spacing:.08em}
@media(max-width:640px){.terrain-panel{top:auto;bottom:12px;left:12px;right:12px;width:auto;max-height:min(35dvh,calc(100% - 122px));padding:12px;border-radius:12px}.terrain-tabs{top:-12px}.terrain-panel .terrain-heading{top:-12px}.terrain-draw-bar{bottom:calc(env(safe-area-inset-bottom,0px) + 12px)}.map-section.terrain-panel-open .leaflet-bottom.leaflet-right{bottom:calc(35dvh + 20px)}.map-section.terrain-panel-open .leaflet-control-zoom{margin-top:0!important;margin-right:12px!important}}
@media(max-width:420px){.terrain-panel{left:8px;right:8px;padding:10px}.terrain-tabs button{padding:9px 4px;font-size:12px}}
@media(max-width:640px){.map-section.terrain-panel-open.terrain-layers-open .leaflet-bottom.leaflet-right{left:12px;right:auto;bottom:calc(35dvh - 24px)}.map-section.terrain-panel-open.terrain-layers-open .leaflet-control-zoom{margin-left:0!important;margin-right:0!important}}

/* Hydrology V1 stays in the unified Terrain panel and owns independent layers. */
.hydrology-pane .terrain-run button{background:#146d91!important;border-color:#146d91!important}
.hydrology-warning{margin:7px 0;padding:7px 9px;border-left:3px solid #d49032;background:#fff8e9;color:#72501d;font-size:11px;line-height:1.45}
.hydrology-pane .terrain-form-row{align-items:stretch}.hydrology-pane .terrain-form-row>div{padding:7px 9px;border-radius:5px;background:#f2f7f7}
.hydrology-pane #hydrology-resolution,.hydrology-pane #hydrology-coverage{display:block;margin-top:5px;color:#274d58;font-size:12px;overflow-wrap:anywhere}
.hydrology-confirm{margin:9px 0;padding:10px;border:1px solid #e8a04f;border-radius:7px;background:#fff8ee;color:#563d24;line-height:1.5}
.hydrology-confirm>strong{display:block;color:#81460c}.hydrology-confirm p{margin:6px 0;font-size:12px}
.hydrology-confirm button:first-child{background:#c76816!important;border-color:#c76816!important;color:#fff!important;font-weight:700}
.hydrology-confirm button:last-child{color:#8a3f36}.hydrology-confirm button:disabled{opacity:.55}
.hydrology-opacity{display:flex;align-items:center;gap:8px;margin:8px 0;color:#516a72;font-size:12px}.hydrology-opacity input{min-width:40px;flex:1;accent-color:#146d91}.hydrology-opacity output{width:40px;text-align:right}
.hydrology-exports{margin-top:9px}.hydrology-exports>strong{display:block;margin-bottom:5px;color:#516a72;font-size:12px}
.hydrology-download{display:inline-block;margin:2px;padding:7px 9px;border:1px solid #cfdddf;border-radius:5px;background:#f7faf9;color:#23454d;text-decoration:none;font-size:11px}
.hydrology-download:hover{background:#e8f5f1}.hydrology-vertex-icon{background:#fff;border:2px solid #137d92;border-radius:50%;box-shadow:0 1px 5px #1238;width:16px!important;height:16px!important;margin:-8px!important}
.hydrology-drawing,.hydrology-outlet-select{cursor:crosshair!important}.hydrology-marker-label{padding:2px 5px;border:1px solid #9aadb5;border-radius:4px;background:#fff;color:#263e47;font-size:11px;font-weight:700;box-shadow:0 1px 4px #102c3033}
.hydrology-map-bar button:first-of-type{background:#146d91}.hydrology-map-bar button:last-child{background:#eff3f4;color:#37535b}
@media(max-width:640px){.hydrology-pane .terrain-actions button{padding:8px 7px}.hydrology-map-bar{max-width:calc(100% - 16px);white-space:normal}.hydrology-confirm{padding:8px}}
@media(max-width:420px){.hydrology-pane .terrain-form-row{grid-template-columns:1fr 1fr;gap:6px}.hydrology-pane .terrain-actions{gap:5px}.hydrology-pane .terrain-actions button{font-size:11px;padding:8px 6px}.hydrology-download{padding:7px 6px;font-size:10px}}
