.form .check { display:flex; align-items:center; gap:9px; font-weight:500; }
.form .check input { width:auto; margin:0; }
.two-forms { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:20px; }
.list-panel { margin-top:20px; }
@media (max-width:900px) { .two-forms { grid-template-columns:1fr; } }
.class-details { margin-bottom:20px; border-left:4px solid var(--blue); }
.class-details dl { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:20px 0; }
.class-details dl div { background:#f7f9fc; border-radius:8px; padding:12px; }
.class-details dt { color:var(--muted); font-size:12px; }
.class-details dd { margin:4px 0 0; font-weight:700; }
.detail-actions,.crud-actions { display:flex; align-items:center; gap:10px; }
.button.secondary { background:#e9eef6; color:var(--text); }
.crud-actions form { display:flex; margin:0; }
.icon-action { width:34px; height:34px; display:grid; place-items:center; border:1px solid transparent; border-radius:9px; padding:0; text-decoration:none; cursor:pointer; transition:transform .15s ease,background .15s ease; }
.icon-action:hover { transform:translateY(-1px); }
.icon-action svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.icon-action.view { color:#2563eb; background:#eaf1ff; border-color:#d8e5ff; }
.icon-action.edit { color:#9a6200; background:#fff4d6; border-color:#f8e5ae; }
.icon-action.delete { color:#b42318; background:#feeceb; border-color:#fbd7d4; }
.cancel-link { background:none; border:0; padding:0; color:var(--blue); font:inherit; text-decoration:none; cursor:pointer; }
.cancel-link { margin-left:12px; }
@media (max-width:700px) { .class-details dl { grid-template-columns:1fr 1fr; } }
.class-roster { border-top:1px solid var(--border); margin-top:24px; padding-top:24px; }
.roster-head { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:15px; }
.list-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:15px; }
.list-toolbar h2 { margin:0; }
.roster-head h2 { margin-bottom:3px; }
.roster-filter { position:relative; }
.roster-filter input { width:280px; padding:10px 35px 10px 12px; border:1px solid var(--border); border-radius:8px; font:inherit; }
.roster-filter span { position:absolute; right:12px; top:8px; color:var(--muted); font-size:18px; }
.pagination { display:flex; justify-content:flex-end; align-items:center; gap:6px; margin-top:18px; }
.pagination a { min-width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--border); border-radius:8px; color:var(--text); text-decoration:none; background:#fff; }
.pagination a:hover,.pagination a.current { background:var(--blue); color:#fff; border-color:var(--blue); }
@media (max-width:700px) { .roster-head,.list-toolbar { align-items:flex-start; flex-direction:column; }.roster-filter,.roster-filter input { width:100%; } }
