:root{
  --bg:#F4EEF7; --glow:rgba(214,60,190,.18); --glow2:rgba(96,100,255,.12);
  --surface:#fbf8fd; --solid:#FFFFFF; --surface2:#EDE4F2; --ink:#20142A; --muted:#5A4C67; --line:#E0D3E8;
  --led:#C42BAA; --led2:#5961F0; --accent:#F29A1F; --on-accent:#23150A; --accent-ink:#8A4E08;
  --leaf:#3F9E5E; --leaf2:#2C7C47; --leafLate:#B9A23C; --stem:#4A8C4E; --pot:#3B3342; --soil:#5A4535;
  --bud:#8DBE6C; --budPur:#9A55D8; --pistil:#FFFFFF; --pistil2:#E8843A; --dry:#E0A040; --cure:#9A6B45;
  --water:#2A84C9; --feed:#E08A12; --train:#2E9A5A; --stage:#C42BAA; --check:#7A6A86; --danger:#D2334A; --warn-bg:#FBE9D2;
  --display:"Bricolage Grotesque", system-ui, "Segoe UI", sans-serif;
  --sans:"Familjen Grotesk", system-ui, "Segoe UI", sans-serif;
  --lift:0 16px 28px color-mix(in srgb, var(--ink) 16%, transparent), 0 4px 8px color-mix(in srgb, var(--ink) 8%, transparent);
  --sky-grain:.04;
  --app:480px;
  --fs-tab:12px;
  --fs-card-sm:13px;
  --tap:44px;
  --tabs-h:calc(68px + env(safe-area-inset-bottom,0px));
  --pots-h:122px;
  box-sizing:border-box;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
    --bg:#110C17; --glow:rgba(236,80,214,.26); --glow2:rgba(120,110,255,.18);
    --surface:#1d1527; --solid:#1C1425; --surface2:#291F35; --ink:#F5EFF8; --muted:#C9BDD4; --line:#382C46;
    --led:#F05BDB; --led2:#8C80FF; --accent:#FFB23E; --on-accent:#23150A; --accent-ink:#FFD08A;
    --leaf:#5DCC84; --leaf2:#3FA766; --leafLate:#D2BB4C; --stem:#63AB67; --pot:#2D2535; --soil:#4B392C;
    --bud:#A6D886; --budPur:#C98DFF; --pistil:#FFF6FC; --pistil2:#FF9A4A; --dry:#FFB23E; --cure:#B98356;
    --water:#5FB4F2; --feed:#FFB23E; --train:#5DCC84; --stage:#F05BDB; --check:#AC9EB8; --danger:#FF6B7C; --warn-bg:#3A291C;
    --lift:0 24px 36px rgb(0 0 0 / .64), 0 8px 12px rgb(0 0 0 / .42);
    --sky-grain:.07;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#110C17; --glow:rgba(236,80,214,.26); --glow2:rgba(120,110,255,.18);
  --surface:#1d1527; --solid:#1C1425; --surface2:#291F35; --ink:#F5EFF8; --muted:#C9BDD4; --line:#382C46;
  --led:#F05BDB; --led2:#8C80FF; --accent:#FFB23E; --on-accent:#23150A; --accent-ink:#FFD08A;
  --leaf:#5DCC84; --leaf2:#3FA766; --leafLate:#D2BB4C; --stem:#63AB67; --pot:#2D2535; --soil:#4B392C;
  --bud:#A6D886; --budPur:#C98DFF; --pistil:#FFF6FC; --pistil2:#FF9A4A; --dry:#FFB23E; --cure:#B98356;
  --water:#5FB4F2; --feed:#FFB23E; --train:#5DCC84; --stage:#F05BDB; --check:#AC9EB8; --danger:#FF6B7C; --warn-bg:#3A291C;
  --lift:0 24px 36px rgb(0 0 0 / .64), 0 8px 12px rgb(0 0 0 / .42);
  --sky-grain:.07;
  color-scheme:dark;
}
@keyframes tentLed{from{opacity:.78}to{opacity:1}}
@keyframes tentFan{to{transform:rotate(360deg)}}
@keyframes tentFanYaw{
  0%{transform:rotateY(-40deg)}
  50%{transform:rotateY(40deg)}
  100%{transform:rotateY(-40deg)}
}
@keyframes tentFanSweep{
  0%,4%{transform:rotateY(-38deg)}
  46%,54%{transform:rotateY(38deg)}
  96%,100%{transform:rotateY(-38deg)}
}
@keyframes tentFanNod{
  0%{transform:rotateX(-32deg)}
  50%{transform:rotateX(32deg)}
  100%{transform:rotateX(-32deg)}
}
.muted{color:var(--muted)}
.small{font-size:14px}
@media (hover:none){.scard:hover{border-color:var(--line)}
}
.psvg .lf > path,.psvg ellipse.lf{fill:var(--leaf)}
.psvg .lf .veins path{fill:none; stroke:rgba(255,255,255,.28); stroke-width:.7}
.psvg .lf > path:nth-child(odd){fill:var(--leaf2)}
.psvg .stem{stroke:var(--stem); stroke-width:3.4; fill:none; stroke-linecap:round; stroke-linejoin:round}
.psvg .stem.thin{stroke-width:2.2}
.psvg .bud circle{fill:var(--bud)}
.psvg .bud.frost circle{fill:color-mix(in srgb, var(--bud) 72%, #fff)}
.psvg .pst circle{fill:var(--pistil)}
.psvg .pst2 circle{fill:var(--pistil2)}
.psvg .pot{fill:var(--pot)}
.psvg .soil{fill:#4a4036}
.psvg .fp{fill:#1c1a24}
.psvg .fp-lit{fill:#32303c}
.psvg .fp-rim{fill:#4a4856}
.psvg .fp-stitch{stroke:#6a6674; fill:none; stroke-width:.9; stroke-dasharray:1.6 2.2; opacity:.95}
.psvg .sun{fill:var(--accent); filter:drop-shadow(0 0 8px var(--accent))}
.psvg .glass{fill:color-mix(in srgb, var(--ink) 6%, transparent); stroke:var(--muted); stroke-width:2.2}
.psvg .lid{fill:var(--accent)}
.psvg .seed{fill:#9A7650}
.panel{background:var(--solid); border:1px solid var(--line); border-radius:24px; padding:16px; margin-top:12px; box-shadow:var(--lift)}
.kv{display:grid; grid-template-columns:max-content 1fr; gap:8px 16px; font-size:15px}
.kv dt{color:var(--muted); font-weight:600}
.kv dd{margin:0}
label.f{display:block; margin-bottom:12px; font-size:14px; font-weight:700}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:0 12px}
.psvg .tie{stroke:#c9b08a; stroke-width:1.55; fill:none; stroke-linecap:round}
.tips{margin:12px 0 10px; padding-left:20px}
.tips li{margin:5px 0}
.slist{display:grid; gap:10px; margin-top:12px}
.scard{background:var(--solid); border:1px solid var(--line); border-radius:22px; padding:14px 16px; cursor:pointer; text-align:left; width:100%; display:block; box-shadow:var(--lift); transition:border-color .15s, transform .12s}
.scard:hover{border-color:var(--muted)}
.scard:active{transform:scale(.99)}
.sname{font-family:var(--display); font-weight:800; font-size:21px; letter-spacing:-.02em; line-height:1.1}
.shead{display:flex; justify-content:space-between; gap:10px; align-items:flex-start}
.filters{display:flex; flex-wrap:wrap; gap:6px; overflow:visible; max-width:100%; width:100%; min-width:0}
.filters{margin-top:10px}
.abadge{display:inline-block; font-style:normal; font-size:11.5px; font-weight:700; padding:2px 8px; border-radius:999px; white-space:nowrap; vertical-align:1px}
.abadge:empty{display:none}
.abadge.a3{background:color-mix(in srgb, var(--leaf) 18%, transparent); color:var(--leaf)}
.abadge.a2{background:color-mix(in srgb, var(--accent) 20%, transparent); color:var(--accent-ink)}
.abadge.a1{background:color-mix(in srgb, var(--danger) 16%, transparent); color:var(--danger)}
.steps{margin:6px 0 12px; padding-left:22px}
.steps li{margin:7px 0; padding-left:4px}
.steps li::marker{font-family:var(--display); font-weight:800; color:var(--led)}
.animbox{background:linear-gradient(170deg, color-mix(in srgb, var(--led) 14%, var(--solid)), var(--solid)); border:1px solid var(--line); border-radius:22px; padding:6px; margin-bottom:14px}
.animbox .anim{width:100%; height:auto; display:block; aspect-ratio:16/10; min-height:176px}
.anim .acap{fill:var(--ink); font:700 12px var(--sans)}
.anim .net{stroke:var(--accent); stroke-width:2; stroke-dasharray:5 3; fill:none}
.anim .tie{stroke:var(--accent); stroke-width:2; fill:none; stroke-dasharray:3 2}
.anim .finger{fill:var(--accent); opacity:.9}
.anim .flash{fill:none; stroke:var(--accent); stroke-width:2}
.anim .knuckle{fill:var(--stem)}
.anim .lfdot{fill:var(--leaf)}
.anim .third{stroke:var(--muted); stroke-width:1.5; stroke-dasharray:4 4}
.anim .shadow{fill:#000; opacity:.22}
.anim .pot{fill:var(--pot)}
.anim .potshade{fill:#000; opacity:.18}
.anim .potrim{fill:color-mix(in srgb, var(--pot) 75%, #fff 25%)}
.anim .cappill{fill:var(--solid); opacity:.88}
.anim .scis2 .blade{fill:#d7dde2; stroke:#8f9aa3; stroke-width:.6}
.anim .scis2 .shank{stroke:#8f9aa3; stroke-width:2.2; stroke-linecap:round}
.anim .scis2 .handle{fill:none; stroke:var(--accent); stroke-width:3.2}
.anim .scis2 .pivot{fill:#5d666d}
.anim .finger{fill:#e9b48f; stroke:#b9825e; stroke-width:1}
.anim .nail{fill:#f7dccb}
.anim .capn{fill:var(--led)}
.anim .capnum{fill:#fff; font:800 11px var(--sans)}
.anim .acap{fill:var(--ink); font:700 12px var(--sans)}
.anim .cutline{stroke:var(--danger); stroke-width:2.5; stroke-dasharray:4 3; stroke-linecap:round}
.anim .ring{fill:none; stroke:var(--accent); stroke-width:2.5}
.anim .arrow{fill:none; stroke:var(--accent); stroke-width:2.5; stroke-linecap:round}
.anim .arrowhead{fill:var(--accent)}
.anim .zone{fill:var(--danger); fill-opacity:.16; stroke:var(--danger); stroke-dasharray:4 3}
.anim .calyx{fill:var(--leaf2)}
.anim .pistilhair{stroke:var(--pistil2); stroke-width:2.5; fill:none; stroke-linecap:round}
.anim .tstalk{stroke:#F3F0EA; stroke-opacity:.8; stroke-width:2}
.anim .thead{stroke:#F3F0EA; stroke-width:1.2}
.anim .loupe{fill:none; stroke:var(--ink); stroke-width:4; stroke-linecap:round; opacity:.8}
.anim .hang{stroke:var(--muted); stroke-width:2}
.anim .sugar{fill:var(--leaf)}
.anim .fanring{fill:none; stroke:var(--muted); stroke-width:2}
.anim .fanblade{fill:var(--muted)}
.anim .air{fill:none; stroke:var(--water); stroke-width:2; stroke-dasharray:8 6; stroke-linecap:round}
.anim .meters text{fill:var(--muted); font:700 12px var(--sans)}
.anim .dayc{fill:var(--accent); font:800 13px var(--sans)}
.anim .crack{fill:none; stroke:var(--danger); stroke-width:2.2}
.anim .snaptxt{fill:var(--danger); font:800 15px var(--display)}
.anim .snaptxt.soft{fill:var(--muted)}
.anim .hygro{fill:var(--solid); stroke:var(--line); stroke-width:2}
.anim .hyg{font:800 14px var(--sans)}
.anim .hyg.bad{fill:var(--danger)}
.anim .hyg.good{fill:var(--leaf)}
.envsvg .ground{fill:var(--soil)}
.envsvg .glass2{fill:color-mix(in srgb, var(--led2) 12%, transparent); stroke:var(--muted); stroke-width:2}
.envsvg .glassline{stroke:var(--muted); stroke-width:1; opacity:.5}
.envsvg .vent{fill:var(--surface2); stroke:var(--muted)}
.envsvg .heat{fill:none; stroke:var(--accent); stroke-width:2; stroke-linecap:round}
.envsvg .wall{fill:color-mix(in srgb, var(--ink) 7%, transparent)}
.envsvg .door{fill:none; stroke:var(--muted); stroke-width:1.5}
.envsvg .floor{stroke:var(--muted); stroke-width:3}
.envsvg .rail{stroke:var(--muted); stroke-width:2}
.envsvg .wind{stroke:var(--water); stroke-width:2; stroke-linecap:round}
.envsvg .soilbed{fill:var(--soil)}
.envsvg .cloud{fill:var(--muted); opacity:.8}
.envsvg .drop{stroke:var(--water); stroke-width:2; stroke-linecap:round}
.envsvg .sky{fill:color-mix(in srgb, var(--led2) 16%, transparent)}
.envsvg .frame{fill:none; stroke:var(--muted); stroke-width:3}
.envsvg .beam{fill:var(--accent)}
.envsvg .sill{fill:var(--muted); opacity:.6}
.envsvg .arrow2{fill:none; stroke:var(--accent); stroke-width:2.5}
.season{display:grid; gap:6px; font-size:11px}
.shead2,.srow{display:grid; grid-template-columns:86px 1fr; gap:8px; align-items:center}
.smonths{display:grid; grid-template-columns:repeat(12,1fr); color:var(--muted); font-weight:700; text-align:center}
.slabel{font-weight:700; color:var(--muted); font-size:12px}
.strack{position:relative; height:26px; display:grid; grid-template-columns:repeat(12,1fr); gap:1px; background:var(--line); border-radius:8px; overflow:hidden}
.strack i{background:var(--surface2)}
.sband{position:absolute; top:3px; bottom:3px; border-radius:6px; font-weight:700; font-size:10.5px; color:#fff; padding:0 5px; display:flex; align-items:center; overflow:hidden; white-space:nowrap}
.slegend{display:flex; flex-wrap:wrap; gap:4px 12px; color:var(--muted); font-weight:600; margin-top:4px}
.slegend span{display:inline-flex; align-items:center; gap:5px}
.slegend .sband{position:static; display:inline-block; width:14px; height:8px; padding:0; border-radius:3px}
.b-seed{background:color-mix(in srgb, var(--leaf) 60%, #000)}
.b-veg{background:var(--leaf2)}
.b-flower{background:var(--flower, var(--bud))}
.b-harvest{background:var(--accent); color:var(--on-accent)}
.calcout{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.cbox{background:var(--surface2); border-radius:14px; padding:10px 12px}
.cbox b{display:block; font-family:var(--display); font-size:20px; letter-spacing:-.02em}
.cbox span{font-size:var(--fs-card-sm); color:var(--muted)}
.verdict{font-size:11.5px; font-weight:800; padding:3px 9px; border-radius:999px; white-space:nowrap; align-self:flex-start}
.verdict.ok{background:color-mix(in srgb, var(--leaf) 18%, transparent); color:var(--leaf)}
.verdict.no{background:color-mix(in srgb, var(--danger) 16%, transparent); color:var(--danger)}
.verdict.mid{background:color-mix(in srgb, var(--accent) 20%, transparent); color:var(--accent-ink)}
details.fert summary{list-style:none; cursor:pointer}
details.fert summary::-webkit-details-marker{display:none}
.defsvg .defbadge rect{fill:var(--solid); opacity:.9}
.defsvg .defbadge text{fill:var(--leaf); font:800 11px var(--sans)}
.defsvg .defbadge text.bad{fill:var(--danger)}
.envsvg .daybar{fill:var(--accent)}
details.adv{margin-top:26px; background:var(--surface); border:1px solid var(--line); border-radius:22px; padding:14px 16px}
details.adv summary{cursor:pointer; font-weight:800; font-family:var(--display); font-size:17px; min-height:var(--tap); display:flex; align-items:center}
.psvg .pot{fill:#1c1a24}
.psvg .fp{fill:#1c1a24}
.psvg .fp-lit{fill:#34323e}
.psvg .fp-rim{fill:#4c4a58}
.cureweeks{display:grid; gap:8px}
.cureweeks > div{display:grid; grid-template-columns:84px 1fr; gap:2px 10px; background:var(--surface2); border-radius:14px; padding:10px 12px}
.cureweeks em{font-style:normal; font-weight:800; font-size:var(--fs-card-sm); color:var(--led); grid-row:span 2; padding-top:2px}
.cureweeks b{font-size:15px}
.cureweeks span{font-size:13.5px; color:var(--muted)}
.rhcheck{background:var(--surface2); border-radius:16px; padding:12px}
.rhcheck input[type=range]{width:100%; accent-color:var(--led); margin-top:8px}
.rhres{display:grid; gap:4px; margin-top:10px; padding:10px 12px; border-radius:12px; border-left:4px solid var(--check)}
.rhres.ok{border-color:var(--leaf); background:color-mix(in srgb, var(--leaf) 12%, transparent)}
.rhres.mid{border-color:var(--accent); background:color-mix(in srgb, var(--accent) 12%, transparent)}
.rhres.no{border-color:var(--danger); background:color-mix(in srgb, var(--danger) 12%, transparent)}
.rhres span{font-size:14px}
.note{background:var(--warn-bg); border-radius:18px; padding:12px 14px; font-size:15px}
@keyframes sp{to{transform:rotate(360deg)}}
.gbox .gb-fabric{fill:#0d0a12}
.gbox .gb-frame{fill:none; stroke:#4a4453; stroke-width:2.5}
.gbox .gb-seam{stroke:#c9ced6; stroke-opacity:.07; stroke-width:1}
.gbox .gb-rail{stroke:#5b5566; stroke-width:2}
.gbox .gb-cord{stroke:#6b6576; stroke-width:1}
.gbox .gb-lamp{fill:#2a2531; stroke:#77707f; stroke-width:1}
.gbox .gb-filter{fill:#2b2531; stroke:#6b6576; stroke-width:1}
.gbox .gb-rib{stroke:#6b6576; stroke-width:.8}
.gbox .gb-inline{fill:#3a3442; stroke:#6b6576; stroke-width:.8}
.gbox .gb-air{fill:var(--water)}
.gbox .gb-fanring{fill:none; stroke:#8d8697; stroke-width:1.5}
.gbox .gb-blade{fill:#8d8697}
.gbox .gb-night{fill:#05020a}
.gbox .gb-dim{stroke:var(--accent); stroke-width:1.4; fill:none; stroke-dasharray:3 2}
.tipgrid{display:grid; gap:10px}
.tipc{background:var(--solid); border:1px solid var(--line); border-left:4px solid var(--leaf); border-radius:18px; padding:12px 14px; display:grid; gap:4px; box-shadow:var(--lift)}
.tipc.chyba{border-left-color:var(--accent)}
.tipc .tipk{font-size:11.5px; font-weight:800; text-transform:none; color:var(--leaf)}
.tipc.chyba .tipk{color:var(--accent-ink)}
.tipc b{font-size:15.5px}
.tipc p{margin:0; font-size:14px; color:var(--muted)}
@media (min-width:640px){.tipgrid{grid-template-columns:1fr 1fr}
}
.scenelegend{display:flex; flex-wrap:wrap; gap:6px; margin:-4px 0 14px}
.scenelegend span{font-size:var(--fs-card-sm); font-weight:700; color:var(--muted); background:var(--surface2); border:1px solid var(--line); border-radius:999px; padding:4px 10px}
.scenestats{display:grid; grid-template-columns:repeat(auto-fit, minmax(72px, 1fr)); gap:8px; margin:-4px 0 14px}
.sst{background:var(--surface2); border:1px solid var(--line); border-radius:14px; padding:8px 10px; display:grid; gap:2px; min-width:0}
.sst span{font-size:var(--fs-card-sm); font-weight:700; color:var(--muted)}
.sst b{font-family:var(--display); font-size:17px; letter-spacing:-.01em; line-height:1.15}
.sst.warm b{color:#ff9a4a}
.sst.cool b{color:var(--water)}
.sst.acc b{color:var(--accent-ink)}
.sst .daybar{position:relative; display:block; height:5px; border-radius:3px; background:var(--surface); border:1px solid var(--line); margin-top:5px; overflow:hidden}
.sst .daybar em{position:absolute; left:0; top:0; bottom:0; background:var(--accent); border-radius:3px}
@media (max-width:420px){.scenestats{grid-template-columns:1fr 1fr}
}
@keyframes rise{from{opacity:0}to{opacity:1}}
.grid2,.calcout{grid-template-columns:repeat(2,minmax(0,1fr))}
.shead2,.srow{grid-template-columns:86px minmax(0,1fr)}
.scard,.shead > *{min-width:0}
.shead{flex-wrap:wrap}
.scard,.kv dt,.kv dd,.sname{overflow-wrap:anywhere; hyphens:auto}
@media (max-width:520px){.kv dt{max-width:38vw}
.verdict,.abadge{white-space:normal}
}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 var(--sans)}
a{color:var(--led)}
.wrap{max-width:44rem;margin:0 auto;padding:0 16px}
header.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px}
.brand{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:-.03em;text-decoration:none;color:var(--ink);display:inline-flex;align-items:center;min-height:44px}
.brand i{color:var(--led);font-style:normal}
.topr{display:flex;align-items:center;gap:6px}
.langlink{font-size:14px;font-weight:700;min-height:44px;display:inline-flex;align-items:center;padding:0 6px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:999px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;border:1.5px solid var(--line);background:var(--solid);color:var(--ink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.sm{min-height:40px;padding:8px 14px;font-size:14px}
.btn:focus-visible,a:focus-visible{outline:3px solid var(--led);outline-offset:2px}
nav.chips{display:flex;gap:8px;overflow-x:auto;padding:12px 0 4px;margin:0 -16px;padding-left:16px;padding-right:16px;scrollbar-width:none}
nav.chips::-webkit-scrollbar{display:none}
nav.chips a{flex:none;font-size:14px;font-weight:700;text-decoration:none;color:var(--ink);border:1.5px solid var(--line);background:var(--solid);border-radius:999px;padding:8px 14px;min-height:40px;display:inline-flex;align-items:center}
nav.chips a[aria-current="page"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.crumb{font-size:14px;margin:18px 0 0}
h1{font-family:var(--display);font-size:clamp(28px,7vw,40px);line-height:1.1;margin:10px 0 12px;letter-spacing:-.025em}
h2{font-family:var(--display);font-size:clamp(22px,5vw,27px);line-height:1.2;margin:40px 0 12px;letter-spacing:-.015em;scroll-margin-top:12px}
h3{font-size:18px;margin:22px 0 8px}
.lead{font-size:18px;margin:0 0 8px;color:var(--ink)}
.toc{background:var(--solid);border:1px solid var(--line);border-radius:18px;padding:14px 16px;margin:20px 0}
.toc b{display:block;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.toc ul{margin:0;padding:0;list-style:none;columns:2 14rem;column-gap:16px}
.toc li{margin:0;break-inside:avoid}
.toc a{display:inline-flex;min-height:36px;align-items:center;font-weight:600}
article.item{background:var(--solid);border:1px solid var(--line);border-radius:22px;padding:18px;margin:16px 0}
article.item h2{margin-top:6px}
article.item .animbox{border-radius:16px;overflow:hidden;background:var(--surface2)}
article.item .animbox svg{display:block;width:100%;height:auto}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px}
.panel h3{margin-top:0;font-size:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr}
@media (max-width:560px){.grid2{grid-template-columns:1fr}}
.kv{display:grid;grid-template-columns:minmax(7rem,max-content) minmax(0,1fr);gap:8px 16px;margin:0}
.kv dt{font-weight:700} .kv dd{margin:0}
@media (max-width:420px){.kv{grid-template-columns:1fr;gap:2px}.kv dt{color:var(--muted);font-size:13px}.kv dd{margin-bottom:10px}}
ol.steps{padding-left:1.3em} ol.steps li,ul.tips li{margin:0 0 8px}
ul.tips{padding-left:1.2em}
.small{font-size:14px}
.muted{color:var(--muted)}
.note{margin-top:12px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--accent) 14%,transparent);font-size:15px}
a.term{color:inherit;text-decoration:underline dotted;text-underline-offset:3px}
table.typ{width:100%;border-collapse:collapse;font-size:15px}
table.typ th,table.typ td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
table.typ thead th{font-size:13px;color:var(--muted)}
.pics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media (max-width:520px){.pics{grid-template-columns:repeat(2,1fr)}}
.pics figure{margin:0;background:var(--solid);border:1px solid var(--line);border-radius:16px;padding:8px;text-align:center}
.pics svg{width:100%;height:auto;display:block}
.pics figcaption{font-size:13px;color:var(--muted);margin-top:4px;line-height:1.35}
.cards{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));margin:20px 0}
.cards a{display:block;text-decoration:none;color:var(--ink);background:var(--solid);border:1px solid var(--line);border-radius:20px;padding:16px;min-height:44px}
.cards a b{display:block;font-family:var(--display);font-size:20px;margin-bottom:4px}
.cards a span{color:var(--muted);font-size:15px}
.cta{background:var(--solid);border:2px solid var(--led);border-radius:22px;padding:18px;margin:36px 0 0}
.cta h2{margin:0 0 8px}
.cta .row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
dl.glist{margin:0} dl.glist dt{font-weight:700;font-size:17px;margin-top:16px;scroll-margin-top:12px} dl.glist dd{margin:4px 0 0}
dl.glist dt:target{color:var(--led)}
.legal{font-size:14px;color:var(--muted);margin:28px 0 0}
footer{padding:20px 0 44px;color:var(--muted);font-size:14px}
footer nav{display:flex;flex-wrap:wrap;gap:4px 16px}
footer a{display:inline-flex;align-items:center;min-height:44px;font-weight:700}
details.scard{background:var(--solid);border:1px solid var(--line);border-radius:18px;padding:14px 16px;margin:10px 0}
details.scard summary{cursor:pointer;list-style:none}
details.scard summary::-webkit-details-marker{display:none}
.sname{font-weight:700}
.shead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}
.tipgrid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}
.tipc{background:var(--solid);border:1px solid var(--line);border-radius:16px;padding:14px}
.tipc b{display:block;margin:4px 0}
.tipc p{margin:0;font-size:15px}
.tipk{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
