/* ============================================================
   GEOINFOWORLD
   Professional Experience Polish v1
   ============================================================ */


/* ------------------------------------------------------------
   LAYER CARD
   ------------------------------------------------------------ */

.giw-layer {
  padding-bottom:
    5px !important;
}


.giw-layer-main {
  display:
    block !important;

  width:
    100% !important;

  min-width:
    0 !important;
}


.giw-layer-label {
  display:
    grid !important;

  grid-template-columns:
    auto minmax(0,1fr) !important;

  gap:
    7px !important;

  align-items:
    start !important;

  width:
    100% !important;

  min-width:
    0 !important;
}


.giw-layer-label strong {
  display:
    block;

  overflow:
    hidden;

  text-overflow:
    ellipsis;

  white-space:
    normal;

  line-height:
    1.3;
}


.giw-layer-label small {
  display:
    block;

  margin-top:
    3px;

  line-height:
    1.35;
}


/* ------------------------------------------------------------
   LAYER ACTION GRID
   All actions remain visible inside sidebar.
   ------------------------------------------------------------ */

.giw-layer-tools {
  width:
    100% !important;

  display:
    grid !important;

  grid-template-columns:
    repeat(
      3,
      minmax(0,1fr)
    ) !important;

  gap:
    4px !important;

  margin-top:
    7px !important;

  padding:
    0 !important;

  opacity:
    1 !important;
}


.giw-layer-tools button {
  width:
    100% !important;

  min-width:
    0 !important;

  min-height:
    27px !important;

  padding:
    3px 4px !important;

  overflow:
    hidden;

  text-overflow:
    ellipsis;

  white-space:
    nowrap;

  font-size:
    .57rem !important;

  line-height:
    1.1;
}


.giw-layer-tools button:hover {
  overflow:
    visible;
}


/* ------------------------------------------------------------
   OPACITY
   ------------------------------------------------------------ */

.giw-layer input[type="range"] {
  max-width:
    100%;
}


.giw-layer:has(
  input[data-giw-layer]:checked
) {
  box-shadow:
    inset 2px 0 0
    rgba(69,212,255,.55);
}


/* ------------------------------------------------------------
   SPATIAL TOOL DOCK
   Professional centered command rail.
   ------------------------------------------------------------ */

.giw-spatial-dock {
  top:
    50% !important;

  bottom:
    auto !important;

  left:
    14px !important;

  transform:
    translateY(-50%) !important;

  width:
    46px !important;

  max-height:
    calc(100% - 175px) !important;

  display:
    flex !important;

  flex-direction:
    column !important;

  gap:
    0 !important;

  padding:
    5px !important;

  overflow-x:
    visible !important;

  overflow-y:
    auto !important;

  border:
    1px solid
    rgba(180,210,240,.13) !important;

  border-radius:
    14px !important;

  background:
    linear-gradient(
      180deg,
      rgba(6,19,33,.92),
      rgba(5,15,27,.88)
    ) !important;

  backdrop-filter:
    blur(18px)
    saturate(125%);

  box-shadow:
    0 18px 50px
    rgba(0,0,0,.28);

  scrollbar-width:
    none;
}


.giw-spatial-dock::-webkit-scrollbar {
  display:
    none;
}


.giw-spatial-dock-group {
  width:
    100%;

  display:
    grid !important;

  gap:
    2px !important;

  padding:
    5px 0 !important;

  border:
    0 !important;

  border-bottom:
    1px solid
    rgba(180,210,240,.07) !important;
}


.giw-spatial-dock-group:last-child {
  border-bottom:
    0 !important;
}


.giw-spatial-tool {
  width:
    34px !important;

  height:
    32px !important;

  min-height:
    32px !important;

  margin:
    0 auto;

  border-radius:
    8px !important;

  font-size:
    13px;
}


.giw-zoom-button {
  font-size:
    18px !important;
}


/* ------------------------------------------------------------
   TOOLTIP
   ------------------------------------------------------------ */

.giw-spatial-tool::after {
  left:
    42px !important;

  z-index:
    500 !important;

  padding:
    6px 9px !important;

  border-radius:
    7px !important;

  color:
    #d5e8f4 !important;

  background:
    rgba(4,14,25,.97) !important;

  box-shadow:
    0 10px 28px
    rgba(0,0,0,.32);
}


/* ------------------------------------------------------------
   MAP COMMAND BAR
   ------------------------------------------------------------ */

.giw-map-commandbar {
  top:
    14px !important;

  left:
    14px !important;

  gap:
    5px !important;
}


.giw-map-command {
  min-height:
    34px !important;

  border-radius:
    9px !important;

  box-shadow:
    0 8px 25px
    rgba(0,0,0,.18);
}


/* ------------------------------------------------------------
   CARTOGRAPHY COMMANDS
   Visually separate from app commands.
   ------------------------------------------------------------ */

.giw-cartography-control {
  top:
    14px !important;

  left:
    250px !important;

  padding-left:
    10px;

  border-left:
    1px solid
    rgba(180,210,240,.10);
}


.giw-cartography-button {
  min-height:
    34px !important;

  padding:
    6px 10px !important;

  font-size:
    .68rem;

  border-radius:
    9px !important;
}


/* ------------------------------------------------------------
   MAP BOTTOM HUD
   ------------------------------------------------------------ */

.giw-map-hud,
.giw-earth-context,
.giw-cartography-status {
  border-color:
    rgba(180,210,240,.10) !important;

  background:
    rgba(5,15,27,.76) !important;

  box-shadow:
    0 8px 25px
    rgba(0,0,0,.18);
}


/* ------------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------------ */

@media (max-height: 760px) {

  .giw-spatial-dock {
    max-height:
      calc(100% - 115px) !important;
  }


  .giw-spatial-tool {
    height:
      29px !important;

    min-height:
      29px !important;
  }

}


@media (max-width: 850px) {

  .giw-cartography-control {
    left:
      14px !important;

    top:
      56px !important;

    padding-left:
      0;

    border-left:
      0;
  }

}

/* ============================================================
   GEOINFOWORLD FINAL EXPERIENCE R4
   ============================================================ */

/* ============================================================
   GEOINFOWORLD FINAL EXPERIENCE R4
   ============================================================ */


/* ------------------------------------------------------------
   ONE ZOOM SYSTEM
   GeoInfoWorld command rail is canonical.
   ------------------------------------------------------------ */

#giw-map .ol-zoom,
.giw-map .ol-zoom {
  display: none !important;
}


/* ------------------------------------------------------------
   KNOWLEDGE BROWSER
   Prevent right-edge clipping.
   ------------------------------------------------------------ */

.giw-sidebar {
  scrollbar-gutter:
    stable !important;

  box-sizing:
    border-box !important;
}


.giw-semantic-browser {
  width:
    100% !important;

  padding-left:
    9px !important;

  padding-right:
    18px !important;

  box-sizing:
    border-box !important;
}


.giw-tree-scope,
.giw-tree-category,
.giw-tree-subcategory,
.giw-tree-layers,
.giw-layer {
  width:
    100% !important;

  max-width:
    100% !important;

  box-sizing:
    border-box !important;
}


.giw-tree-layers {
  padding-left:
    4px !important;

  padding-right:
    3px !important;
}


.giw-layer {
  overflow:
    hidden !important;
}


/* ------------------------------------------------------------
   LAYER ACTION MATRIX
   ------------------------------------------------------------ */

.giw-layer-tools {
  width:
    100% !important;

  display:
    grid !important;

  grid-template-columns:
    repeat(
      3,
      minmax(0,1fr)
    ) !important;

  gap:
    4px !important;

  box-sizing:
    border-box !important;
}


.giw-layer-tools button {
  width:
    100% !important;

  min-width:
    0 !important;

  min-height:
    27px !important;

  padding:
    3px 2px !important;

  overflow:
    hidden !important;

  border-radius:
    6px !important;

  font-size:
    .54rem !important;

  line-height:
    1.1 !important;

  text-overflow:
    ellipsis !important;

  white-space:
    nowrap !important;
}


.giw-layer input[type="range"] {
  width:
    calc(100% - 8px) !important;

  max-width:
    calc(100% - 8px) !important;
}


/* ------------------------------------------------------------
   SIGNATURE SPATIAL COMMAND RAIL
   Compact, centered and grouped.
   ------------------------------------------------------------ */

.giw-spatial-dock {
  top:
    50% !important;

  bottom:
    auto !important;

  left:
    14px !important;

  transform:
    translateY(-50%) !important;

  width:
    45px !important;

  max-height:
    min(
      68vh,
      660px
    ) !important;

  padding:
    5px !important;

  overflow-x:
    visible !important;

  overflow-y:
    auto !important;

  border-radius:
    15px !important;

  scrollbar-width:
    none !important;
}


.giw-spatial-dock::-webkit-scrollbar {
  display:
    none;
}


.giw-spatial-dock-group {
  width:
    100% !important;

  padding:
    4px 0 !important;

  gap:
    2px !important;

  border-bottom:
    1px solid
    rgba(180,210,240,.065)
    !important;
}


.giw-spatial-dock-group:last-child {
  border-bottom:
    0 !important;
}


.giw-spatial-tool {
  width:
    33px !important;

  height:
    31px !important;

  min-height:
    31px !important;

  margin:
    0 auto !important;
}


.giw-zoom-group {
  order:
    -1000 !important;

  padding-top:
    0 !important;
}


.giw-zoom-button {
  font-size:
    18px !important;
}


/* ------------------------------------------------------------
   TOP MAP COMMAND HIERARCHY
   ------------------------------------------------------------ */

.giw-map-commandbar {
  top:
    14px !important;

  left:
    14px !important;
}


.giw-cartography-control {
  top:
    14px !important;

  left:
    252px !important;

  display:
    flex !important;

  gap:
    5px !important;

  padding-left:
    11px !important;

  border-left:
    1px solid
    rgba(180,210,240,.11)
    !important;
}


/* ------------------------------------------------------------
   DESKTOP SIDEBAR WIDTH
   ------------------------------------------------------------ */

@media (min-width: 1200px) {

  .giw-app-shell
  > .giw-layout {
    grid-template-columns:
      380px
      minmax(0,1fr)
      !important;
  }


  .giw-app-shell
  .giw-sidebar {
    width:
      380px !important;
  }

}


@media
(
  min-width: 851px
)
and
(
  max-width: 1199px
) {

  .giw-app-shell
  > .giw-layout {
    grid-template-columns:
      355px
      minmax(0,1fr)
      !important;
  }


  .giw-app-shell
  .giw-sidebar {
    width:
      355px !important;
  }

}


/* GEOINFOWORLD FINAL EXPERIENCE R4 */


/* ------------------------------------------------------------
   ONE ZOOM SYSTEM
   ------------------------------------------------------------ */

#giw-map .ol-zoom,
.giw-map .ol-zoom {
  display: none !important;
}


/* ------------------------------------------------------------
   KNOWLEDGE BROWSER
   ------------------------------------------------------------ */

.giw-sidebar {
  scrollbar-gutter:
    stable !important;

  box-sizing:
    border-box !important;
}


.giw-semantic-browser {
  width:
    100% !important;

  padding-left:
    9px !important;

  padding-right:
    18px !important;

  box-sizing:
    border-box !important;
}


.giw-tree-scope,
.giw-tree-category,
.giw-tree-subcategory,
.giw-tree-layers,
.giw-layer {
  width:
    100% !important;

  max-width:
    100% !important;

  box-sizing:
    border-box !important;
}


.giw-tree-layers {
  padding-left:
    4px !important;

  padding-right:
    3px !important;
}


.giw-layer {
  overflow:
    hidden !important;
}


/* ------------------------------------------------------------
   LAYER ACTION GRID
   ------------------------------------------------------------ */

.giw-layer-tools {
  width:
    100% !important;

  display:
    grid !important;

  grid-template-columns:
    repeat(
      3,
      minmax(0,1fr)
    ) !important;

  gap:
    4px !important;

  box-sizing:
    border-box !important;
}


.giw-layer-tools button {
  width:
    100% !important;

  min-width:
    0 !important;

  min-height:
    27px !important;

  padding:
    3px 2px !important;

  overflow:
    hidden !important;

  border-radius:
    6px !important;

  font-size:
    .54rem !important;

  line-height:
    1.1 !important;

  text-overflow:
    ellipsis !important;

  white-space:
    nowrap !important;
}


.giw-layer input[type="range"] {
  width:
    calc(100% - 8px) !important;

  max-width:
    calc(100% - 8px) !important;
}


/* ------------------------------------------------------------
   SIGNATURE COMMAND RAIL
   ------------------------------------------------------------ */

.giw-spatial-dock {
  top:
    50% !important;

  bottom:
    auto !important;

  left:
    14px !important;

  transform:
    translateY(-50%) !important;

  width:
    45px !important;

  max-height:
    min(68vh,660px) !important;

  padding:
    5px !important;

  overflow-x:
    visible !important;

  overflow-y:
    auto !important;

  border-radius:
    15px !important;

  scrollbar-width:
    none !important;
}


.giw-spatial-dock::-webkit-scrollbar {
  display:
    none;
}


.giw-spatial-dock-group {
  width:
    100% !important;

  padding:
    4px 0 !important;

  gap:
    2px !important;

  border-bottom:
    1px solid
    rgba(180,210,240,.065)
    !important;
}


.giw-spatial-dock-group:last-child {
  border-bottom:
    0 !important;
}


.giw-spatial-tool {
  width:
    33px !important;

  height:
    31px !important;

  min-height:
    31px !important;

  margin:
    0 auto !important;
}


.giw-zoom-group {
  order:
    -1000 !important;

  padding-top:
    0 !important;
}


.giw-zoom-button {
  font-size:
    18px !important;
}


/* ------------------------------------------------------------
   MAP TOP COMMAND HIERARCHY
   ------------------------------------------------------------ */

.giw-map-commandbar {
  top:
    14px !important;

  left:
    14px !important;
}


.giw-cartography-control {
  top:
    14px !important;

  left:
    252px !important;

  display:
    flex !important;

  gap:
    5px !important;

  padding-left:
    11px !important;

  border-left:
    1px solid
    rgba(180,210,240,.11)
    !important;
}


/* ------------------------------------------------------------
   DESKTOP SIDEBAR WIDTH
   ------------------------------------------------------------ */

@media (min-width: 1200px) {

  .giw-app-shell
  > .giw-layout {
    grid-template-columns:
      380px
      minmax(0,1fr)
      !important;
  }


  .giw-app-shell
  .giw-sidebar {
    width:
      380px !important;
  }

}


@media
  (min-width: 851px)
  and
  (max-width: 1199px) {

  .giw-app-shell
  > .giw-layout {
    grid-template-columns:
      355px
      minmax(0,1fr)
      !important;
  }


  .giw-app-shell
  .giw-sidebar {
    width:
      355px !important;
  }

}


/* GEOINFOWORLD UI LOCK R5 */


/* ============================================================
   LAYER CARDS — CANONICAL 3-COLUMN ACTION GRID
   ============================================================ */

.giw-layer {
  width: 100% !important;
  max-width: 100% !important;

  box-sizing: border-box !important;

  overflow: hidden !important;
}


.giw-layer-tools {
  display: grid !important;

  grid-template-columns:
    repeat(3, minmax(0, 1fr))
    !important;

  grid-auto-flow: row !important;
  grid-auto-columns: unset !important;

  width: 100% !important;
  max-width: 100% !important;

  height: auto !important;
  min-height: 0 !important;

  gap: 4px !important;

  margin: 7px 0 0 0 !important;
  padding: 0 !important;

  box-sizing: border-box !important;

  align-items: stretch !important;
  justify-items: stretch !important;
}


.giw-layer-tools > * {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;

  margin: 0 !important;

  box-sizing: border-box !important;
}


.giw-layer-tools button {
  display: block !important;

  width: 100% !important;
  min-width: 0 !important;

  min-height: 27px !important;
  height: 27px !important;

  padding: 3px 3px !important;

  overflow: hidden !important;

  border-radius: 6px !important;

  font-size: .54rem !important;
  line-height: 1 !important;

  text-align: center !important;

  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}


/*
 * No action is allowed to span the full row.
 */

.giw-layer-tools
[data-giw-executive],

.giw-layer-tools
[data-giw-visualize],

.giw-layer-tools
[data-giw-analyze],

.giw-layer-tools
[data-giw-open-table] {
  grid-column: auto !important;
}


/* ============================================================
   SIDEBAR — PREVENT RIGHT EDGE CLIPPING
   ============================================================ */

.giw-semantic-browser {
  width: 100% !important;

  padding-left: 8px !important;
  padding-right: 20px !important;

  box-sizing: border-box !important;
}


.giw-tree-layers {
  width: 100% !important;

  padding-left: 3px !important;
  padding-right: 3px !important;

  box-sizing: border-box !important;
}


/* ============================================================
   COMMAND RAIL — CONTENT HEIGHT ONLY
   ============================================================ */

.giw-spatial-dock {
  top: 50% !important;
  bottom: auto !important;

  left: 14px !important;

  transform:
    translateY(-50%)
    !important;


  display: flex !important;

  flex-direction: column !important;

  align-items: center !important;
  justify-content: flex-start !important;


  width: 45px !important;

  height: auto !important;
  min-height: 0 !important;

  max-height:
    calc(100vh - 190px)
    !important;


  padding: 5px !important;

  gap: 0 !important;


  overflow-x: visible !important;
  overflow-y: auto !important;


  border-radius: 15px !important;

  box-sizing: border-box !important;

  scrollbar-width: none !important;
}


.giw-spatial-dock::-webkit-scrollbar {
  display: none !important;
}


.giw-spatial-dock-group {
  display: grid !important;

  flex:
    0 0 auto
    !important;

  width: 100% !important;

  height: auto !important;
  min-height: 0 !important;

  grid-auto-rows: auto !important;

  align-content: start !important;
  justify-content: center !important;

  gap: 2px !important;

  margin: 0 !important;

  padding: 4px 0 !important;

  box-sizing: border-box !important;

  border-bottom:
    1px solid
    rgba(180,210,240,.065)
    !important;
}


.giw-spatial-dock-group:last-child {
  border-bottom: 0 !important;
}


.giw-spatial-tool {
  flex: 0 0 auto !important;

  width: 33px !important;

  height: 31px !important;
  min-height: 31px !important;
  max-height: 31px !important;

  margin: 0 auto !important;

  padding: 0 !important;

  box-sizing: border-box !important;
}


.giw-zoom-group {
  order: -1000 !important;
}


/* ============================================================
   KEEP OPENLAYERS ZOOM HIDDEN
   ============================================================ */

#giw-map .ol-zoom,
.giw-map .ol-zoom {
  display: none !important;
}


/* ============================================================
   SHORT SCREENS
   ============================================================ */

@media (max-height: 760px) {

  .giw-spatial-dock {
    max-height:
      calc(100vh - 120px)
      !important;
  }


  .giw-spatial-tool {
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
  }

}

/* GEOINFOWORLD MICRO ALIGNMENT R6 */

.giw-tree-layers .giw-layer {
  position: relative !important;

  left: -2px !important;
  top: -1px !important;

  width:
    calc(100% - 2px)
    !important;
}
