:root{--bg:#f6f7f8;--card:#ffffff;--ink:#191a1f;--ink-2:#4b5563;--muted:#8a919c;--line:#e5e7eb;--accent:#1d4ed8;--good:#15803d;--warn:#b45309;--bad:#b91c1c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,Segoe UI,Roboto,Noto Sans Thai,Sarabun,sans-serif;font-size:14px;line-height:1.55}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.admin-shell{display:flex;min-height:100vh}.sidebar{width:210px;flex-shrink:0;background:#101318;color:#d1d5db;padding:20px 14px;display:flex;flex-direction:column;gap:2px}.sidebar .brand{color:#fff;font-size:17px;font-weight:700;margin-bottom:14px;padding:0 8px}.sidebar a{color:#cbd2da;padding:8px 10px;border-radius:8px;display:block;font-size:14px}.sidebar a:hover{background:#1d232c;color:#fff;text-decoration:none}.main,.sidebar .spacer{flex:1 1}.main{padding:26px 32px;max-width:1100px}.topbar{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.topbar h1{font-size:20px;margin:0;flex:1 1}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.tile .label{font-size:12.5px;color:var(--muted);margin-bottom:2px}.tile .value{font-size:26px;font-weight:650;color:var(--ink);letter-spacing:-.01em}.tile .sub{font-size:12.5px;color:var(--ink-2);margin-top:2px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:18px}.card h2{font-size:15px;margin:0 0 12px}table.data{width:100%;border-collapse:collapse}table.data th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:6px 10px;white-space:nowrap}table.data td,table.data th{border-bottom:1px solid var(--line)}table.data td{padding:8px 10px;vertical-align:top}table.data tr:last-child td{border-bottom:none}.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.badge{display:inline-block;font-size:12px;padding:1px 9px;border-radius:999px;border:1px solid var(--line);color:var(--ink-2);background:#fafafa;white-space:nowrap}.badge.good{color:var(--good);border-color:#bbe3c8;background:#f0faf3}.badge.warn{color:var(--warn);border-color:#f0d3ad;background:#fdf7ec}.badge.bad{color:var(--bad);border-color:#f2c4c4;background:#fdf1f1}form.inline{display:inline}input,select,textarea{font:inherit;color:var(--ink);background:#fff;border:1px solid #d3d8de;border-radius:8px;padding:7px 10px}input:focus,select:focus,textarea:focus{outline:2px solid #bfd3f8;border-color:var(--accent)}label.f{display:block;font-size:12.5px;color:var(--ink-2);margin-bottom:3px}.frow{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.frow>div{display:flex;flex-direction:column}.btn,button{font:inherit;cursor:pointer;border-radius:8px;padding:7px 14px;border:1px solid #d3d8de;background:#fff;color:var(--ink)}.btn:hover,button:hover{background:#f3f4f6}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover{background:#1e40af}button.small{font-size:12.5px;padding:3px 10px}button.danger{color:var(--bad);border-color:#f2c4c4}button.danger:hover{background:#fdf1f1}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:32px;width:340px}.login-card h1{font-size:20px;margin:0 0 4px}.login-card p.sub{color:var(--muted);font-size:13px;margin:0 0 18px}.login-card input{width:100%;margin-bottom:12px}.login-card button{width:100%}.error-box{background:#fdf1f1;border:1px solid #f2c4c4;color:var(--bad);border-radius:8px;padding:8px 12px;font-size:13px;margin-bottom:12px}.muted{color:var(--muted)}.chat-grid{display:grid;grid-template-columns:260px 1fr;grid-gap:16px;gap:16px;align-items:start}.chat-list a{display:block;padding:8px 10px;border-radius:8px;color:var(--ink)}.chat-list a:hover{background:#f3f4f6;text-decoration:none}.chat-list a.active{background:#e8eefb}.bubble{max-width:75%;padding:8px 12px;border-radius:12px;margin-bottom:8px;white-space:pre-wrap}.bubble.customer{background:#f3f4f6}.bubble.assistant{background:#e8eefb;margin-left:auto}.bubble .meta{font-size:11px;color:var(--muted);margin-top:2px}