:root{color-scheme:light;--ink:#1c1915;--muted:#6d655c;--line:#e4ddd2;--paper:#f6f1e7;--card:#fffdf8;--teal:#0f6e6b;--teal-ink:#083f3d;--danger:#9c341f;--ok:#1f7a46}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:Noto Sans SC,Source Han Sans SC,PingFang SC,Microsoft YaHei,sans-serif;color:var(--ink);background:var(--paper)}a{color:var(--teal-ink)}button,input,select,textarea{font:inherit;color:inherit}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.nav{background:#17211f;color:#f6f1e7;padding:22px 16px}.nav a{color:inherit;text-decoration:none;display:block;padding:8px 10px;border-radius:8px}.nav a:hover,.nav a[aria-current=page]{background:#23403d}.brand{font-weight:700;letter-spacing:.04em;margin:0 0 18px}.main{padding:28px 32px 64px;max-width:1100px}.top{display:flex;justify-content:space-between;gap:16px;align-items:flex-end}h1{font-size:28px;margin:0 0 8px}h2{font-size:18px;margin:28px 0 10px}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:12px;gap:12px}.card,.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}.card b{display:block;font-size:22px;margin-top:6px}label{display:block;margin:10px 0}input[type=number],input[type=password],input[type=text],select,textarea{width:100%;margin-top:6px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:white}textarea{min-height:90px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.button,button{background:var(--teal);color:white;border:0;border-radius:8px;padding:8px 12px;cursor:pointer;text-decoration:none;display:inline-block}.button.ghost,button.ghost{background:transparent;color:var(--teal-ink);border:1px solid var(--line)}.flash{padding:10px 12px;border-radius:8px;margin:12px 0}.flash.ok{background:#e5f6ec;color:var(--ok)}.flash.bad{background:#fde8e3;color:var(--danger)}table{width:100%;border-collapse:collapse;background:var(--card)}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}.docs h2{margin-top:28px}.docs code{background:#efe8dc;padding:1px 4px;border-radius:4px}.login{max-width:420px;margin:12vh auto}.footer{margin-top:36px;color:var(--muted);font-size:13px}img.preview{max-width:360px;border-radius:12px;border:1px solid var(--line)}