.cds-filter { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 20px; }
.cds-filter select, .cds-filter input { padding: 8px 10px; border: 1px solid #ccd0d4; border-radius: 6px; min-width: 180px; flex: 1 1 180px; }
.cds-results.cds-loading { opacity: .5; pointer-events: none; transition: opacity .2s; }

.cds-grid-front { display: grid; gap: 20px; }
.cds-cols-1 { grid-template-columns: 1fr; }
.cds-cols-2 { grid-template-columns: repeat(2, 1fr); }
.cds-cols-3 { grid-template-columns: repeat(3, 1fr); }
.cds-cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .cds-cols-3, .cds-cols-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .cds-grid-front { grid-template-columns: 1fr; } }

.cds-card { border: 1px solid #e2e4e7; border-radius: 10px; padding: 18px; background: #fff; display: flex; flex-direction: column; gap: 6px; }
.cds-card-top { display: flex; gap: 6px; flex-wrap: wrap; min-height: 4px; }
.cds-badge, .cds-status { font-size: 12px; padding: 2px 8px; border-radius: 20px; background: #eef2ff; color: #3730a3; }
.cds-status-open { background: #dcfce7; color: #166534; }
.cds-status-closed { background: #fee2e2; color: #991b1b; }
.cds-status-coming-soon { background: #fef3c7; color: #92400e; }
.cds-card-title { margin: 4px 0 0; font-size: 1.15em; }
.cds-card-title a { text-decoration: none; }
.cds-code { font-size: 13px; color: #666; }
.cds-card-dept { font-size: 14px; color: #333; font-weight: 500; }
.cds-card p { margin: 4px 0; font-size: 14px; color: #555; }
.cds-card-meta { font-size: 13px; color: #666; }
.cds-more { margin-top: auto; font-weight: 600; text-decoration: none; }
.cds-empty { padding: 20px; text-align: center; color: #666; }

.cds-table { width: 100%; border-collapse: collapse; margin: 20px 0; }
.cds-table th, .cds-table td { padding: 10px 12px; border: 1px solid #e2e4e7; text-align: left; vertical-align: top; }
.cds-table th { width: 35%; background: #f8f9fa; }
.cds-dept-card { border-left: 4px solid #3730a3; background: #f8f9fa; padding: 14px 18px; border-radius: 6px; margin: 20px 0; }
.cds-dept-card h3 { margin: 0 0 8px; }
.cds-dept-card ul { margin: 0; padding-left: 18px; }
.cds-heading { margin-top: 30px; }
