/*
  Mapa Inwestycji Gminy Psary
  v0.8.14 — CALM GRID HIERARCHY
  Visual-only override. No changes to data/auth/map logic.
*/
:root{
  --cg-edge: 12px;
  --cg-gap: 12px;
  --cg-header-top: 8px;
  --cg-header-h: 56px;
  --cg-content-top: calc(var(--cg-header-top) + var(--cg-header-h) + var(--cg-gap));
  --cg-left-w: 308px;
  --cg-detail-w: 332px;
  --cg-radius: 22px;
  --cg-inner-radius: 16px;
  --cg-border: rgba(34,72,104,.11);
  --cg-border-soft: rgba(34,72,104,.075);
  --cg-blue: #177fc9;
  --cg-green: #68c441;
  --cg-scroll-w: 4px;
}

/* === One calm outer grid === */
#topbar.topbar{
  top:var(--cg-header-top)!important;
  left:var(--cg-edge)!important;
  right:var(--cg-edge)!important;
  height:var(--cg-header-h)!important;
  min-height:var(--cg-header-h)!important;
  border-radius:var(--cg-radius)!important;
}
.public-sidebar{
  top:var(--cg-content-top)!important;
  left:var(--cg-edge)!important;
  bottom:var(--cg-edge)!important;
  width:var(--cg-left-w)!important;
  padding:16px!important;
  gap:0!important;
  border-radius:var(--cg-radius)!important;
  overflow:hidden!important;
  background:rgba(255,255,255,.965)!important;
}
.map-top-controls{
  top:var(--cg-content-top)!important;
  left:calc(var(--cg-edge) + var(--cg-left-w) + var(--cg-gap))!important;
  right:var(--cg-edge)!important;
  min-height:56px!important;
  height:56px!important;
  padding:8px 10px!important;
  border-radius:var(--cg-radius)!important;
}
#detailPanel,.detail-panel{
  top:var(--cg-content-top)!important;
  right:var(--cg-edge)!important;
  bottom:var(--cg-edge)!important;
  width:var(--cg-detail-w)!important;
  border-radius:var(--cg-radius)!important;
}
body:has(#detailPanel[aria-hidden="false"]) .map-top-controls{
  right:calc(var(--cg-edge) + var(--cg-detail-w) + var(--cg-gap))!important;
}

/* === Left panel: ONE island, not islands inside islands === */
.sidebar-hero{
  flex:0 0 auto!important;
  padding:0 0 14px!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.sidebar-hero h1{
  margin:0 0 5px!important;
  font-size:20px!important;
  line-height:1.08!important;
}
.sidebar-hero p{margin:0!important;}
.list-section{
  flex:1 1 auto!important;
  min-height:0!important;
  display:grid!important;
  grid-template-rows:auto auto minmax(0,1fr)!important;
  gap:9px!important;
  padding:14px 0 0!important;
  margin:0!important;
  border:0!important;
  border-top:1px solid var(--cg-border-soft)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
.list-heading{margin:0!important;}
.list-meta{margin:0!important;}
.investment-list{
  min-height:0!important;
  height:100%!important;
  max-height:none!important;
  padding:2px 8px 2px 0!important;
  gap:8px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
.investment-card{
  min-height:72px!important;
  padding:9px 9px!important;
  border-radius:16px!important;
  box-shadow:0 5px 16px rgba(20,45,72,.045)!important;
}
.investment-copy strong{
  font-size:11.2px!important;
  line-height:1.17!important;
}
.investment-copy small{font-size:8.5px!important;}
.demo-chip,.investment-meta-row em,.investment-status em{
  height:16px!important;
  min-height:16px!important;
  line-height:14px!important;
  padding:0 5px!important;
  font-size:7.4px!important;
}

/* === Filters become part of the same sidebar === */
.advanced-filters{
  flex:0 0 auto!important;
  margin:14px 0 0!important;
  padding:14px 0 0!important;
  border:0!important;
  border-top:1px solid var(--cg-border-soft)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.public-sidebar:has(.advanced-filters.mobile-open){
  overflow-y:auto!important;
  overflow-x:hidden!important;
  padding-right:14px!important;
}
.public-sidebar:has(.advanced-filters.mobile-open) .list-section{
  flex:0 0 auto!important;
  height:auto!important;
  min-height:290px!important;
  max-height:430px!important;
}
.public-sidebar:has(.advanced-filters.mobile-open) .investment-list{
  min-height:190px!important;
  max-height:330px!important;
}

/* === Toolbar: tighter visual grouping === */
.map-search{max-width:330px!important;}
.map-search input{
  height:40px!important;
  min-height:40px!important;
  border-radius:13px!important;
}
.category-chips{gap:6px!important;}
.category-chip{
  min-height:40px!important;
  padding:0 10px!important;
}
.category-chip .chip-symbol{
  width:22px!important;
  height:22px!important;
  min-width:22px!important;
  margin-right:5px!important;
}

/* === Detail panel: simple internal rhythm, no double visual frame === */
#detailPanel,.detail-panel{
  padding:0 0 14px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  scrollbar-gutter:stable!important;
}
.detail-cover,.detail-photo{
  border-radius:calc(var(--cg-radius) - 1px) calc(var(--cg-radius) - 1px) 0 0!important;
}
.detail-body{padding:14px 14px 18px!important;}
.detail-more-grid{gap:7px!important;}
.detail-more-grid>div{border-radius:12px!important;}

/* === Branded scrollbar system: all visible scrolls use real gradient === */
*{scrollbar-width:thin;scrollbar-color:#3b9fd0 transparent;}
*::-webkit-scrollbar{width:var(--cg-scroll-w)!important;height:var(--cg-scroll-w)!important;}
*::-webkit-scrollbar-track{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
*::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#177fc9 0%,#289bd0 34%,#4daf84 66%,#68c441 100%)!important;
  border:0!important;
  border-radius:999px!important;
  box-shadow:none!important;
  min-height:28px;
}
*::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,#0e70ba 0%,#1d8fc5 34%,#42a877 66%,#59b934 100%)!important;
}
/* Align the scroll thumb lane with each rounded window, not the viewport. */
.investment-list::-webkit-scrollbar-track{margin-block:14px!important;}
#detailPanel::-webkit-scrollbar-track,.detail-panel::-webkit-scrollbar-track{margin-block:18px!important;}
.public-sidebar::-webkit-scrollbar-track{margin-block:20px!important;}
.admin-sidebar::-webkit-scrollbar-track{margin-block:20px!important;}
.about-modal::-webkit-scrollbar-track,.info-modal::-webkit-scrollbar-track,.login-modal::-webkit-scrollbar-track{margin-block:18px!important;}
.user-accounts-list::-webkit-scrollbar-track,.admin-investment-list::-webkit-scrollbar-track,.news-list::-webkit-scrollbar-track{margin-block:12px!important;}

/* Remove scrollbar gutter from non-scroll islands to avoid phantom empty rails. */
.list-section,.advanced-filters{scrollbar-gutter:auto!important;}

/* === Keep every main island on the same baseline on narrower desktops === */
@media(max-width:1180px){
  :root{--cg-left-w:292px;--cg-detail-w:316px;}
  .map-search{max-width:280px!important;}
  .category-chip{padding:0 8px!important;font-size:9.8px!important;}
}
@media(max-width:980px){
  :root{--cg-edge:8px;--cg-gap:8px;--cg-header-top:6px;--cg-header-h:56px;}
  .public-sidebar{
    left:var(--cg-edge)!important;
    width:min(390px,calc(100vw - 16px))!important;
    bottom:74px!important;
    overflow-y:auto!important;
  }
  .map-top-controls{
    left:var(--cg-edge)!important;
    right:var(--cg-edge)!important;
    height:auto!important;
    min-height:56px!important;
  }
  #detailPanel,.detail-panel{
    left:var(--cg-edge)!important;
    right:var(--cg-edge)!important;
    width:auto!important;
    bottom:74px!important;
  }
  body:has(#detailPanel[aria-hidden="false"]) .map-top-controls{right:var(--cg-edge)!important;}
}
@media(max-width:640px){
  :root{--cg-header-h:54px;--cg-scroll-w:4px;}
  .public-sidebar{padding:14px!important;}
  .map-top-controls{display:grid!important;grid-template-columns:1fr!important;}
  .map-search{max-width:none!important;width:100%!important;}
  .category-chips{width:100%!important;}
}
