:root{--bg:#f6f7f9;--panel:#ffffff;--ink:#1c2430;--muted:#6b7686;--brand:#2f6f4f;--brand-ink:#ffffff;--user:#2f6f4f;--assistant:#eef1f4;--line:#e3e7ec;--danger:#b3261e}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--brand)}.landing{max-width:720px;margin:0 auto;padding:64px 24px}.landing h1{font-size:32px;margin-bottom:8px}.landing p{color:var(--muted);line-height:1.6}.cta{display:inline-block;margin-top:24px;background:var(--brand);color:var(--brand-ink);padding:12px 20px;border-radius:10px;text-decoration:none;font-weight:600}.chat{max-width:720px;margin:0 auto;height:100dvh;display:flex;flex-direction:column;background:var(--panel)}.chat-header{padding:16px 20px;border-bottom:1px solid var(--line)}.chat-header h1{font-size:18px;margin:0}.chat-header .sub{color:var(--muted);font-size:13px}.messages{flex:1 1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px}.bubble{max-width:80%;padding:10px 14px;border-radius:14px;line-height:1.5;white-space:pre-wrap}.bubble.user{align-self:flex-end;background:var(--user);color:#fff;border-bottom-right-radius:4px}.bubble.assistant{align-self:flex-start;background:var(--assistant);border-bottom-left-radius:4px}.bubble.system{align-self:center;background:#fff4f4;color:var(--danger);font-size:13px}.chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 12px}.chip{border:1px solid var(--brand);color:var(--brand);background:#fff;padding:8px 14px;border-radius:999px;cursor:pointer;font-size:14px}.chip:hover{background:var(--brand);color:#fff}.composer{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}.composer input{flex:1 1;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-size:15px}.btn,.composer button{background:var(--brand);color:#fff;border:none;border-radius:10px;padding:12px 18px;font-weight:600;cursor:pointer}.btn:disabled,.composer button:disabled{opacity:.5;cursor:not-allowed}.panel{margin:0 20px 12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd;font-size:14px}.panel h4{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.consent{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center;padding:20px}.consent .card{background:#fff;border-radius:14px;padding:24px;max-width:440px}.admin{max-width:1000px;margin:0 auto;padding:24px}.admin-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.admin-top h1{font-size:20px;margin:0}.admin section{margin-top:28px}.admin h3{margin:0 0 10px}.admin-banner{background:#e9f6ee;border:1px solid #bfe4cd;color:#1f6b41;padding:10px 14px;border-radius:10px;margin-bottom:12px}.admin-banner.err{background:#fdeceb;border-color:#f3c4c0;color:var(--danger)}.tbl{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.tbl td,.tbl th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);font-size:14px;vertical-align:top}.tbl th{background:#f3f5f7;color:var(--muted);font-weight:600}.tbl tr:last-child td{border-bottom:none}.admin-form{margin-top:14px;padding:14px;border:1px dashed var(--line);border-radius:10px;background:#fbfcfd}