:root{--bg:#fbfaf7;--fg:#1f2a2e;--muted:#5b666a;--line:#e4e1da;--accent:#c86b4a;--card:#ffffff;--code:#f1efe9}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--fg);font:16px/1.55 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{max-width:960px;margin:0 auto;padding:24px 20px 64px}header.top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 0 20px;border-bottom:1px solid var(--line);margin-bottom:28px}header.top .brand{font-weight:700;font-size:18px;color:var(--fg)}header.top nav a{margin-left:18px;color:var(--muted);font-size:15px}h1{font-size:30px;margin:0 0 8px}h2{font-size:22px;margin:32px 0 8px}h3{font-size:17px;margin:22px 0 6px}li,p{color:var(--fg)}.muted{color:var(--muted)}pre{border:1px solid var(--line);border-radius:8px;padding:12px 14px;overflow-x:auto;font-size:13.5px;line-height:1.5}code,pre{background:var(--code)}code{border-radius:4px;padding:1px 5px;font-size:.92em}pre code{background:none;padding:0}table{border-collapse:collapse;width:100%;font-size:14.5px;margin:8px 0 16px}td,th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px 22px;margin:16px 0}.callout{border-left:3px solid var(--accent);padding:8px 14px;background:#fff7f3;border-radius:0 8px 8px 0;margin:12px 0}.auth{max-width:420px;margin:8vh auto}.auth label{display:block;font-size:14px;color:var(--muted);margin:12px 0 4px}.auth input{padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff}.auth button,.auth input{width:100%;font-size:16px}.auth button{margin-top:16px;padding:11px;border:0;border-radius:8px;background:var(--fg);color:#fff;cursor:pointer}.auth button[disabled]{opacity:.6;cursor:default}.auth .err{color:#b3261e}.auth .err,.auth .ok{font-size:14px;margin-top:10px}.auth .ok{color:#2e7d32}.warn{background:#fdecea;border:1px solid #f5c6c2;color:#7a1f16;border-radius:8px;padding:10px 12px;font-size:14px;margin:10px 0}.qr{display:block;width:200px;height:200px;margin:12px auto;background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px}footer{margin-top:48px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}