:root { --fg:#1d2430; --bg:#fafaf7; --muted:#5b6573; --line:#d9d9d2; --accent:#1f5f8b; --err:#a52a2a; }
* { box-sizing: border-box; }
body { margin:0; font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; color:var(--fg); background:var(--bg); }
.top { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1.25rem; padding:.6rem 1rem; background:#fff; border-bottom:1px solid var(--line); }
.top nav { display:flex; flex-wrap:wrap; gap:1rem; flex:1; }
.top a { color:var(--accent); text-decoration:none; }
.top a:hover { text-decoration:underline; }
.who { display:flex; align-items:center; gap:.6rem; margin:0; }
main { max-width:60rem; margin:0 auto; padding:1rem; }
h1 { font-size:1.5rem; } h2 { font-size:1.2rem; margin-top:1.5rem; }
table { width:100%; border-collapse:collapse; background:#fff; }
th, td { text-align:left; padding:.5rem .6rem; border-bottom:1px solid var(--line); }
.stack { display:flex; flex-direction:column; gap:.9rem; max-width:22rem; }
label { display:flex; flex-direction:column; gap:.25rem; }
input { font:inherit; padding:.5rem; border:1px solid var(--line); border-radius:4px; }
button { font:inherit; padding:.5rem 1rem; border:1px solid var(--accent); background:var(--accent); color:#fff; border-radius:4px; cursor:pointer; }
.who button { background:#fff; color:var(--accent); padding:.25rem .7rem; }
.error { color:var(--err); font-weight:600; }
@media (max-width:600px) { main { padding:.75rem; } th, td { padding:.4rem; } }

.banner { background:#fff4d6; border:1px solid #e0c36a; padding:.5rem .8rem; border-radius:4px; }
.muted { color:var(--muted); font-size:.9rem; }
.msg { min-height:1.2em; margin:.25rem 0; }
.item { background:#fff; border:1px solid var(--line); border-radius:4px; padding:.6rem .9rem; margin:.7rem 0; }
.item h3 { margin:.1rem 0; font-size:1rem; }
.acts { display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.acts select, .acts input, textarea, select { font:inherit; padding:.4rem; border:1px solid var(--line); border-radius:4px; }
textarea { width:100%; }
.flow { overflow:auto; background:#fff; border:1px solid var(--line); padding:.5rem; }
.scroll { overflow:auto; }
.summary { display:grid; grid-template-columns:max-content 1fr; gap:.2rem 1rem; }
.summary dt { color:var(--muted); } .summary dd { margin:0; }
.story { white-space:pre-wrap; }
tr.refused td { color:var(--muted); }
/* Assignment page: the filters and the bulk-action bar sit in one wrapping row. */
.filters, .bulk-bar { display:flex; flex-wrap:wrap; gap:.75rem; align-items:flex-end; }
.filters label, .bulk-bar label { flex:0 1 auto; }
.filters select, .bulk-bar select { max-width:16rem; }
.bulk-bar { position:sticky; top:0; background:var(--bg, #fafaf7); padding:.5rem 0; z-index:1; }
