:root{--bg:#eef2f3;--surface:#fff;--surface-2:#f5f8f9;--line:#d8e1e4;--fg:#15212a;--muted:#5a6a74;--accent:#0e6b63;--accent-soft:#dcefec;--ok:#1f8a4c;--ok-soft:#e2f4e9;--bad:#c0392b;--bad-soft:#fbe9e7;--warn:#b86e00;--warn-soft:#fdf0d9;--c1:#0e6b63;--c1-soft:#dcefec;--c2:#2f6fb5;--c2-soft:#e2edf8;--c3:#7a4fb0;--c3-soft:#eee6f7;--code-bg:#f3f6f7;--code-fg:#1d2b33;--k:#7a3fb0;--s:#1f7a45;--t:#2f6fb5;--cm:#7c8b93;--n:#b05a00;--font-body:"Vazirmatn", "Tahoma", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--radius:14px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)}:root:not([data-theme=light]){--bg:#0f1619;--surface:#172126;--surface-2:#1c282e;--line:#2b3b42;--fg:#e6eef1;--muted:#93a6ae;--accent:#4fc2b4;--accent-soft:#173a37;--ok:#5ccf8b;--ok-soft:#17352a;--bad:#ef7a6c;--bad-soft:#3a201d;--warn:#e9b04f;--warn-soft:#3a2e17;--c1:#4fc2b4;--c1-soft:#173a37;--c2:#6fb3e3;--c2-soft:#18303f;--c3:#b993e6;--c3-soft:#2c2340;--code-bg:#121b1f;--code-fg:#dbe6ea;--k:#c79bf2;--s:#7fd6a0;--t:#7fbfec;--cm:#7d9099;--n:#f0b46a;color-scheme:dark}}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)}:root[data-theme=dark]{--bg:#0f1619;--surface:#172126;--surface-2:#1c282e;--line:#2b3b42;--fg:#e6eef1;--muted:#93a6ae;--accent:#4fc2b4;--accent-soft:#173a37;--ok:#5ccf8b;--ok-soft:#17352a;--bad:#ef7a6c;--bad-soft:#3a201d;--warn:#e9b04f;--warn-soft:#3a2e17;--c1:#4fc2b4;--c1-soft:#173a37;--c2:#6fb3e3;--c2-soft:#18303f;--c3:#b993e6;--c3-soft:#2c2340;--code-bg:#121b1f;--code-fg:#dbe6ea;--k:#c79bf2;--s:#7fd6a0;--t:#7fbfec;--cm:#7d9099;--n:#f0b46a;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);text-align:start;overflow-wrap:break-word;margin:0;font-size:16.5px;line-height:2}.en{direction:ltr;unicode-bidi:isolate}a{color:var(--accent);text-underline-offset:3px}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}.topbar{top:env(safe-area-inset-top,0px);z-index:10;background:color-mix(in srgb, var(--bg) 88%, transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky}.topbar-in{flex-wrap:wrap;align-items:center;gap:.5rem;max-width:62rem;margin:0 auto;padding:.55rem 16px;display:flex}.brand{color:var(--fg);align-items:center;gap:.5rem;font-weight:800;text-decoration:none;display:flex}.brand svg{width:26px;height:26px}.topbar .sp{flex:1}.pill-link{border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .8rem;font-size:.88rem;font-weight:600;line-height:1.6;text-decoration:none;display:inline-flex}.pill-link:hover{border-color:var(--accent);color:var(--accent)}.wrap{max-width:50rem;margin:0 auto;padding-block:1.5rem 4rem;padding-inline:16px}.hero{padding-block:1.5rem 1rem}.eyebrow{letter-spacing:.02em;color:var(--accent);font-size:.82rem;font-weight:700}h1{text-wrap:balance;margin:.2rem 0 .6rem;font-size:clamp(1.9rem,5vw,2.7rem);font-weight:800;line-height:1.35}.lead{color:var(--muted);max-width:40rem;margin:0;font-size:1.12rem}.meta{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.chip{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:.15rem .65rem;font-size:.8rem}.toc{flex-wrap:wrap;gap:.4rem;margin:1.5rem 0 1rem;display:flex}.toc a{background:var(--surface);border:1px solid var(--line);color:var(--fg);border-radius:8px;padding:.2rem .7rem;font-size:.85rem;text-decoration:none}.toc a:hover{border-color:var(--accent);color:var(--accent)}section.step{margin-top:3rem;scroll-margin-top:4.5rem}h2{text-wrap:balance;margin:0 0 .6rem;font-size:1.5rem;font-weight:800;line-height:1.5}h2 .num{background:var(--accent);width:2rem;height:2rem;color:var(--surface);vertical-align:.15rem;border-radius:50%;place-items:center;margin-inline-end:.55rem;font-size:.95rem;display:inline-grid}h3{margin:1.6rem 0 .3rem;font-size:1.12rem;font-weight:700}p{margin:.5rem 0}ul,ol{margin:.5rem 0;padding-inline-start:1.4rem}[lang=fa] ol{list-style:persian}li{margin:.2rem 0}strong{font-weight:700}.figure{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:1.2rem 0;padding:1rem;overflow-x:auto}.figure svg{width:100%;min-width:520px;max-width:760px;height:auto;margin:0 auto;display:block}.figure.small svg{min-width:0;max-width:560px}.caption{color:var(--muted);text-align:center;margin-top:.4rem;font-size:.88rem;line-height:1.8}svg text{font-family:var(--font-body);fill:var(--fg)}svg .mono{font-family:var(--font-mono);direction:ltr}svg .muted{fill:var(--muted)}.note{background:var(--accent-soft);border-radius:12px;margin:1.2rem 0;padding:.8rem 1rem}.note b:first-child{color:var(--accent)}.note.bad{background:var(--bad-soft)}.note.bad b:first-child{color:var(--bad)}.note.warn{background:var(--warn-soft)}.note.warn b:first-child{color:var(--warn)}.compare{grid-template-columns:1fr 1fr;gap:.8rem;margin:1rem 0;display:grid}.compare>*{min-width:0}@media (width<=640px){.compare{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1rem}.card h4{margin:0 0 .3rem;font-size:1rem}.card h4 .tag{margin-inline-end:.35rem}.card.good{border-top:4px solid var(--ok)}.card.bad{border-top:4px solid var(--bad)}.tag{border-radius:6px;padding:.05rem .5rem;font-size:.75rem;font-weight:700}.tag.ok{background:var(--ok-soft);color:var(--ok)}.tag.no{background:var(--bad-soft);color:var(--bad)}pre{text-align:left;background:var(--code-bg);color:var(--code-fg);border:1px solid var(--line);font:13.5px/1.7 var(--font-mono);tab-size:4;font-variant-ligatures:none;direction:ltr;unicode-bidi:isolate;border-radius:12px;margin:.8rem 0;padding:.9rem 1rem;overflow-x:auto}pre code{font:inherit;background:0 0;padding:0}.card pre{margin-bottom:0}.astro-code{background:var(--code-bg)!important}.astro-code,.astro-code span{color:var(--shiki-light)}.code-label{color:var(--muted);margin-bottom:-.4rem;font-size:.8rem}.table-wrap{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin:1rem 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.93rem}th,td{border-bottom:1px solid var(--line);vertical-align:top;text-align:right;padding:.55rem .8rem}th{background:var(--surface-2);font-weight:700}tr:last-child td{border-bottom:0}.demo{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:1.2rem 0;overflow:hidden}.demo-head{background:var(--surface-2);border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:.6rem 1rem;font-weight:700;display:flex}.demo-head .live{background:var(--ok);width:8px;height:8px;box-shadow:0 0 0 4px var(--ok-soft);border-radius:50%}.demo-body{padding:1rem}.btns{flex-wrap:wrap;gap:.5rem;margin:.4rem 0 .8rem;display:flex}.btn{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface-2);color:var(--fg);border-radius:10px;padding:.35rem .9rem;font-size:.9rem;font-weight:600;line-height:1.6}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}.btn.primary:hover:not(:disabled){color:var(--surface);filter:brightness(1.08)}.btn.danger{color:var(--bad)}.log{gap:.3rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.log li{background:var(--surface-2);border-radius:8px;margin:0;padding:.3rem .7rem}.log li.ok{background:var(--ok-soft)}.log li.bad{background:var(--bad-soft)}.log li.warn{background:var(--warn-soft)}.summary{border-radius:var(--radius);background:var(--surface);border:2px solid var(--accent);margin-top:3rem;padding:1.2rem 1.3rem}.summary h2{margin-bottom:.3rem}.summary ol{margin:0}.related{flex-wrap:wrap;gap:.4rem;margin-top:.6rem;display:flex}.footer-nav{flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-top:2.5rem;display:flex}svg .box{fill:var(--surface);stroke:var(--line);stroke-width:1.5px}svg .box2{fill:var(--surface-2);stroke:var(--line);stroke-width:1.5px}svg .accent-box{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2px}svg .ok-box{fill:var(--ok-soft);stroke:var(--ok);stroke-width:2px}svg .bad-box{fill:var(--bad-soft);stroke:var(--bad);stroke-width:2px}svg .warn-box{fill:var(--warn-soft);stroke:var(--warn);stroke-width:2px}svg .c1{fill:var(--c1-soft);stroke:var(--c1);stroke-width:2px}svg .c2{fill:var(--c2-soft);stroke:var(--c2);stroke-width:2px}svg .c3{fill:var(--c3-soft);stroke:var(--c3);stroke-width:2px}svg .t-c1{fill:var(--c1)}svg .t-c2{fill:var(--c2)}svg .t-c3{fill:var(--c3)}svg .t-accent{fill:var(--accent)}svg .t-ok{fill:var(--ok)}svg .t-bad{fill:var(--bad)}svg .t-warn{fill:var(--warn)}svg .line{stroke:var(--muted);stroke-width:2px;fill:none}svg .line-accent{stroke:var(--accent);stroke-width:2.5px;fill:none}svg .line-ok{stroke:var(--ok);stroke-width:2.5px;fill:none}svg .line-bad{stroke:var(--bad);stroke-width:2.5px;fill:none}svg .line-warn{stroke:var(--warn);stroke-width:2.5px;fill:none}svg .dash{stroke-dasharray:7 6}svg .f-muted{fill:var(--muted)}svg .f-accent{fill:var(--accent)}svg .f-ok{fill:var(--ok)}svg .f-bad{fill:var(--bad)}svg .f-warn{fill:var(--warn)}svg .f-surface{fill:var(--surface)}svg .b{font-weight:700}.site-footer{border-top:1px solid var(--line);margin-top:3rem}.site-footer .wrap{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.6rem;padding-block:1.2rem 2rem;font-size:.88rem;display:flex}.banner{background:var(--warn-soft);border-radius:12px;margin:1rem 0;padding:.7rem 1rem;font-size:.93rem}.badge{vertical-align:middle;border-radius:6px;padding:.05rem .55rem;font-size:.75rem;font-weight:700;line-height:1.7;display:inline-block}.badge.must{background:var(--accent);color:var(--surface)}.badge.good{background:var(--c2-soft);color:var(--c2)}.badge.specialist{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}.badge.draft{background:var(--warn-soft);color:var(--warn)}.badge.reviewed{background:var(--ok-soft);color:var(--ok)}.badge.ai{background:var(--c3-soft);color:var(--c3)}.prose{counter-reset:step}.prose>h2{counter-increment:step;margin-top:3rem;scroll-margin-top:4.5rem}.prose>h2:before{content:counter(step, var(--counter-style,decimal));background:var(--accent);width:2rem;height:2rem;color:var(--surface);vertical-align:.15rem;border-radius:50%;place-items:center;margin-inline-end:.55rem;font-size:.95rem;display:inline-grid}[lang=fa]{--counter-style:persian}.prose>h2.no-num:before{display:none}.lang-menu{position:relative}.lang-menu summary{cursor:pointer;list-style:none}.lang-menu summary::-webkit-details-marker{display:none}.lang-menu summary svg{width:18px;height:18px}.lang-menu ul{inset-inline-end:0;background:var(--surface);border:1px solid var(--line);z-index:20;border-radius:12px;min-width:9rem;margin:0;padding:.3rem;list-style:none;position:absolute;top:calc(100% + .35rem);box-shadow:0 8px 24px #0000001f}.lang-menu li{margin:0}.lang-menu a{color:var(--fg);border-radius:8px;padding:.3rem .7rem;text-decoration:none;display:block}.lang-menu a:hover{background:var(--accent-soft)}.lang-menu a[aria-current=page]{color:var(--accent);font-weight:700}.main-menu{flex-wrap:wrap;gap:.1rem .3rem;font-size:.9rem;display:flex}.main-menu a,.main-menu .soon{color:var(--fg);border-radius:8px;padding:.2rem .55rem;text-decoration:none}.main-menu a:hover{color:var(--accent)}.main-menu a[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:700}.main-menu .soon{color:var(--muted)}.main-menu small{font-size:.75rem}@media (width<=640px){.main-menu{order:3;width:100%}}.list-grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.8rem;margin-bottom:2rem;display:grid}.list-card{color:var(--fg);flex-direction:column;text-decoration:none;display:flex}.list-card:hover{border-color:var(--accent)}.list-card h3{margin:0 0 .2rem}.list-card p{color:var(--muted);flex:1;margin:0}.list-card.empty{border-style:dashed}.list-card.empty h3{color:var(--muted)}.form{gap:.6rem;max-width:30rem;margin-bottom:1rem;display:grid}.form label{gap:.2rem;font-weight:600;display:grid}.form input,.form select,.form textarea{font:inherit;border:1px solid var(--line);background:var(--surface-2);color:var(--fg);border-radius:8px;padding:.4rem .6rem}
