@font-face{font-family:Figtree;src:url(/fonts/Figtree_400Regular.ttf);font-weight:400;font-display:swap}@font-face{font-family:Figtree;src:url(/fonts/Figtree_600SemiBold.ttf);font-weight:600;font-display:swap}@font-face{font-family:Figtree;src:url(/fonts/Figtree_800ExtraBold.ttf);font-weight:800;font-display:swap}:root{--deep:#0e2a47;--blue:#1f5faf;--teal:#19b3a6;--teal-dark:#0b6f68;--teal-soft:#d9f4f1;--bg:#f6f8fa;--surface:#fff;--muted-bg:#f2f5f8;--border:#e2e8ee;--border-strong:#d5dee6;--text2:#4a5a6b;--muted:#5b6b7d;--subtle:#7a8896;--red:#c4373c;--red-soft:#fdecec;--amber:#9a6100;--amber-soft:#fff4dc;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--deep);margin:0;font:16px/1.5 Figtree,system-ui,sans-serif}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}h1{letter-spacing:-.02em;margin:8px 0 12px;font-size:30px;font-weight:800;line-height:1.15}h2{margin:0;font-size:20px;font-weight:800}h3{margin:0 0 4px;font-size:16px;font-weight:600}code{background:var(--muted-bg);word-break:break-all;border-radius:6px;padding:2px 6px;font:13px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.wrap{max-width:1060px;margin:0 auto;padding-inline:20px}.muted{color:var(--muted)}.small{font-size:13.5px}.big{font-size:26px}.huge{margin-right:12px;font-size:44px}.grow{flex:1;min-width:0}.nowrap{white-space:nowrap}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.top{align-items:flex-start}.row.between{justify-content:space-between}.top{background:var(--surface);border-bottom:1px solid var(--border);top:env(safe-area-inset-top,0px);z-index:5;position:sticky}.top-row{justify-content:space-between;align-items:center;gap:12px;height:60px;display:flex}.brand{color:var(--deep);align-items:center;gap:10px;font-size:17px;display:flex}.brand:hover{text-decoration:none}.brand b{font-weight:800}.brand img{border-radius:8px}nav{flex-wrap:wrap;align-items:center;gap:4px;display:flex}nav a,.linkish{color:var(--text2);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:7px 12px;font-size:15px}nav a.on{background:var(--teal-soft);color:var(--teal-dark);font-weight:600}nav a:hover,.linkish:hover{background:var(--muted-bg);text-decoration:none}nav a.cta{background:var(--deep);color:#fff;font-weight:600}main{min-height:70vh;padding-block:24px 48px}.foot{color:var(--subtle);border-top:1px solid var(--border);flex-wrap:wrap;gap:18px;padding-block:24px 40px;font-size:13.5px;display:flex}.foot a{color:var(--subtle)}.card{background:var(--surface);border:1px solid var(--border);color:inherit;border-radius:16px;margin-bottom:16px;padding:20px;display:block}a.card:hover{border-color:var(--border-strong);text-decoration:none;box-shadow:0 2px 10px #0e2a470f}.narrow{max-width:520px;margin-inline:auto}.hero{padding:40px 0 28px}.hero h1{font-size:42px}.hero p{color:var(--text2);max-width:640px;margin:0 0 20px;font-size:19px}.grid4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:16px;display:grid}.grid4 .card{margin:0}.part p{color:var(--text2);margin:0;font-size:15px}.steps ol{color:var(--text2);margin:8px 0 0;padding-left:22px}.steps li{margin:4px 0}.empty{text-align:center;padding:40px 20px}.list .app-row{align-items:center;gap:16px;display:flex}.app-row p{margin:0}.parts{gap:4px;font-size:18px;display:inline-flex}.crumbs{color:var(--muted);margin:0;font-size:14px}.head{margin-bottom:12px}.btn{font:inherit;cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:9px 18px;font-size:15px;font-weight:600}.btn.primary{background:var(--deep);color:#fff}.btn.primary:hover{background:#17406a}.btn.secondary{background:var(--surface);color:var(--deep);border-color:var(--border-strong)}.btn.secondary:hover{background:var(--muted-bg)}.btn.danger{background:var(--surface);color:var(--red);border-color:#f0c4c6}.btn.danger:hover{background:var(--red-soft)}.btn:disabled{opacity:.5;cursor:default}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.label{font-size:14px;font-weight:600}.hint{color:var(--subtle);font-size:13px}input,textarea,select{font:inherit;color:var(--deep);background:var(--surface);border:1px solid var(--border-strong);border-radius:10px;width:100%;padding:9px 12px;font-size:15px}input:focus,textarea:focus,select:focus{outline:2px solid var(--teal);outline-offset:-1px;border-color:#0000}.row input{width:auto}.row input.grow{width:100%}input.emoji{text-align:center;width:72px;font-size:22px}input.cmd{width:160px}.check{align-items:flex-start;gap:10px;margin:6px 0;font-size:15px;display:flex}.check input{width:auto;margin-top:4px}.notice{border-radius:12px;margin:12px 0;padding:12px 16px;font-size:15px}.notice.ok{background:var(--teal-soft);color:var(--teal-dark)}.notice.info{color:#1f4a85;background:#e8f0fb}.notice.warn{background:var(--amber-soft);color:var(--amber)}.notice.error{background:var(--red-soft);color:var(--red)}.badge{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:600}.badge.draft{background:var(--muted-bg);color:var(--muted)}.badge.review{background:var(--amber-soft);color:var(--amber)}.badge.public{background:var(--teal-soft);color:var(--teal-dark)}.badge.blocked{background:var(--red-soft);color:var(--red)}.toggle{cursor:pointer;background:#e6ecf1;border:0;border-radius:999px;flex:none;width:46px;height:28px;padding:0;position:relative}.toggle span{background:#fff;border-radius:50%;width:22px;height:22px;transition:left .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0003}.toggle.on{background:var(--teal)}.toggle.on span{left:21px}.part-box h2{align-items:center;gap:10px;display:flex}.part-box.on{border-color:#b5e6e0}.part-body{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.extras{background:var(--muted-bg);border-radius:12px;margin-top:6px;padding:14px 16px 4px}.extras .row{margin-bottom:10px}.tabs{border-bottom:1px solid var(--border);gap:4px;margin:16px 0;display:flex;overflow-x:auto}.tabs button{font:inherit;cursor:pointer;color:var(--text2);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 14px;font-size:15px}.tabs button.on{color:var(--deep);border-bottom-color:var(--teal);font-weight:600}.sticky-save{background:linear-gradient(transparent, var(--bg) 30%);z-index:2;padding:18px 0 14px;position:sticky;bottom:0}.danger-zone{border-color:#f3d3d4;margin-top:24px}.table{border-collapse:collapse;width:100%;margin:12px 0;font-size:14.5px;display:block;overflow-x:auto}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:8px 10px;font-size:13px;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px}.secret{background:var(--teal-soft);border-radius:12px;margin:12px 0;padding:14px 16px}.secret p{color:var(--teal-dark);margin:0 0 8px}.secret code{background:#fff;padding:8px 10px;font-size:13.5px}.doku{grid-template-columns:200px 1fr;align-items:start;gap:24px;display:grid}.doku aside{flex-direction:column;gap:2px;display:flex;position:sticky;top:80px}.doku aside a{color:var(--text2);border-radius:10px;padding:8px 12px;font-size:15px}.doku aside a.on{background:var(--teal-soft);color:var(--teal-dark);font-weight:600}.doku aside a:hover{background:var(--muted-bg);text-decoration:none}.prose{min-width:0;padding:28px 32px}.prose h1{margin-top:0}.prose h2{margin:32px 0 10px;font-size:22px}.prose h3{margin:22px 0 8px;font-size:17px}.prose p,.prose li{color:var(--text2)}.prose ul,.prose ol{padding-left:22px}.prose li{margin:4px 0}.prose pre{color:#e8eef5;background:#0e2a47;border-radius:12px;padding:14px 16px;font-size:13px;line-height:1.5;overflow-x:auto}.prose pre code{color:inherit;word-break:normal;background:0 0;padding:0}.prose table{border-collapse:collapse;width:100%;margin:12px 0;font-size:14.5px;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:8px 10px}.prose th{color:var(--muted);font-size:13px}.prose td code{word-break:normal;white-space:nowrap}@media (width<=720px){.doku{grid-template-columns:1fr}.doku aside{flex-flow:wrap;position:static}.hero h1{font-size:32px}.prose{padding:20px}.list .app-row{flex-wrap:wrap}.top-row{flex-wrap:wrap;height:auto;padding-block:10px}}
