body { font-family: system-ui, sans-serif; margin: 0 auto; max-width: 960px; padding: 1rem; color: #222; }
header { display: flex; gap: .75rem; align-items: baseline; margin-bottom: 1rem; }
header a { font-weight: 700; text-decoration: none; color: inherit; }
small, .muted { color: #777; }
.flash { padding: .5rem .75rem; border-radius: 4px; }
.notice { background: #e8f5e9; }
.alert { background: #fdecea; }
table { width: 100%; border-collapse: collapse; }
td, th { text-align: left; padding: .4rem; border-bottom: 1px solid #eee; vertical-align: top; }
tr.unread td { font-weight: 600; }
form.stacked label { display: block; margin-top: .5rem; }
iframe.body { width: 100%; min-height: 400px; border: 1px solid #eee; }
pre.body { white-space: pre-wrap; }
.actions { display: flex; gap: .5rem; align-items: center; margin: 1rem 0; }
header nav { display: flex; gap: .75rem; align-items: baseline; }
header nav a { font-weight: 400; }
header nav.user { margin-left: auto; }
button.link { background: none; border: none; padding: 0; color: inherit; text-decoration: underline; cursor: pointer; font: inherit; }
form.inline { display: inline; }
.field-errors { color: #b00020; }
.card { border: 1px solid #eee; border-radius: 6px; padding: 1rem; margin: 1rem 0; }
code.link { user-select: all; word-break: break-all; }
.nowrap { white-space: nowrap; }
ul.attachments { list-style: none; padding: 0; }
p.read-by { font-size: .9em; margin-bottom: 0; }
form.compose input[type=text], form.compose textarea, form.compose select { width: 100%; box-sizing: border-box; font: inherit; }
.tasks { list-style: none; padding: 0; }
.tasks li { display: flex; gap: .5rem; align-items: center; padding: .25rem 0; }
.tasks li.done span:first-of-type { text-decoration: line-through; color: #777; }
.overdue { color: #b00020; }
.internal { background: #fffbea; }
.assignee { font-size: .85em; background: #eef; border-radius: 4px; padding: 0 .3rem; }
