:root{--brand-bg: #0f1115;--surface: #151922;--surface-border: #262c39;--text: #e8ecf1;--muted: #b4bcc8;--link: #4da3ff;--accent: #ffc107;--ok: #22c55e;--radius: 14px;--shadow: 0 8px 30px rgba(0,0,0,.25);--gap: 16px;--line: 1px solid var(--surface-border);--cta-bg: #4da3ff;--cta-text: #0b1120}.dark{--brand-bg: #0c0e13;--surface: #121621;--surface-border: #222737;--link: #72b4ff}html,body{background:var(--brand-bg);color:var(--text)}a{color:var(--link);text-decoration:none}.stack{display:flex;flex-direction:column;gap:var(--gap)}.row{display:flex;flex-wrap:wrap;gap:var(--gap)}@media (max-width: 640px){.row{gap:12px}}.card{background:var(--surface);border:var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}h1,h2,h3{line-height:1.2;margin:0 0 .5rem}h1{font-size:clamp(1.8rem,2.8vw,2.6rem)}h2{font-size:clamp(1.4rem,2.2vw,1.8rem);color:var(--muted)}.label{display:block;margin:0 0 .35rem;font-weight:600;color:var(--text)}.label .muted{font-weight:400}.required{color:var(--accent)}.input{width:100%;background:#0b0e15;color:var(--text);border:var(--line);border-radius:calc(var(--radius) - 6px);padding:.65rem .75rem;outline:none;transition:border-color .15s ease,box-shadow .15s ease;box-shadow:0 0 #4da3ff00}.input::placeholder{color:color-mix(in srgb,var(--muted) 70%,transparent)}.input:focus{border-color:var(--link);box-shadow:0 0 0 3px color-mix(in srgb,var(--link) 25%,transparent)}.input-error{border-color:#ef4444;box-shadow:0 0 0 3px #ef444433}.hint{margin-top:.35rem;font-size:.875rem}.error-text{margin-top:.35rem;font-size:.875rem;color:#ff6b6b}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:42px;padding:.7rem 1rem;border-radius:calc(var(--radius) - 8px);font-weight:700;text-decoration:none;cursor:pointer;border:1px solid transparent;outline:none;transition:transform .06s ease,box-shadow .06s ease,filter .15s ease,background .15s ease,border-color .15s ease,color .15s ease}.btn-primary{background:var(--cta-bg, var(--accent));color:var(--cta-text, #111);border-color:color-mix(in srgb,var(--cta-bg, var(--accent)) 45%,#000);box-shadow:0 10px 24px #00000059,inset 0 1px #ffffff0d}.btn-primary:hover{filter:brightness(1.07);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0);box-shadow:0 6px 16px #00000059}.btn-secondary{background:transparent;color:var(--text);border-color:var(--surface-border);box-shadow:none}.btn-secondary:hover{border-color:var(--cta-bg, var(--accent));background:color-mix(in srgb,var(--cta-bg, var(--accent)) 14%,transparent)}.btn-secondary:active{background:color-mix(in srgb,var(--cta-bg, var(--accent)) 20%,transparent)}.btn-outline{composes:btn-secondary}.btn:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--cta-bg, var(--accent)) 28%,transparent),0 10px 24px #00000059}.btn[disabled],.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn+.btn{margin-left:.75rem}.form-control[readonly].code-block,textarea.code-block[readonly]{background-color:var(--surface, #151922)!important;color:var(--text, #e8ecf1)!important;opacity:1!important;border:var(--line, 1px solid #262c39)!important;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.95rem;line-height:1.45;padding:14px 16px;border-radius:var(--radius, 14px);box-shadow:var(--shadow, 0 8px 30px rgba(0,0,0,.25));resize:vertical;caret-color:var(--text, #e8ecf1)}.code-wrap{white-space:pre;overflow-wrap:normal}:root{--bs-body-bg: var(--brand-bg, #0f1115);--bs-body-color: var(--text, #e8ecf1);--bs-body-bg-rgb: 15,17,21}html,body{background-color:var(--bs-body-bg)!important;color:var(--bs-body-color)!important}:root{--bg: #0b0d12;--card: #121522;--text: #eaeefb;--muted: #97a1c0;--accent: #6ea8fe;--ok: #21bf73;--bad: #ff5c5c;--border: #1e2336}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{width:min(1100px,92vw);margin:0 auto}.site-header{border-bottom:1px solid var(--border);position:sticky;top:0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0b0d12b3}.header-inner{display:flex;gap:1rem;align-items:center;padding:.9rem 0}.brand{font-weight:700;letter-spacing:.2px}.nav{margin-left:auto;display:flex;gap:1rem}.nav a{padding:.4rem .6rem;border-radius:.5rem}.nav a.is-active{background:var(--card);border:1px solid var(--border)}main.container{padding:2rem 0 3rem}h1{font-size:clamp(1.8rem,2.8vw,2.4rem);margin:0 0 .75rem}h2{font-size:1.3rem;margin:1.5rem 0 .5rem}p.muted,.muted{color:var(--muted)}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1rem 1.1rem}.hero{display:grid;gap:1.2rem;grid-template-columns:1.2fr .8fr;align-items:center}.hero .visual{background:#0f1424;border:1px dashed var(--border);border-radius:16px;padding:1rem}.badge{display:inline-block;font-size:.75rem;padding:.2rem .5rem;border-radius:999px;border:1px solid var(--border)}.badge-ok{background:#21bf7326;color:#c9ffe0;border-color:#21bf7373}.badge-bad{background:#ff5c5c26;color:#ffd2d2;border-color:#ff5c5c73}.code{background:#0f1424;border:1px solid var(--border);border-radius:12px;padding:.9rem;overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:.6rem .5rem;border-bottom:1px solid var(--border);text-align:left}.kbd{font:.9rem/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#0d1220;border:1px solid var(--border);border-radius:6px;padding:.15rem .35rem}.site-footer{border-top:1px solid var(--border);padding:1.2rem 0 2rem;color:var(--muted)}.form{max-width:820px}.card{padding:1.25rem 1.4rem}.main-card{padding:1.6rem 1.8rem}.card .card{padding:1.1rem 1.25rem}.field{margin-bottom:1.1rem}@media (min-width: 680px){.field{margin-bottom:1.25rem}}label{display:block;margin:0 0 .45rem;color:var(--muted);font-weight:600;letter-spacing:.1px}.input,select.input,input[type=text].input,input[type=url].input{padding:.8rem 1rem;border-radius:12px;line-height:1.35}.help{margin-top:.45rem}.actions{margin-top:1.4rem;gap:.9rem}hr.token{margin:1.35rem 0}header.stack{gap:.4rem}
