/* =============================================================================
 *  Project:   Doradca Agrotechniczny (Polish Agro)
 *  Location:  /assets/css/powiaty.css
 *  File:      powiaty.css
 *  Function:  Dedicated styles for the powiaty index and single-powiat pages
 *             (map container, search, voivodeship groups, powiat chips,
 *             weather card). Loaded only on those pages.
 *  Version:   1.0.0
 *  Build:     2026.07.28.1545
 * ========================================================================== */

/* Map */
.map-wrap{border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 12px 30px -20px rgba(31,58,43,.4)}
#powiatyMap{height:460px;width:100%}
#powiatMap{height:460px;width:100%}
.leaflet-container{background:#EFF4EC;font-family:"Inter",sans-serif}
.map-pin-link{font-weight:600;color:var(--leaf-d)}

/* Search */
.powiat-search{position:relative;max-width:520px}
.powiat-search .bi{position:absolute;left:.9rem;top:50%;transform:translateY(-50%);color:var(--soil-70)}
.powiat-search input{padding-left:2.4rem;border-radius:999px}
.powiat-search input:focus{border-color:var(--leaf);box-shadow:0 0 0 .2rem rgba(95,154,31,.25)}
.search-count{font-size:.85rem;color:var(--soil-70);margin-top:.5rem}

/* Sticky search bar */
.powiat-searchbar{position:sticky;top:0;z-index:900;background:var(--paper-2);border-bottom:1px solid var(--line);padding:.7rem 0;box-shadow:0 6px 14px -12px rgba(31,58,43,.5)}
.powiat-searchbar .powiat-search{max-width:100%}
.powiat-searchbar .search-count{margin:.4rem 0 0}

/* Results list (search hits) */
.powiat-results{display:grid;gap:.5rem;margin-bottom:1.25rem}
.powiat-result{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:52px;padding:.7rem 1rem;background:var(--paper-2);border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--field)}
.powiat-result:hover{border-color:var(--leaf);background:#fff;color:var(--field)}
.powiat-result .nm{font-weight:600}
.powiat-result .tg{font-size:.7rem;color:var(--soil-70);font-weight:500}
.powiat-result .wj{font-size:.82rem;color:var(--soil-70);white-space:nowrap}
.no-hits{color:var(--soil-70);padding:.5rem 0}

/* Map legend (single powiat) */
.map-legend{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;font-size:.82rem;color:var(--soil-70);margin:.6rem 0 0}
.map-legend .lg{display:inline-block;width:16px;height:12px;border-radius:3px}
.map-legend .lg-self{background:rgba(95,154,31,.35);border:2px solid #1E3A2B}
.map-legend .lg-adj{background:rgba(228,169,60,.5);border:1.5px solid #C88A1E}

/* Mobile ergonomics */
@media(max-width:640px){
  #powiatyMap{height:320px}
  #powiatMap{height:300px}
  .powiat-chip{min-height:44px}
  .woj .accordion-button{padding-top:.9rem;padding-bottom:.9rem}
  .powiat-hero{padding-block:1.4rem}
  .powiat-result{min-height:56px}
}

/* Voivodeship groups */
.woj .accordion-button{font-family:var(--font);font-weight:600;color:var(--field);text-transform:capitalize}
.woj .accordion-button:not(.collapsed){background:var(--sage);color:var(--field)}
.woj .accordion-button:focus{box-shadow:0 0 0 .2rem rgba(228,169,60,.4)}
.woj .count-pill{margin-left:.6rem;font-size:.72rem;font-weight:600;color:var(--soil-70);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:.1rem .5rem}

/* Powiat chips (links) */
.powiat-grid{display:flex;flex-wrap:wrap;gap:.5rem}
.powiat-chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--paper-2);border:1px solid var(--line);border-radius:999px;padding:.4rem .8rem;font-size:.92rem;color:var(--field);text-decoration:none;transition:border-color .15s,background .15s}
.powiat-chip:hover{border-color:var(--leaf);background:#fff;color:var(--field)}
.powiat-chip .t{font-size:.7rem;color:var(--soil-70)}
.powiat-chip.is-grodzki{border-style:dashed}

/* Single powiat header */
.powiat-hero{background:var(--sage);border-bottom:1px solid var(--line);padding-block:2rem}
.powiat-kicker{font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--leaf-d)}

/* Weather card (placeholder until phase 5) */
.weather-card{background:var(--paper-2);border:1px solid var(--line);border-radius:16px;padding:1.3rem;height:100%}
.weather-card h3{font-size:1.1rem;font-weight:600;margin-bottom:.4rem}
.weather-soon{display:inline-flex;align-items:center;gap:.4rem;background:var(--sage);color:var(--leaf-d);border-radius:999px;padding:.25rem .7rem;font-size:.8rem;font-weight:600;margin-top:.4rem}
.weather-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem;margin-top:1rem}
.weather-metric{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:.7rem;text-align:center;opacity:.55}
.weather-metric .v{font-family:var(--font);font-size:1.3rem;color:var(--field)}
.weather-metric .k{font-size:.75rem;color:var(--soil-70)}

/* Facts strip (powiat w liczbach) */
.stat-strip{list-style:none;display:flex;flex-wrap:wrap;gap:.6rem;padding:0;margin:1.1rem 0 0}
.stat-strip li{background:var(--paper-2);border:1px solid var(--line);border-radius:12px;padding:.55rem .9rem;line-height:1.15}
.stat-strip .k{display:block;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--soil-70)}
.stat-strip .v{display:block;font-family:var(--font);font-weight:600;color:var(--field);text-transform:capitalize}

/* Tool cards (calculator + callback) */
.tool-card{background:var(--paper-2);border:1px solid var(--line);border-radius:16px;padding:1.4rem}
.tool-h{font-size:1.15rem;font-weight:600;color:var(--field);margin-bottom:.3rem;display:flex;align-items:center;gap:.5rem}
.tool-h .bi{color:var(--leaf-d)}
.tool-card .form-label{font-weight:600;color:var(--field);font-size:.88rem}
.tool-card .form-control:focus,.tool-card .form-select:focus{border-color:var(--leaf);box-shadow:0 0 0 .2rem rgba(95,154,31,.25)}
.calc-result{background:var(--sage);border-radius:12px;padding:.8rem 1rem;font-size:1.05rem;color:var(--field)}
.calc-result b{font-family:var(--font);font-size:1.5rem}

/* Live weather */
.wx-now{font-family:var(--font);font-size:2rem;font-weight:700;color:var(--field);line-height:1}
.wx-badges{display:flex;flex-direction:column;gap:.5rem;margin:.9rem 0}
.wx-badge{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;font-size:.9rem;font-weight:600;padding:.5rem .75rem;border-radius:10px;border:1px solid var(--line);background:var(--paper)}
.wx-badge .bi{font-size:1rem}
.wx-badge.is-open{background:#EAF3DF;border-color:#c7dcae;color:#3E6E14}
.wx-badge.is-closed{background:#F3E7E9;border-color:#e2c3c9;color:#8f2233}
.wx-badge.is-warn{background:#FBEFD8;border-color:#e6d29a;color:#8a5a0f}
.wx-badge b{font-weight:700}
.wx-when{font-weight:500;opacity:.85;font-size:.82rem}
.weather-grid.wx-live{grid-template-columns:repeat(3,1fr)}
.weather-grid.wx-live .weather-metric{opacity:1}
.wx-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}
.wx-desc{font-size:.88rem;color:var(--soil-70);margin:0}
.wx-desc .bi{color:var(--leaf-d)}
.wx-day__ico{color:var(--leaf-d);font-size:1.15rem;margin:.15rem 0}
.wx-days{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1rem}
.wx-day{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:.6rem;text-align:center}
.wx-day__d{font-size:.75rem;color:var(--soil-70);text-transform:capitalize}
.wx-day__t{font-family:var(--font);color:var(--field);margin:.15rem 0}
.wx-day__t b{color:var(--grain-d)}
.wx-day__m{font-size:.72rem;color:var(--soil-70)}
.wx-meta{font-size:.75rem;color:var(--soil-70);margin:.9rem 0 0}
.wx-meta a{color:var(--leaf-d)}

/* Recommendation weather pills */
.reco-pill{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;padding:.35rem .7rem;border-radius:999px;margin-top:.2rem}
.reco-pill.is-open{background:#EAF3DF;color:#3E6E14}
.reco-pill.is-closed{background:#F3E7E9;color:#8f2233}

/* Weather alert opt-in */
.alert-optin{margin-top:1rem;background:var(--paper-2);border:1px solid var(--line);border-radius:16px;padding:1.1rem 1.2rem}
.alert-optin h3{font-size:1.1rem;margin:0 0 .3rem}
.alert-optin__lead{font-size:.9rem;color:var(--soil-70);margin:0 0 .8rem}
.alert-opts{display:flex;gap:1.2rem;flex-wrap:wrap;margin:.2rem 0 .6rem}
.alert-opts .opt{display:inline-flex;align-items:center;gap:.4rem;font-size:.92rem;color:var(--field);min-height:32px}
.rodo-check{display:flex;gap:.5rem;align-items:flex-start;font-size:.78rem;color:var(--soil-70);margin-bottom:.8rem;line-height:1.4}
.rodo-check input{margin-top:.2rem;flex:0 0 auto}

/* Powiat hero — "Mój powiat" action */
.powiat-hero__actions{margin-top:1rem}
.btn-mypowiat{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.5rem 1rem;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--field);font-weight:600;font-size:.92rem;cursor:pointer;transition:border-color .15s,background .15s}
.btn-mypowiat:hover{border-color:var(--grain-d)}
.btn-mypowiat .bi{color:var(--grain-d);font-size:1.05rem}
.btn-mypowiat.is-mine{background:var(--grain);border-color:var(--grain);color:var(--field)}
.btn-mypowiat.is-mine .bi{color:var(--field)}

/* Product offer on the powiat page (from DB) */
.powiat-offer{margin-top:1.4rem}
.offer-h{font-size:1.15rem;margin:0 0 .8rem}
.offer-h .bi{color:var(--leaf-d)}
.offer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}
.offer-card{position:relative;display:flex;flex-direction:column;gap:.15rem;background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:.85rem .95rem}
.offer-card.is-featured{border-color:var(--grain);box-shadow:0 10px 26px -20px rgba(200,138,30,.7)}
.offer-badge{position:absolute;top:.6rem;right:.6rem;background:var(--grain);color:var(--field);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.15rem .45rem;border-radius:6px}
.offer-cat{font-size:.72rem;color:var(--leaf-d);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.offer-name{font-weight:700;color:var(--field);font-size:1rem}
.offer-lead{font-size:.85rem;color:var(--soil-70);line-height:1.4}
.offer-price{font-size:.8rem;color:var(--grain-d);font-weight:600;margin-top:.2rem}
.offer-cta{background:var(--paper-2);border:1px dashed var(--line);border-radius:14px;padding:1.1rem}
@media(max-width:520px){.offer-grid{grid-template-columns:1fr}}
