body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial; margin:0; background:#f6f7fb; color:#111; }
a { color:#1a4; text-decoration:none; }
.container { max-width: 980px; margin: 0 auto; padding: 16px; }
.topbar { background:#fff; border-bottom:1px solid #e7e9f2; padding: 10px 16px; display:flex; gap:12px; align-items:center; justify-content:space-between; position:sticky; top:0; }
.brand a { font-weight:800; font-size:18px; color:#111; }
.nav { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.card { background:#fff; border:1px solid #e7e9f2; border-radius:14px; padding:14px; margin:12px 0; box-shadow: 0 2px 8px rgba(0,0,0,.04); }
.btn { border:1px solid #d8dcec; background:#fff; padding:8px 10px; border-radius:10px; cursor:pointer; }
.btn.primary { background:#2d63ff; border-color:#2d63ff; color:#fff; }
.btn.danger { background:#ff3b30; border-color:#ff3b30; color:#fff; }
.row { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.row input, .row select { padding:8px 10px; border:1px solid #d8dcec; border-radius:10px; }
.list { margin:0; padding-left: 18px; }
.tag { display:inline-block; padding: 2px 8px; border-radius:999px; background:#eef2ff; }
.flash { padding:10px 12px; border-radius:12px; margin:10px 0; }
.flash.ok { background:#e8fff1; border:1px solid #b7f0cf; }
.flash.error { background:#ffecec; border:1px solid #ffc0c0; }
.inline { display:inline-block; }
.session { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.chk { display:flex; gap:8px; align-items:center; }
