@font-face{font-family:Nuanta;font-weight:100 900;font-display:swap;src:url(/fonts/nuanta-medium.ttf)format("truetype")}@font-face{font-family:Noto Sans Lao;font-weight:400;font-display:swap;src:url(/fonts/noto-sans-lao-400.ttf)format("truetype")}:root{--bg:#f6f7f9;--card:#fff;--ink:#171717;--muted:#6b7280;--line:#e5e7eb;--highlight:#1447e6;--ok:#16a34a;--warn:#d97706;--bad:#dc2626;--field:#f3f4f6}@media (prefers-color-scheme:dark){:root{--bg:#0d0d10;--card:#16161a;--ink:#f4f4f5;--muted:#a1a1aa;--line:#27272a;--highlight:#4f7cff;--field:#1f1f24}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:15px/1.6 Nuanta,Noto Sans Lao,ui-sans-serif,system-ui,sans-serif}a{color:inherit}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.bar{background:var(--card);border-bottom:1px solid var(--line)}.bar .in{align-items:center;gap:20px;max-width:1040px;height:56px;margin:0 auto;padding:0 16px;display:flex}.brand{font-weight:700;text-decoration:none}.nav{flex:1;gap:4px;display:flex;overflow-x:auto}.nav a{color:var(--muted);white-space:nowrap;border-radius:8px;padding:6px 10px;text-decoration:none}.nav a:hover{background:var(--field);color:var(--ink)}main{max-width:1040px;margin:0 auto;padding:32px 16px 64px}h1{margin:0 0 8px;font-size:28px}h2{margin:0 0 8px;font-size:19px}.lead{color:var(--muted);max-width:680px;margin:0 0 24px}.grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}.btn{background:var(--ink);height:40px;color:var(--bg);font:inherit;cursor:pointer;border:0;border-radius:10px;align-items:center;padding:0 16px;text-decoration:none;display:inline-flex}.btn.ghost{color:var(--ink);border:1px solid var(--line);background:0 0}.field{gap:6px;margin-bottom:14px;display:grid}.field span{color:var(--muted);font-size:13px}.field input{background:var(--field);height:40px;color:var(--ink);font:inherit;border:0;border-radius:10px;padding:0 12px}.field input:focus{outline:2px solid var(--highlight)}.dot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.dot.ok{background:var(--ok)}.dot.bad{background:var(--bad)}.dot.plan{background:var(--warn)}.muted{color:var(--muted)}.err{color:var(--bad);margin:0 0 12px}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);padding:8px;font-size:12px;font-weight:500}td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px 8px}.method{color:var(--highlight);font-weight:700}.wrap{overflow-x:auto}.stack>*+*{margin-top:16px}.steps{gap:16px;margin:12px 0 0;padding-left:22px;display:grid}.steps p{margin:4px 0 8px}.steps pre,td pre{background:var(--bg,#f6f7f9);border:1px solid var(--line);white-space:pre;border-radius:8px;margin:0;padding:12px;overflow-x:auto}.actions{gap:8px;display:flex}.checks{border:0;gap:8px;margin:0 0 14px;padding:0;display:grid}.checks legend{color:var(--muted);margin-bottom:6px;font-size:13px}
