:root { --bg:#f4f6f8; --card:#fff; --text:#1a1a1a; --muted:#666; --accent:#0b5fff; --error:#b00020; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, sans-serif; background:var(--bg); color:var(--text); }
.topbar { display:flex; gap:1rem; align-items:center; padding:.75rem 1rem; background:#111; color:#fff; flex-wrap:wrap; }
.topbar a { color:#cbd5e1; text-decoration:none; margin-right:.75rem; }
.brand { font-weight:700; color:#fff !important; }
.userbox { margin-left:auto; display:flex; gap:.75rem; align-items:center; }
.container { max-width:1100px; margin:1rem auto; padding:0 1rem; }
.card { background:var(--card); border-radius:8px; padding:1rem; margin:1rem 0; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:800px){ .grid-2 { grid-template-columns:1fr; } }
table { width:100%; border-collapse:collapse; font-size:.92rem; }
th, td { border-bottom:1px solid #e5e7eb; padding:.4rem .35rem; text-align:left; }
.filters, .inline-form { display:flex; flex-wrap:wrap; gap:.5rem; align-items:end; }
input, select, button { padding:.45rem .6rem; border:1px solid #ccc; border-radius:6px; }
button { background:var(--accent); color:#fff; border:none; cursor:pointer; }
.muted { color:var(--muted); }
.badge-partial { font-size:.75rem; background:#fef3c7; color:#92400e; padding:.1rem .35rem; border-radius:.25rem; }
.error { color:var(--error); }
.notice { background:#eef6ff; border:1px solid #b6d4fe; }
.centered { min-height:100vh; display:flex; align-items:center; justify-content:center; }
.centered .card { width:min(400px, 92vw); display:flex; flex-direction:column; gap:.75rem; }
label { display:flex; flex-direction:column; gap:.25rem; font-size:.9rem; }
.table-scroll { overflow:auto; }
.prose h2 { margin-top:1.25rem; }
.inline { display:inline; }
.inline button { font-size:.85rem; padding:.25rem .5rem; }
