.privacy-notice {
  padding: 16px 18px;
  border: 1px solid #b8d7cd;
  border-left: 5px solid var(--green);
  border-radius: 7px;
  background: var(--green2);
}
.privacy-notice h3 { color: var(--green); margin-bottom: 6px; }
.privacy-notice p { margin: 0 0 12px; font-size: .92rem; }
.materials-callout {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  margin-top: 26px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #f8fbfa;
}
.materials-callout h2 { margin-bottom: 6px; }
.materials-callout p { margin: 0 0 14px; }
.materials-callout img {
  width: 132px;
  height: 132px;
  padding: 6px;
  border: 1px solid var(--line);
  background: #fff;
}
.file-list { list-style: none; padding: 0; margin: 0; }
.file-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
}
.file-list li:last-child { border-bottom: 0; }
.file-meta { font-size: .82rem; color: var(--muted); }
.file-link { color: var(--ink); font-size: 1rem; font-weight: 700; text-decoration-thickness: 1px; }
.file-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.breadcrumbs { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 0 0 18px; }
.breadcrumbs a { color: var(--green); font-weight: 700; }
.folder-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; margin-bottom: 22px; }
.folder-card { display: flex; align-items: center; gap: 11px; padding: 15px; border: 1px solid var(--line); border-radius: 8px; background: var(--green2); color: var(--ink); font-weight: 700; text-decoration: none; }
.folder-card:hover, .folder-card:focus { border-color: var(--green); }
.folder-icon { color: var(--gold); font-size: 1.35rem; }
.access-box { max-width: 570px; margin: 0 auto; }
.attendance-mark { font-weight: 700; color: var(--green); }
.attendance-qr { max-width: 330px; margin: 20px 0; padding: 16px; border: 1px solid var(--line); border-radius: 9px; background: #fff; text-align: center; }
.attendance-qr img { display: block; width: 290px; max-width: 100%; height: auto; margin: 0 auto; image-rendering: pixelated; }
.attendance-qr p { margin: 10px 0 0; color: var(--muted); font-size: .88rem; }
.qr-scanner { margin-top: 18px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #101414; color: #fff; }
.qr-scanner video { display: block; width: 100%; max-height: 360px; border-radius: 6px; background: #000; object-fit: cover; }
.qr-scanner .hint { color: #e3ece9; }
.stats-flex { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.report-group-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; }
.report-group-card { display: flex; flex-direction: column; }
.report-group-card > .actions { margin-top: auto; }
.report-group-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.report-fields { display: grid; gap: 22px; margin-top: 24px; }
.report-fields label, .report-fields legend { font-size: 1rem; font-weight: 700; color: var(--green); }
.report-fields fieldset { border: 1px solid var(--line); border-radius: 8px; padding: 18px; }
.report-fields fieldset textarea { margin-bottom: 14px; }
.breakaway-print-report { max-width: 900px; margin: 20px auto; padding: 34px; border: 1px solid var(--line); background: #fff; }
.report-title { border-bottom: 3px solid var(--gold); margin-bottom: 22px; padding-bottom: 14px; }
.report-title h1 { margin: 3px 0 8px; }
.report-meta th { width: 210px; background: var(--green2); }
.report-answer { padding: 18px 0; border-bottom: 1px solid var(--line); }
.report-answer h2 { color: var(--green); font-size: 1.05rem; margin-bottom: 9px; }
.report-answer div, .report-answer li { line-height: 1.55; }
.report-answer li { margin-bottom: 10px; }
.report-generated { margin-top: 22px; color: var(--muted); font-size: .82rem; text-align: right; }
@media (max-width: 760px) {
  .materials-callout { align-items: flex-start; }
  .materials-callout img { width: 96px; height: 96px; }
  .file-list li { align-items: flex-start; flex-direction: column; }
  .file-actions { justify-content: flex-start; }
}
@media print {
  .top, .footer, form, button, .actions > .button { display: none !important; }
  body, main { background: #fff !important; }
  main.wrap { width: 100%; padding: 0; }
  .card { box-shadow: none; border: 0; padding: 0; }
  .table-wrap { overflow: visible; }
  table { font-size: 10pt; }
  @page { size: A4; margin: 14mm; }
  .print-controls { display: none !important; }
  .breakaway-print-report { max-width: none; margin: 0; padding: 0; border: 0; }
  .report-answer { break-inside: avoid; }
}
