/* ============================================================================
   PÔDNY RADAR — JEDNOTNÝ DIZAJN SYSTÉM (ds.css)
   Kanonický tmavý "Uhoľ" systém pre celý produkt (mapy, homepage, magazín,
   profily). Svetlý editorial štýl služby (sluzba-agenda) je zámerná výnimka.

   PRAVIDLÁ ZAPOJENIA:
   1. Vo <head> každej stránky:  <link rel="stylesheet" href="ds.css">
      + <script src="ds.js" defer></script>  (burger, hub, progress helper)
   2. ds.css linkuj VŽDY PRED inline <style> stránky. Tokeny sú navyše
      prefixované --ds-*, takže nekolidujú s lokálnymi :root premennými
      máp (--bg, --line, --paper…) ani pri inom poradí.
   3. .ds-hub NAHRÁDZA starý chip „← Pôdny Radar" (sedí na rovnakom mieste
      top:14px;left:14px). Pri zapájaní do mapy starý chip ODSTRÁŇ,
      inak sa prekryjú.
   4. Fonty (Satoshi, Spline Sans Mono) importuje tento súbor — stránka
      si ich nemusí (a nemá) linkovať sama.
   ============================================================================ */

@import url('https://api.fontshare.com/v2/css?f[]=satoshi@400,500,700,900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Spline+Sans+Mono:wght@400;500;600&display=swap');

:root{
  --ds-bg:#0A0F1A; --ds-bg-2:#0E1626; --ds-nav:#0B1220; --ds-nav-solid:#070C15;
  --ds-line:#1B2740; --ds-line-2:#25344F;
  /* --ds-tx-3: #74839B (nie #63728A) — pôvodná hodnota mala kontrast 3,9:1
     na --ds-bg, pod AA limitom 4,5:1; táto má 4,7–5,0:1 na všetkých pozadiach */
  --ds-tx:#E6ECF4; --ds-tx-2:#9DABBF; --ds-tx-3:#74839B;
  --ds-cyan:#4DE1C1; --ds-cyan-d:#2CB89C; --ds-orange:#E8623A; --ds-amber:#E8B84A;
  --ds-blue:#6AA6E8; --ds-violet:#B98CE8; --ds-green:#6BCB77; --ds-pink:#F2789F; --ds-hunt:#4DA65A;
  --ds-paper:#F4F2EA; --ds-paper-tx:#1A2233;
  --ds-ink-on-cyan:#06231C;
}

/* ── DÔVERYHODNÁ TYPOGRAFIA ── */
.mono{font-family:'Spline Sans Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.02em}

/* ── PROVENIENČNÁ PEČIATKA / DEMO OZNAČENIE (jednotné naprieč webom) ── */
.stamp{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;
  letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:999px;white-space:nowrap}
.stamp::before{content:"";width:6px;height:6px;border-radius:50%;flex:0 0 6px;background:currentColor}
.stamp--live{background:rgba(77,225,193,.14);color:var(--ds-cyan);border:1px solid rgba(77,225,193,.30)}
.stamp--official{background:rgba(106,166,232,.14);color:var(--ds-blue);border:1px solid rgba(106,166,232,.30)}
.stamp--demo{background:rgba(185,140,232,.13);color:var(--ds-violet);border:1px solid rgba(185,140,232,.32)}
.stamp--soon{background:rgba(232,184,74,.13);color:var(--ds-amber);border:1px solid rgba(232,184,74,.30)}

/* ── PERZISTENTNÁ HLAVIČKA (obsahové stránky: homepage, magazín, profily, služba) ──
   Plávajúci pill, konzistentný s pôvodnou homepage. */
.ds-nav{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:100;width:calc(100% - 32px);max-width:1180px;
  background:rgba(11,18,32,.72);backdrop-filter:blur(14px);border:1px solid var(--ds-line);border-radius:999px;
  display:flex;align-items:center;gap:8px;padding:9px 10px 9px 20px;font-family:'Satoshi',system-ui,sans-serif}
.ds-nav .logo{display:flex;align-items:center;gap:9px;font-weight:700;font-size:16px;letter-spacing:-.02em;color:var(--ds-tx);text-decoration:none}
.ds-nav .logo .m{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,var(--ds-cyan),var(--ds-cyan-d));
  display:flex;align-items:center;justify-content:center;color:var(--ds-ink-on-cyan);font-weight:900;font-size:15px}
.ds-nav .logo b{color:var(--ds-cyan)}
.ds-nav .links{display:flex;gap:4px;margin-left:18px}
.ds-nav .links a{font-size:13.5px;color:var(--ds-tx-2);padding:7px 13px;border-radius:999px;font-weight:500;text-decoration:none}
.ds-nav .links a:hover,.ds-nav .links a.on{color:var(--ds-tx);background:rgba(255,255,255,.06)}
.ds-nav .cta{margin-left:auto;background:var(--ds-cyan);color:var(--ds-ink-on-cyan);font-weight:700;font-size:13.5px;
  padding:9px 18px;border-radius:999px;text-decoration:none}
.ds-nav .cta:hover{background:#5FE9CB}
.ds-nav .burger{margin-left:auto;display:none;width:38px;height:38px;border-radius:10px;border:1px solid var(--ds-line-2);
  background:rgba(255,255,255,.04);color:var(--ds-tx);font-size:18px;cursor:pointer;align-items:center;justify-content:center}
@media(max-width:760px){
  .ds-nav{padding:8px 10px 8px 16px}
  .ds-nav .links{position:absolute;top:60px;left:0;right:0;flex-direction:column;gap:2px;background:rgba(7,12,21,.97);
    border:1px solid var(--ds-line);border-radius:16px;padding:10px;display:none}
  .ds-nav .links.open{display:flex}
  .ds-nav .links a{padding:11px 14px}
  .ds-nav .cta{display:none}
  .ds-nav .burger{display:flex}
}

/* ── PÄTIČKA (obsahové stránky) ── */
.ds-foot{border-top:1px solid var(--ds-line);background:var(--ds-nav);padding:44px 0 30px;color:var(--ds-tx);
  font-family:'Satoshi',system-ui,sans-serif}
.ds-foot .in{max-width:1180px;margin:0 auto;padding:0 24px}
.ds-foot .grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.ds-foot .brand{font-weight:700;font-size:16px}.ds-foot .brand b{color:var(--ds-cyan)}
.ds-foot .brand p{font-size:13px;color:var(--ds-tx-3);margin-top:8px;max-width:300px;line-height:1.6}
.ds-foot h4{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:var(--ds-tx-3);font-weight:700;margin-bottom:10px}
.ds-foot a,.ds-foot .col span{display:block;font-size:13.5px;color:var(--ds-tx-2);padding:3px 0;text-decoration:none}
.ds-foot a:hover{color:var(--ds-cyan)}
.ds-foot .bot{border-top:1px solid var(--ds-line);margin-top:34px;padding-top:20px;font-size:12px;color:var(--ds-tx-3);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

/* ── TLAČIDLÁ ── */
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:14px;padding:12px 22px;border-radius:999px;
  cursor:pointer;border:0;font-family:inherit;text-decoration:none;transition:background .14s,border-color .14s,transform .14s}
.btn-c{background:var(--ds-cyan);color:var(--ds-ink-on-cyan)}.btn-c:hover{background:#5FE9CB}
.btn-g{background:rgba(255,255,255,.06);color:var(--ds-tx);border:1px solid var(--ds-line-2)}.btn-g:hover{background:rgba(255,255,255,.1)}

/* ── PROGRESS OVERLAY (jednotné % načítania pre ťažké mapy) ──
   Markup vytvorí ds.js (dsProgress.show/set/done) — netreba ho písať ručne. */
.prg{position:fixed;inset:0;z-index:9999;background:var(--ds-bg);display:flex;align-items:center;justify-content:center;transition:opacity .4s}
.prg.done{opacity:0;pointer-events:none}
.prg-in{width:280px;text-align:center;padding:0 20px}
.prg-pct{font-family:'Spline Sans Mono',ui-monospace,monospace;font-size:46px;font-weight:700;color:var(--ds-cyan);letter-spacing:-.02em}
.prg-bar{height:5px;background:#1a2740;border-radius:999px;overflow:hidden;margin:16px 0 11px}
.prg-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--ds-cyan),var(--ds-blue));transition:width .25s}
.prg-lbl{font-size:12.5px;color:var(--ds-tx-3)}

/* ── MAPOVÁ KOMPAKTNÁ HLAVIČKA (cross-nav z každej mapy) ──
   Sedí na mieste starého chipu „← Pôdny Radar" (top:14px;left:14px) —
   pri zapojení starý chip odstráň (pozri pravidlo 3 hore). */
.ds-hub{position:fixed;top:14px;left:14px;z-index:64;font-family:'Satoshi',system-ui,sans-serif}
.ds-hub-btn{display:flex;align-items:center;gap:8px;background:rgba(11,18,32,.92);color:var(--ds-tx);border:1px solid var(--ds-line);
  border-radius:999px;padding:7px 14px 7px 11px;font-size:12.5px;font-weight:700;cursor:pointer;backdrop-filter:blur(10px)}
.ds-hub-btn .m{width:20px;height:20px;border-radius:6px;background:linear-gradient(135deg,var(--ds-cyan),var(--ds-cyan-d));
  display:flex;align-items:center;justify-content:center;color:var(--ds-ink-on-cyan);font-weight:900;font-size:12px}
.ds-hub-btn:hover{border-color:var(--ds-cyan)}
.ds-hub-menu{display:none;position:absolute;top:44px;left:0;width:230px;background:rgba(7,12,21,.97);border:1px solid var(--ds-line);
  border-radius:13px;overflow:hidden;box-shadow:0 18px 50px -12px rgba(0,0,0,.7);backdrop-filter:blur(14px)}
.ds-hub.open .ds-hub-menu{display:block}
.ds-hub-menu a{display:flex;align-items:center;gap:9px;padding:10px 14px;font-size:13px;color:var(--ds-tx);text-decoration:none;border-top:1px solid #141d30}
.ds-hub-menu a:first-child{border-top:0}
.ds-hub-menu a:hover{background:#141d30}
.ds-hub-menu a .d{width:8px;height:8px;border-radius:2px;flex:0 0 auto}

/* ── MOBILNÝ BOTTOM-SHEET (panely máp; hlavičku vkladá ds.js) ──
   Desktop: .ds-sheet nič nemení. Mobil ≤560 px: panel je fixný dole,
   .collapsed ho stiahne tak, že ostane len 46 px úchyt (aria-expanded). */
.ds-sheet-hd{display:none}
@media(max-width:560px){
  .ds-sheet{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;
    width:100%!important;max-width:none!important;max-height:55vh!important;max-height:55dvh!important;margin:0!important;
    border-radius:16px 16px 0 0!important;z-index:220!important;
    display:flex!important;flex-direction:column!important;overflow-y:auto!important;overflow-x:hidden!important;
    overscroll-behavior:contain;transform:translateY(0);transition:transform .28s ease;
    box-shadow:0 -10px 30px -12px rgba(0,0,0,.6)}
  .ds-sheet-hd .hide-lbl{display:none;margin-left:auto;font-weight:700;color:#4DE1C1}
  .ds-sheet:not(.collapsed) .ds-sheet-hd .hide-lbl{display:inline}
  .ds-sheet:not(.collapsed) .ds-sheet-hd .chev{margin-left:8px}
  .ds-sheet.collapsed{transform:translateY(calc(100% - 46px));overflow:hidden!important}
  .ds-sheet-hd{display:flex;align-items:center;gap:10px;flex:0 0 46px;min-height:46px;width:100%;
    position:sticky;top:0;z-index:5;
    padding:0 16px;border:0;border-bottom:1px solid rgba(127,140,160,.25);
    background:rgba(10,15,26,.35);color:inherit;text-align:left;cursor:pointer;
    font:700 13px/1 'Satoshi',system-ui,sans-serif;letter-spacing:.01em;
    -webkit-tap-highlight-color:transparent}
  .ds-sheet-hd .chev{margin-left:auto;transition:transform .28s;font-size:15px}
  .ds-sheet.collapsed .ds-sheet-hd .chev{transform:rotate(180deg)}
  .ds-sheet-body-scroll{overflow-y:auto;overscroll-behavior:contain}
}
