/* =====================================================================
   Kalkulačka – mapové zakreslenie pozemku (prototyp)
   Decentný spúšťač (textový odkaz) + modálne okno s mapou.
   ===================================================================== */

/* ---- Decentný spúšťač pod poľom rozlohy ---- */
.kalk-map-trigger{
  display:inline-flex; align-items:center; gap:6px;
  margin:8px 0 2px; padding:0;
  background:none; border:0; cursor:pointer;
  font-size:13.5px; line-height:1.3; color:#6f8a55;
  text-decoration:underline; text-underline-offset:2px;
  text-decoration-color:rgba(111,138,85,.45);
  transition:color .2s ease;
}
.kalk-map-trigger:hover{ color:#5a7a2a; text-decoration-color:#90c91f; }
.kalk-map-trigger__pin{ font-size:14px; text-decoration:none; }

/* ---- Modál ---- */
.kalk-map-modal{
  position:fixed; inset:0; z-index:100000;
  display:none; align-items:center; justify-content:center;
  background:rgba(20,28,16,.55); padding:16px;
}
body.kalk-map-open{ overflow:hidden; }

.kalk-map-box{
  width:100%; max-width:1140px; height:94vh; max-height:94vh;
  display:flex; flex-direction:column;
  background:#fff; border-radius:14px; overflow:hidden;
  box-shadow:0 24px 70px rgba(0,0,0,.35);
  font-family:inherit;
}

.kalk-map-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 18px; border-bottom:1px solid #eef1ea;
}
.kalk-map-head strong{ font-size:17px; color:#252525; }
.kalk-map-x{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; flex:0 0 auto;
  background:#f1f4ec; border:0; border-radius:50%; cursor:pointer;
  font-size:24px; line-height:1; color:#3f4a3a; padding:0;
  transition:background .15s ease, color .15s ease, transform .15s ease;
}
.kalk-map-x:hover{ background:#e3e8dc; color:#111; }
.kalk-map-x:active{ transform:scale(.94); }
.kalk-map-x:focus-visible{ outline:none; box-shadow:0 0 0 3px rgba(144,201,31,.35); }

.kalk-map-search{ display:flex; gap:8px; padding:12px 18px 6px; position:relative; z-index:1500; }
.kalk-map-search__field{ position:relative; flex:1 1 auto; min-width:0; }
.kalk-map-search input{
  width:100%; height:42px; padding:0 12px;
  border:1px solid #cdd6dc; border-radius:8px; font-size:16px; color:#252525;
}

/* Našepkávač */
.kalk-map-ac{
  position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:1600;
  background:#fff; border:1px solid #d7ded0; border-radius:8px;
  box-shadow:0 12px 32px rgba(0,0,0,.18);
  max-height:280px; overflow-y:auto;
}
.kalk-map-ac__item{
  padding:9px 12px; cursor:pointer; line-height:1.3;
  border-bottom:1px solid #f0f3ec;
}
.kalk-map-ac__item:last-child{ border-bottom:0; }
.kalk-map-ac__item:hover, .kalk-map-ac__item.is-active{ background:#f1f9e0; }
.kalk-map-ac__t{ display:block; font-size:14px; color:#252525; }
.kalk-map-ac__s{ display:block; font-size:12px; color:#7c8a72; margin-top:1px; }
.kalk-map-search input:focus{ outline:none; border-color:#90c91f; box-shadow:0 0 0 3px rgba(144,201,31,.18); }
.kalk-map-search button{
  flex:0 0 auto; height:42px; padding:0 18px;
  background:#90c91f; color:#fff; border:0; border-radius:8px;
  font-weight:600; font-size:14px; cursor:pointer;
}
.kalk-map-search button:hover{ background:#77ab0d; }
.kalk-map-search button:disabled{ opacity:.6; cursor:default; }

/* riadok ovládania: režimy vľavo, prepínač hraníc vpravo (kompaktná hlavička na PC) */
.kalk-map-controls{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; padding:6px 18px 2px;
}
.kalk-map-controls .kalk-map-modes{ padding:0; }
.kalk-map-controls__r{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.kalk-map-controls .kalk-map-overlay{ margin:0; }
@media (min-width:768px){ .kalk-map-controls__r{ margin-left:auto; } }

.kalk-map-modes{ display:flex; gap:6px; padding:4px 18px 0; flex-wrap:wrap; }
.kalk-map-mode{
  flex:0 0 auto; padding:6px 13px; border:1px solid #cdd6dc; background:#fff;
  border-radius:999px; font-size:13px; color:#4a5546; cursor:pointer; transition:all .15s ease;
}
.kalk-map-mode:hover{ border-color:#90c91f; }
.kalk-map-mode.is-active{ background:#90c91f; border-color:#90c91f; color:#fff; font-weight:600; }
.kalk-map-mode__tag{
  display:inline-block; margin-left:5px; padding:0 6px; border-radius:999px;
  font-size:10.5px; font-weight:700; letter-spacing:.02em; vertical-align:middle;
  background:#eef7da; color:#5a7a2a;
}
.kalk-map-mode.is-active .kalk-map-mode__tag{ background:rgba(255,255,255,.25); color:#fff; }

.kalk-map-overlay{
  display:flex; align-items:center; gap:8px; cursor:pointer;
  margin:6px 18px 2px; font-size:13px; color:#4a5546; user-select:none;
}
.kalk-map-overlay input{ width:17px; height:17px; accent-color:#90c91f; cursor:pointer; flex:0 0 auto; }

.kalk-map-attrib{
  padding:6px 18px; font-size:11px; color:#9aa392; background:#fafdf5;
  border-top:1px solid #f0f3ec; line-height:1.35;
}

.kalk-map-hint{
  padding:6px 18px 10px; font-size:12.5px; color:#7c8a72; line-height:1.45;
}
.kalk-map-hint b{ color:#5a7a2a; }

/* ikonové tlačidlo „Moja poloha (GPS)" medzi vyhľadávacím poľom a „Nájsť"
   (scope .kalk-map-search … prebíja zelený štýl `.kalk-map-search button`) */
.kalk-map-search .kalk-map-geo{
  flex:0 0 auto; width:42px; height:42px; padding:0;
  display:inline-flex; align-items:center; justify-content:center;
  background:#fff; border:1px solid #cdd6dc; border-radius:8px;
  color:#5a7a2a; font-size:18px; line-height:1; cursor:pointer;
  transition:border-color .15s ease, background .15s ease;
}
.kalk-map-search .kalk-map-geo:hover{ background:#f1f7e4; border-color:#90c91f; }
.kalk-map-search .kalk-map-geo:disabled{ opacity:.55; cursor:default; }

.kalk-map-status{
  margin:0 18px 8px; padding:8px 12px; border-radius:8px;
  font-size:13px; line-height:1.4; color:#4a5546; background:#f1f4ec;
  display:flex; align-items:flex-start; gap:10px;
}
.kalk-map-status.is-warn{ color:#8a5a00; background:#fff4e0; }
.kalk-map-status__t{ flex:1 1 auto; min-width:0; }
.kalk-map-status__x{
  flex:0 0 auto; width:22px; height:22px; margin:-2px -4px 0 0;
  display:inline-flex; align-items:center; justify-content:center;
  background:none; border:0; cursor:pointer; border-radius:50%;
  font-size:18px; line-height:1; color:inherit; opacity:.7;
  transition:opacity .15s ease, background .15s ease;
}
.kalk-map-status__x:hover{ opacity:1; background:rgba(0,0,0,.08); }

/* mapa vyplní zvyšný priestor; min-height:0 nech sa footer (tlačidlá) nikdy neodreže
   (predtým min-height:64vh tlačilo footer mimo obrazovky na notebooku) */
.kalk-map-canvas{
  flex:1 1 auto; min-height:0; height:auto; width:100%;
  background:#e7ece2;
}
.kalk-map-foot{ flex:0 0 auto; }
.kalk-map-canvas .leaflet-container{ cursor:crosshair; font-family:inherit; }

.kalk-map-foot{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  flex-wrap:wrap; padding:12px 18px; border-top:1px solid #eef1ea; background:#fafdf5;
}
.kalk-map-area{ font-size:14px; color:#3f5b22; }
.kalk-map-area strong{ color:#252525; font-size:16px; }
.kalk-map-parcel{
  display:inline-block; margin-right:8px; padding:1px 8px; border-radius:6px;
  background:#eef7da; color:#3f5b22; font-weight:700; font-size:13px;
}
.kalk-map-actions{ display:flex; gap:8px; }

.kalk-map-btn{
  height:42px; padding:0 18px; border-radius:8px; border:0;
  font-weight:600; font-size:14px; cursor:pointer;
  background:#90c91f; color:#fff;
}
.kalk-map-btn:hover{ background:#77ab0d; }
.kalk-map-btn:disabled{ opacity:.45; cursor:not-allowed; }
.kalk-map-btn.ghost{ background:#eef1ea; color:#4a5546; }
.kalk-map-btn.ghost:hover{ background:#e2e7dc; }
/* disabled ghost: nech hover nevyzerá aktívne, jasne neaktívny stav */
.kalk-map-btn.ghost:disabled, .kalk-map-btn.ghost:disabled:hover{ background:#eef1ea; color:#9aa595; opacity:.6; cursor:not-allowed; }

/* ---- Režim 'locate' (poloha pozemku) vs 'area' (rozloha) ---- */
.kalk-map-modal[data-purpose="locate"] .kalk-map-modes,
.kalk-map-modal[data-purpose="locate"] .kalk-map-area,
.kalk-map-modal[data-purpose="locate"] .kalk-map-actions{ display:none; }
.kalk-map-modal[data-purpose="area"] .kalk-map-locate{ display:none; }
.kalk-map-locate{ display:flex; align-items:center; gap:12px; width:100%; }
.kalk-map-locaddr{ flex:1 1 auto; min-width:0; font-size:13.5px; color:#3f5b22; line-height:1.35; }
.kalk-map-locate .kalk-map-btn{ flex:0 0 auto; }

/* chip „Použiť polohu z mapy" pod poľom Adresa kosenia (keď je už vyplnené) */
.kalk-map-addr-chip{
  display:inline-flex; align-items:center; gap:6px; margin:8px 0 0; padding:6px 12px;
  background:#eef7da; color:#3f5b22; border:1px solid #cfe39a; border-radius:999px;
  font-size:13px; font-weight:600; cursor:pointer; transition:background .15s ease, border-color .15s ease;
}
.kalk-map-addr-chip:hover{ background:#e3f1c6; border-color:#90c91f; }

/* ---- Lightbox: zväčšenie náhľadu fotky po kliknutí (krok 2) ---- */
.jFiler-item-thumb-image{ cursor:zoom-in; }
.kalk-lightbox{
  position:fixed; inset:0; z-index:100001;
  display:flex; align-items:center; justify-content:center;
  background:rgba(10,14,8,.85); padding:20px; cursor:zoom-out;
  -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px);
}
.kalk-lightbox img{
  max-width:95vw; max-height:92vh; border-radius:8px;
  box-shadow:0 20px 60px rgba(0,0,0,.5); background:#fff;
}
.kalk-lightbox__x{
  position:absolute; top:12px; right:18px; background:none; border:0;
  color:#fff; font-size:40px; line-height:1; cursor:pointer; opacity:.85; padding:0 6px;
}
.kalk-lightbox__x:hover{ opacity:1; }

/* Mobil: modál na celú obrazovku, mapa dostane MAXIMUM výšky.
   Princíp: zoštíhliť všetok „chrome" nad mapou (hlavička, search, GPS,
   módy, nápoveda, atribúcia), aby flex:1 mapa vyplnila čo najviac. */
@media (max-width:767px){
  .kalk-map-modal{ padding:0; }
  .kalk-map-box{
    width:100%; height:100%; height:100dvh;
    max-width:none; max-height:none; border-radius:0;
  }

  /* kompaktná hlavička a ovládače */
  .kalk-map-head{ padding:9px 14px; }
  .kalk-map-head strong{ font-size:16px; }
  .kalk-map-search{ padding:8px 14px 4px; }
  .kalk-map-search input{ height:40px; font-size:16px; } /* 16px = iOS Safari neauto-zoomne pri fokuse */
  .kalk-map-search button{ height:40px; padding:0 14px; }
  .kalk-map-search .kalk-map-geo{ width:40px; height:40px; font-size:17px; }
  .kalk-map-status{ margin:0 14px 6px; padding:7px 10px; font-size:12.5px; }
  .kalk-map-modes{ padding:2px 14px 0; }
  .kalk-map-mode{ padding:5px 11px; font-size:12.5px; }

  /* nápoveda: defaultne 2 riadky, ťuknutím rozbaliť (šetrí ~3 riadky výšky) */
  .kalk-map-hint{
    position:relative; cursor:pointer;
    padding:4px 42px 6px 14px; font-size:12px; line-height:1.4;
    display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden;
  }
  .kalk-map-hint.is-open{ display:block; -webkit-line-clamp:unset; overflow:visible; }
  /* väčšia, jasne viditeľná ikonka rozbalenia (predtým 12px – príliš malá) */
  .kalk-map-hint::after{
    content:'▾'; position:absolute; right:8px; top:50%; transform:translateY(-50%);
    width:28px; height:28px; display:flex; align-items:center; justify-content:center;
    background:#eef7da; border-radius:50%;
    color:#5a7a2a; font-size:16px; line-height:1;
  }
  .kalk-map-hint.is-open::after{ content:'▴'; top:18px; transform:none; }

  /* mapa vyplní zvyšok */
  .kalk-map-canvas{ flex:1 1 auto; height:auto; min-height:0; }

  /* atribúcia menšia (právny text ostáva čitateľný, nezarezáva sa) */
  .kalk-map-attrib{ padding:4px 14px; font-size:9.5px; line-height:1.3; }

  .kalk-map-foot{ padding:10px 14px; justify-content:space-between; gap:8px; }
  .kalk-map-area{ font-size:13px; }
  .kalk-map-area strong{ font-size:15px; }
  .kalk-map-actions{ width:100%; }
  .kalk-map-actions .kalk-map-btn{ flex:1 1 auto; padding:0 10px; height:40px; }
  .kalk-map-locate{ flex-wrap:wrap; gap:8px; }
  .kalk-map-locaddr{ flex:1 1 100%; }
  .kalk-map-locate .kalk-map-btn{ width:100%; height:40px; }
}
