
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font: 16px/1.5 system-ui, sans-serif; color: #1d232a; background: #f5f6f8; }
header { display: flex; align-items: center; justify-content: space-between; padding: 0.75rem 1.5rem; background: #1d232a; color: #fff; }
header a { color: #fff; text-decoration: none; font-weight: 600; }
header form { margin: 0; }
main { max-width: 60rem; margin: 2rem auto; padding: 0 1.5rem; }
h1 { font-size: 1.5rem; margin: 0 0 1rem; }
table { width: 100%; border-collapse: collapse; background: #fff; }
th, td { text-align: left; padding: 0.6rem 0.75rem; border-bottom: 1px solid #e3e6ea; vertical-align: top; }
th { font-size: 0.85rem; color: #5b6570; font-weight: 600; }
small { color: #5b6570; }
form.card { max-width: 24rem; background: #fff; padding: 1.5rem; border: 1px solid #e3e6ea; }
label { display: block; margin-bottom: 1rem; font-weight: 600; }
input, select { display: block; width: 100%; margin-top: 0.25rem; padding: 0.5rem; font: inherit; border: 1px solid #c4cad1; }
button { padding: 0.5rem 1rem; font: inherit; border: 0; background: #2463eb; color: #fff; cursor: pointer; }
header button { background: transparent; border: 1px solid #fff; }
.actions { margin-bottom: 1rem; }
.actions a { display: inline-block; padding: 0.5rem 1rem; background: #2463eb; color: #fff; text-decoration: none; }
main:has(.site) { max-width: 90rem; }
.site { display: grid; grid-template-columns: minmax(20rem, 1fr) 2fr; gap: 1.5rem; align-items: start; }
.site iframe { width: 100%; height: 85vh; border: 1px solid #e3e6ea; background: #fff; }
.site h2 { font-size: 1.1rem; margin: 1.5rem 0 0.5rem; }
.chat, .timeline { list-style: none; margin: 0 0 1rem; padding: 0; }
.chat li, .timeline li { background: #fff; border: 1px solid #e3e6ea; padding: 0.6rem 0.75rem; margin-bottom: 0.5rem; }
.chat p { margin: 0; }
.chat .said { font-weight: 600; }
.chat .pending { color: #5b6570; font-style: italic; }
.chat .error { margin-top: 0.25rem; }
textarea { display: block; width: 100%; margin-top: 0.25rem; padding: 0.5rem; font: inherit; border: 1px solid #c4cad1; }
.notice { padding: 0.75rem; background: #eef4ff; border: 1px solid #c9dafc; }
.error { padding: 0.75rem; background: #fdecec; color: #8a1c1c; border: 1px solid #f3c2c2; }
