:root{--bd:#e5e7eb;--bg:#f6f7fb;--brand:#4f46e5;--muted:#64748b}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial;background:var(--bg)}
.topbar{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--bd);padding:12px 16px;display:flex;gap:12px;align-items:center;z-index:5}
.brand{font-weight:700}.back{color:inherit;text-decoration:none;margin-right:8px}
.nav{margin-left:auto;display:flex;gap:10px}.navlink{padding:8px 10px;border-radius:10px;color:#111827;text-decoration:none}.navlink:hover{background:#f3f4f6}
.wrap{max-width:1100px;margin:20px auto;padding:0 16px;display:grid;gap:16px}
.card{background:#fff;border:1px solid var(--bd);border-radius:16px;box-shadow:0 10px 25px rgba(2,6,23,.06);padding:16px}
.form .grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px}
.field{display:flex;flex-direction:column;gap:6px}
input,select,textarea{border:1px solid var(--bd);border-radius:12px;padding:10px 12px;font-size:15px}
textarea{resize:vertical}
.search{width:100%}
.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}
.btn{background:#111827;color:#fff;border:0;border-radius:12px;padding:10px 14px;font-weight:600;cursor:pointer}
.btn.ghost{background:#f3f4f6;color:#111827}
.btn.primary{background:var(--brand)}
.note{margin-top:8px;border:1px solid #c7d2fe;background:#eef2ff;border-radius:12px;padding:10px}
.checks{display:flex;gap:8px;flex-wrap:wrap}
.check{display:flex;gap:6px;align-items:center;border:1px solid var(--bd);border-radius:12px;padding:6px 10px;background:#fff}
.list{max-height:220px;overflow:auto;border:1px solid var(--bd);border-radius:12px}
.list .row{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-bottom:1px solid #f1f5f9}
.list .row:last-child{border-bottom:0}
.table{border:1px solid var(--bd);border-radius:12px;overflow:hidden}
.table .thead,.table .row{display:grid;grid-template-columns:120px 1fr 160px 220px 120px 90px;gap:0}
.thead div,.row div{padding:8px 10px;border-bottom:1px solid var(--bd)}
.thead{background:#f9fafb;font-weight:600}
.row:nth-child(even){background:#fcfcfd}
.badge{display:inline-block;padding:2px 8px;border-radius:9999px;border:1px solid var(--bd);font-size:12px}
.badge.type-activity{background:#ecfdf5;border-color:#a7f3d0}
.badge.type-notice{background:#eef2ff;border-color:#c7d2fe}
.badge.type-special{background:#fff1f2;border-color:#fecaca}
.controls{display:flex;gap:6px;justify-content:flex-end}
.link{border:1px solid var(--bd);border-radius:10px;background:#fff;padding:6px 10px;cursor:pointer}
