* { box-sizing: border-box; }
body { font-family: -apple-system, system-ui, sans-serif; margin: 0; color: #1f2933; background: #fafafa; }
.topnav { display: flex; align-items: center; gap: 1rem; padding: 0.75rem 1.5rem; background: #2f6f5e; color: white; }
.topnav a { color: white; text-decoration: none; }
.topnav .brand { font-weight: bold; }
.topnav .spacer { flex: 1; }
.topnav .whoami { opacity: 0.85; font-size: 0.9rem; }
.container { max-width: 900px; margin: 2rem auto; padding: 0 1rem; }
.stacked-form label { display: block; margin-bottom: 1rem; font-weight: 500; }
.stacked-form input, .stacked-form select, .stacked-form textarea { display: block; width: 100%; margin-top: 0.25rem; padding: 0.5rem; font-size: 1rem; }
.inline-form { display: inline; }
.field-row.flagged { background: #fff8e6; padding: 0.5rem; border-radius: 4px; }
.badge { display: inline-block; padding: 0.1rem 0.5rem; border-radius: 4px; font-size: 0.75rem; margin-left: 0.5rem; }
.badge-warn { background: #ffe1a8; color: #6b4a00; }
.badge-danger { background: #ffd0d0; color: #8a1f1f; }
.results-table { width: 100%; border-collapse: collapse; margin-top: 1rem; }
.results-table th, .results-table td { text-align: left; padding: 0.5rem; border-bottom: 1px solid #ddd; }
.results-table tr.overdue { background: #fff0f0; }
.flash { padding: 0.75rem 1rem; border-radius: 4px; margin-bottom: 1rem; }
.flash-error { background: #ffd0d0; color: #8a1f1f; }
.flash-success { background: #d7f5e0; color: #12603a; }
.notification-list { list-style: none; padding: 0; }
.notification-list li { padding: 0.75rem; border-bottom: 1px solid #eee; }
.notification-list li.unread { background: #f0f8ff; font-weight: 500; }
.case-detail dt { font-weight: bold; margin-top: 0.5rem; }
.hint { color: #666; font-size: 0.9rem; }
