/* CFI section additions - everything else comes from ../dpe/styles.css so the
   two sections share one look. */

.cfi-narrow { max-width: 560px; }
.cfi-wide { max-width: 980px; }

.cfi-badge {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.12rem 0.5rem;
  border-radius: 999px;
  border: 1px solid var(--panel-border);
  color: var(--muted);
  vertical-align: middle;
  margin-left: 0.4rem;
}
.cfi-badge.ok { color: var(--success); border-color: var(--success); background: var(--success-bg); }
.cfi-badge.warn { color: var(--amber); border-color: var(--amber); background: var(--amber-bg); }
.cfi-badge.bad { color: var(--danger); border-color: var(--danger); background: var(--danger-bg); }
.cfi-badge.info { color: #7fb2ea; border-color: #7fb2ea; }

.cfi-section { margin-bottom: 1.25rem; }
.cfi-section > summary { cursor: pointer; font-weight: 700; font-size: 1.05rem; }
.cfi-count { margin-left: 0.5rem; font-size: 0.8rem; color: var(--muted); font-weight: 400; }

.cfi-toolbar { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: end; margin-bottom: 1rem; }
.cfi-toolbar .field { flex: 1 1 200px; margin: 0; }

.cfi-cat { margin: 1.5rem 0 0.6rem; font-size: 0.95rem; color: var(--muted); letter-spacing: 0.04em; text-transform: uppercase; }
.cfi-res-row { align-items: flex-start; }
.cfi-res-main { flex: 1 1 260px; min-width: 0; }
.cfi-res-title { font-weight: 600; font-size: 0.98rem; word-break: break-word; }
.cfi-res-desc { color: var(--muted); font-size: 0.85rem; margin-top: 0.15rem; }
.cfi-res-meta { color: var(--muted); font-size: 0.78rem; margin-top: 0.25rem; }

.cfi-card {
  border: 1px solid var(--panel-border);
  border-radius: 12px;
  padding: 0.9rem 1rem;
  background: var(--input-bg);
  margin-bottom: 0.75rem;
}
.cfi-card h3 { margin: 0 0 0.35rem; font-size: 1rem; }
.cfi-kv { display: grid; grid-template-columns: 110px 1fr; gap: 0.15rem 0.75rem; font-size: 0.88rem; margin: 0.4rem 0 0.7rem; }
.cfi-kv dt { color: var(--muted); }
.cfi-kv dd { margin: 0; word-break: break-word; white-space: pre-wrap; }
.cfi-actions { display: flex; flex-wrap: wrap; gap: 0.9rem; align-items: center; margin-top: 0.5rem; }
.cfi-actions .btn-link { margin: 0; }
.cfi-inline-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 0.75rem; align-items: end; margin-bottom: 0.9rem; }
.cfi-inline-form .field { margin: 0; }
.cfi-empty { color: var(--muted); font-size: 0.9rem; padding: 0.4rem 0; }
.cfi-msg { margin: 0 0 1rem; }
.cfi-ok {
  background: var(--success-bg); border: 1px solid var(--success); color: var(--success);
  border-radius: 10px; padding: 0.7rem 1rem; font-size: 0.88rem; margin-bottom: 1rem;
}
.field select, .field textarea, .field input[type="file"] { max-width: 100%; }
.field select {
  padding: 0.55rem 0.65rem; border: 1px solid var(--input-border); border-radius: 8px;
  font: inherit; background: var(--input-bg); color: var(--fg);
}
.field input[type="file"] { color: var(--muted); font-size: 0.88rem; }
.cfi-card .field select, .cfi-card .field textarea { width: 100%; }
@media (max-width: 560px) { .cfi-kv { grid-template-columns: 1fr; } }

/* Student schedule */
.cfi-faded { opacity: 0.6; }
.cfi-warn { color: var(--amber); }
.cfi-lessons .cfi-lesson { padding: 0.6rem 0.75rem; margin-bottom: 0.5rem; border: 1px solid var(--panel-border); border-left: 3px solid var(--link, #8fb8e8); border-radius: 6px; background: var(--panel-bg); }
.cfi-lessons .cfi-lesson-when { font-weight: 700; }
.cfi-lessons .cfi-lesson-line { margin: 0.15rem 0 0; font-size: 0.9rem; color: var(--muted); white-space: pre-wrap; overflow-wrap: anywhere; }
