:root{
  --bg:#F2F4F9; --bg-1:#F7F9FC; --card:#FFFFFF; --ink:#333336; --ink-2:#1B1C22; --muted:#66666B; --faint:#7A7A80;
  --line:#DFE4EE; --line-2:#C9D1E0;
  --brand:#2E5BFF; --brand-ink:#1E43D6; --brand-soft:#E9EEFF;
  --ok:#15803D; --ok-soft:#DCFCE7; --amber:#B45309; --amber-soft:#FEF3C7; --red:#C53030; --red-soft:#FDE8E8;
  --kod-bg:#0F1524; --kod-ink:#E6E9F2; --kod-line:#232B40;
  --grad:linear-gradient(120deg,#2E5BFF,#10B6E8 55%,#A3E635);
  --sh-1:0 1px 2px rgba(15,21,36,.05),0 10px 30px -18px rgba(15,21,36,.18);
  --r:12px; --rm:18px;
  --mono:ui-monospace,"Cascadia Mono","Segoe UI Mono",SFMono-Regular,Menlo,Consolas,monospace;
}
html[data-tema="tmava"]{
  color-scheme:dark;
  --bg:#0F1420; --bg-1:#1B2336; --card:#171E30; --ink:#E7ECF6; --ink-2:#F4F6FB; --muted:#A6B0C4; --faint:#8A94AA;
  --line:#242D42; --line-2:#33405C;
  --brand:#3D63E0; --brand-ink:#7D9BFF; --brand-soft:rgba(92,130,255,.15);
  --ok:#6EE7A0; --ok-soft:rgba(34,197,94,.14); --amber:#FBBF24; --amber-soft:rgba(245,158,11,.14); --red:#F87171; --red-soft:rgba(239,68,68,.14);
  --kod-bg:#0A0E1A; --kod-ink:#E6E9F2; --kod-line:#1D2538;
  --sh-1:0 1px 2px rgba(0,0,0,.2),0 10px 30px -18px rgba(0,0,0,.55);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:16.5px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:var(--brand-ink);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
img{max-width:100%;height:auto}
:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:4px}
::selection{background:rgba(46,91,255,.35)}
.preskocit{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--brand);color:#fff;padding:8px 14px;border-radius:8px}
.preskocit:focus{left:12px}

.nav{position:sticky;top:0;z-index:60;padding:8px 12px 0}
.nav .bar{max-width:1360px;margin:0 auto;display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.72);backdrop-filter:saturate(1.8) blur(26px);-webkit-backdrop-filter:saturate(1.8) blur(26px);border:1px solid rgba(15,21,36,.07);border-radius:16px;padding:6px 10px 6px 14px;box-shadow:0 0 0 1px rgba(15,21,36,.03),0 10px 30px -16px rgba(15,21,36,.2)}
html[data-tema="tmava"] .nav .bar{background:rgba(15,20,32,.86);border-color:var(--line);box-shadow:0 0 0 1px rgba(0,0,0,.25),0 10px 30px -14px rgba(0,0,0,.6)}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink-2)}
.brand:hover{text-decoration:none}
.brand img{display:block;height:36px;width:auto;margin:-8px 0}
.brand img.lg-tm,.pata-l img.lg-tm{display:none}
html[data-tema="tmava"] .brand img.lg-sv,html[data-tema="tmava"] .pata-l img.lg-sv{display:none}
html[data-tema="tmava"] .brand img.lg-tm,html[data-tema="tmava"] .pata-l img.lg-tm{display:block}
.spacer{flex:1}
.nlink{color:var(--muted);font-size:14.5px;font-weight:550;padding:8px 10px;border-radius:9px}
.nlink:hover{color:var(--ink);background:var(--bg-1);text-decoration:none}
.jazyky{display:inline-flex;align-items:center;gap:2px;color:var(--muted);font-size:13px;font-weight:650;padding:0 4px}
.jazyky svg{width:16px;height:16px;margin-right:4px;opacity:.8}
.jazyky a,.jazyky span{padding:6px 7px;border-radius:8px;color:var(--muted)}
.jazyky a:hover{color:var(--ink);background:var(--bg-1);text-decoration:none}
.jazyky .on{color:var(--brand-ink);background:var(--brand-soft)}
.tema-b,.menu-b{display:inline-grid;place-items:center;flex:none;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:10px;background:transparent;color:var(--muted);cursor:pointer}
.tema-b:hover,.menu-b:hover{color:var(--ink);background:var(--bg-1)}
.tema-b svg,.menu-b svg{width:18px;height:18px;grid-area:1/1}
.tema-b .slnko{display:none}
html[data-tema="tmava"] .tema-b .slnko{display:block}
html[data-tema="tmava"] .tema-b .mesiac{display:none}
.menu-b{display:none}

.ram{max-width:1360px;margin:0 auto;display:grid;grid-template-columns:260px minmax(0,1fr) 220px;gap:40px;padding:28px 24px 64px}
.bocne{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 100px);overflow:auto;padding-right:6px}
.bocne .sk{margin-bottom:22px}
.bocne .sk-n{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:0 0 6px 10px}
.bocne ul{list-style:none;margin:0;padding:0}
.bocne a{display:block;padding:7px 10px;border-radius:9px;color:var(--muted);font-size:15px;font-weight:550}
.bocne a:hover{color:var(--ink);background:var(--card);text-decoration:none}
.bocne a.on{color:var(--brand-ink);background:var(--brand-soft)}

.obsah{min-width:0;max-width:820px}
.drobky{font-size:13px;font-weight:650;color:var(--brand-ink);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.obsah h1{font-size:clamp(30px,4vw,40px);line-height:1.15;letter-spacing:-.025em;color:var(--ink-2);margin:0 0 12px;font-weight:700}
.perex{font-size:18.5px;color:var(--muted);margin:0 0 30px;line-height:1.55}
.obsah h2{font-size:24px;letter-spacing:-.02em;color:var(--ink-2);margin:44px 0 12px;padding-top:6px;font-weight:680}
.obsah h3{font-size:18.5px;color:var(--ink-2);margin:30px 0 8px;font-weight:650}
.obsah h4{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);margin:16px 0 6px;font-weight:700}
.obsah p{margin:0 0 14px}
.obsah ul,.obsah ol{margin:0 0 16px;padding-left:22px}
.obsah li{margin:4px 0}
.obsah li::marker{color:var(--faint)}
.obsah code{font-family:var(--mono);font-size:.86em;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1px 6px;color:var(--ink-2);overflow-wrap:anywhere}
.obsah strong,.obsah b{color:var(--ink-2)}
.obsah hr{border:0;border-top:1px solid var(--line);margin:30px 0}

.karty{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:8px 0 24px}
.karta{display:block;background:var(--card);border:1px solid var(--line);border-radius:var(--rm);padding:18px 18px 16px;box-shadow:var(--sh-1);color:var(--ink);transition:border-color .16s ease-out,transform .16s ease-out}
.karta:hover{border-color:var(--brand);text-decoration:none;transform:translateY(-1px)}
.karta .ik{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--brand-soft);color:var(--brand-ink);margin-bottom:10px}
.karta .ik svg{width:20px;height:20px}
.karta b{display:block;font-size:16px;color:var(--ink-2);margin-bottom:4px}
.karta span{display:block;font-size:14.5px;color:var(--muted);line-height:1.5}

.kroky{counter-reset:krok;list-style:none;padding:0!important;margin:0 0 20px}
.kroky>li{counter-increment:krok;position:relative;padding:2px 0 14px 46px;margin:0}
.kroky>li::before{content:counter(krok);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);font-weight:700;font-size:14px;display:grid;place-items:center;border:1px solid rgba(46,91,255,.25)}
.kroky>li:not(:last-child)::after{content:"";position:absolute;left:14.5px;top:34px;bottom:4px;width:1px;background:var(--line-2)}

.kod{margin:12px 0 20px;border-radius:var(--r);overflow:hidden;background:var(--kod-bg);border:1px solid var(--kod-line);position:relative}
.kod-h{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--kod-line);font-family:var(--mono);font-size:12.5px;color:#9AA6C2}
.kod pre{margin:0;padding:14px 16px;overflow-x:auto;color:var(--kod-ink);font-family:var(--mono);font-size:13.5px;line-height:1.6;tab-size:2}
.kod pre code{background:none;border:0;padding:0;font-size:inherit;color:inherit;overflow-wrap:normal;white-space:pre}
.kod .s{color:#A5E3A0}.kod .k{color:#8FB4FF}.kod .n{color:#F5C77E}.kod .b{color:#E59CFF}.kod .c{color:#7C8AA8;font-style:italic}.kod .t{color:#8FB4FF}.kod .a{color:#F5C77E}
.kopiruj{position:absolute;top:8px;right:8px;font:600 12px/1 system-ui,sans-serif;color:#C9D2E6;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:7px 10px;cursor:pointer;opacity:0;transition:opacity .15s ease-out}
.kod:hover .kopiruj,.kopiruj:focus-visible,.kopiruj.ok{opacity:1}
.kopiruj.ok{color:#A5E3A0}
@media (hover:none){.kopiruj{opacity:1}}

.box{display:flex;gap:12px;border-radius:var(--r);padding:13px 16px;margin:14px 0 20px;border:1px solid}
.box>div>*:last-child{margin-bottom:0}
.box-i{flex:none;width:20px;height:20px;border-radius:50%;margin-top:2px;display:grid;place-items:center;font:800 13px/1 system-ui,sans-serif}
.box.tip{background:var(--brand-soft);border-color:rgba(46,91,255,.25)}
.box.tip .box-i{background:var(--brand);color:#fff}
.box.tip .box-i::before{content:"i"}
.box.pozor{background:var(--amber-soft);border-color:rgba(180,83,9,.25)}
.box.pozor .box-i{background:var(--amber);color:#fff}
.box.pozor .box-i::before{content:"!"}

.tab{overflow-x:auto;margin:12px 0 22px;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}
.tab table{border-collapse:collapse;width:100%;font-size:14.5px}
.tab th,.tab td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.tab tr:last-child td{border-bottom:0}
.tab th{font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);font-weight:700;background:var(--bg-1)}
.tab td code{white-space:nowrap}
.pop{color:var(--muted)}
.stitok{display:inline-block;font-size:11.5px;font-weight:700;color:var(--amber);background:var(--amber-soft);border-radius:999px;padding:1px 8px;margin-left:4px;white-space:nowrap}

figure{margin:16px 0 24px}
.dva figure{max-width:340px}
figure img{display:block;border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--sh-1);background:var(--card)}
figcaption{font-size:14px;color:var(--muted);margin-top:8px}

.op{border:1px solid var(--line);background:var(--card);border-radius:var(--rm);padding:16px 18px 6px;margin:14px 0}
.op-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.op .cesta{font-size:14.5px;font-weight:650;background:none;border:0;padding:0}
.m{display:inline-block;min-width:62px;text-align:center;font:700 12px/1 var(--mono);padding:6px 7px;border-radius:7px;color:#fff;background:#5A6376}
.m-get{background:#1F8A4C}.m-post{background:#2E5BFF}.m-patch{background:#B7791F}.m-delete{background:#C53030}
.op-sum{margin:10px 0 4px!important;font-weight:600;color:var(--ink-2)}
.op-pop{color:var(--muted);font-size:15px}
.polia{list-style:none;padding-left:0!important;margin:0 0 10px!important;font-size:14.5px}
.polia .polia{padding-left:18px!important;border-left:1px solid var(--line);margin:4px 0 6px 4px!important}
.polia li{margin:5px 0}
.polia .typ{color:var(--faint);font-family:var(--mono);font-size:12.5px}
.polia .nep{font-size:11.5px;color:var(--faint);border:1px solid var(--line);border-radius:999px;padding:0 7px}
.op-chyby{font-size:13.5px;color:var(--faint)}
.op-chyby span{margin-right:6px}

.dalej{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line)}
.dalej a{display:block;border:1px solid var(--line);background:var(--card);border-radius:var(--r);padding:12px 16px;color:var(--ink)}
.dalej a:hover{border-color:var(--brand);text-decoration:none}
.dalej a span{display:block;font-size:12.5px;color:var(--faint);text-transform:uppercase;letter-spacing:.06em;font-weight:650}
.dalej a b{color:var(--brand-ink);font-weight:650}
.dalej .dal{text-align:right}

.toc{position:sticky;top:84px;align-self:start;max-height:calc(100vh - 100px);overflow:auto;font-size:14px}
.toc-n{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin-bottom:8px}
.toc ul{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}
.toc a{display:block;padding:5px 0 5px 14px;margin-left:-1px;border-left:2px solid transparent;color:var(--muted)}
.toc a:hover{color:var(--ink);text-decoration:none}
.toc a.on{color:var(--brand-ink);border-left-color:var(--brand)}

.pata{border-top:1px solid var(--line);background:var(--card)}
.pata-o{max-width:1360px;margin:0 auto;padding:28px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.pata-l{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:14px}
.pata-l img{height:34px;width:auto}
.pata-l p{margin:0}
.pata-odk{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px}
.pata-odk a{color:var(--muted)}
.pata-odk a:hover{color:var(--ink)}

.btn{display:inline-flex;align-items:center;gap:8px;font-weight:650;font-size:15px;padding:11px 18px;border-radius:var(--r);background:var(--brand);color:#fff}
.btn:hover{background:var(--brand-ink);text-decoration:none;color:#fff}
.nenajdene{max-width:560px;margin:18vh auto;padding:0 24px;text-align:center}
.nenajdene h1{font-size:34px;margin:0 0 10px;color:var(--ink-2)}
.nenajdene p{color:var(--muted)}

@media (max-width:1180px){
  .ram{grid-template-columns:240px minmax(0,1fr);gap:32px}
  .toc{display:none}
}
@media (max-width:860px){
  .ram{grid-template-columns:minmax(0,1fr);padding:20px 16px 48px}
  .menu-b{display:inline-grid}
  .nlink{display:none}
  .bocne{position:fixed;inset:64px 0 0 0;max-height:none;align-self:stretch;background:var(--bg);z-index:55;padding:18px 16px 40px;transform:translateX(-102%);transition:transform .22s ease-out;border-top:1px solid var(--line)}
  body.menu-otvorene .bocne{transform:none}
  body.menu-otvorene{overflow:hidden}
  .obsah h2{font-size:22px}
  .perex{font-size:17px}
  .dalej{grid-template-columns:1fr}
  .dalej .dal{text-align:left}
}
@media (max-width:520px){
  .jazyky svg{display:none}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.karta,.bocne{transition:none}}
@media print{.nav,.bocne,.toc,.dalej,.pata,.kopiruj{display:none}.ram{display:block}}
