:root{--bg:#f6f7f9;--card:#fff;--text:#1b1f24;--muted:#667085;--line:#e4e7ec;--ok:#067647;--ok-bg:#ecfdf3;--bad:#b42318;--bad-bg:#fef3f2;--warn:#b54708;--warn-bg:#fffaeb;--accent:#1d4ed8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Sarabun,Noto Sans Thai,system-ui,sans-serif}main{max-width:1180px;margin:0 auto;padding:24px 16px 64px}h1{font-size:22px;margin:0 0 4px}h2{font-size:17px;margin:28px 0 8px}.sub{color:var(--muted);margin:0 0 16px}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow-x:auto}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:13px;color:var(--muted);font-weight:600;background:#fafbfc;white-space:nowrap}tr:last-child td{border-bottom:0}.tasks{color:var(--muted);font-size:13px}.pill{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600}.pill.ok{color:var(--ok);background:var(--ok-bg)}.pill.bad{color:var(--bad);background:var(--bad-bg)}.pill.warn{color:var(--warn);background:var(--warn-bg)}button{font:inherit;border:1px solid var(--line);background:#fff;border-radius:8px;padding:5px 10px;cursor:pointer;white-space:nowrap}button.ok{border-color:#abefc6;color:var(--ok)}button.bad{border-color:#fecdca;color:var(--bad)}button:disabled{opacity:.5;cursor:default}.actions{display:flex;gap:6px;flex-wrap:wrap}.err{color:var(--bad);font-size:13px;margin-top:4px}.empty{padding:20px;color:var(--muted)}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 0}.tabs a{padding:6px 12px;border-radius:8px;text-decoration:none;color:var(--text);border:1px solid var(--line);background:#fff}.tabs a.on{background:var(--accent);color:#fff;border-color:var(--accent)}input{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;width:100%}.login{max-width:360px;margin:12vh auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px}.login button{width:100%;margin-top:12px;padding:9px;background:var(--accent);color:#fff;border-color:var(--accent)}.login input+input{margin-top:8px}