.report-shell {
  width: min(100%, 42rem);
  margin: 0 auto;
}

.report-card {
  padding: 1rem;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
}

.report-intro,
.report-help,
.report-private-note { margin: 0 0 0.8rem; line-height: 1.55; }
.report-help,
.report-private-note { color: var(--muted); font-size: 0.9rem; }
.report-weeks { display: grid; gap: 0.6rem; }
.report-week {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0.24rem 0.5rem;
  padding: 0.8rem;
  color: inherit;
  text-decoration: none;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.report-week-title { font-weight: 700; }
.report-week-assignment { grid-column: 1; color: var(--muted); font-size: 0.9rem; }
.report-status,
.report-current-status { color: #5b616a; font-size: 0.84rem; }
.report-week .report-status { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.report-status.is-submitted,
.report-current-status.is-submitted { color: #146c43; }
.report-status.is-draft,
.report-current-status.is-draft { color: #8a5200; }
.report-form { display: grid; gap: 1rem; }
.report-meta-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.7rem; }
.report-field { display: grid; gap: 0.4rem; }
.report-field label { font-weight: 700; line-height: 1.45; }
.report-field input,
.report-field textarea {
  width: 100%;
  min-height: 2.9rem;
  padding: 0.72rem;
  color: var(--ink);
  background: #fff;
  border: 1px solid #aeb7c2;
  border-radius: 8px;
  font: inherit;
  font-size: 1rem;
}
.report-field textarea { min-height: 7.5rem; line-height: 1.55; resize: vertical; }
.report-field input:focus,
.report-field textarea:focus { outline: 3px solid #bfdbfe; border-color: #0369a1; }
.report-assignment,
.report-errors { margin: 0 0 1rem; padding: 0.8rem; border-radius: 9px; line-height: 1.55; }
.report-assignment { background: #f1f6fa; }
.report-assignment p { margin: 0.35rem 0 0; white-space: pre-line; }
.report-errors { color: #8a1f1f; background: #fde8e8; }
.report-errors p { margin: 0; font-weight: 700; }
.report-errors ul { margin: 0.4rem 0 0; padding-left: 1.3rem; }
.report-current-status { margin: 0 0 0.75rem; }
.report-downloads { display: flex; gap: 0.6rem; margin: 0 0 1rem; }
.report-downloads a { padding: 0.6rem 0.8rem; color: #0369a1; border: 1px solid #9ac5db; border-radius: 8px; font-weight: 700; }
.report-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }
.report-button {
  min-height: 3rem;
  padding: 0.7rem 1rem;
  color: #fff;
  background: #0369a1;
  border: 0;
  border-radius: 9px;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.report-button-secondary { color: #17445f; background: #e7f0f6; }
.report-back { display: inline-block; margin-top: 1rem; color: #0369a1; }
.report-entry { margin: 0.6rem 0; text-align: center; }
.report-entry a { display: block; padding: 0.75rem; color: #fff; background: #0369a1; border-radius: 9px; font-weight: 700; text-decoration: none; }
.report-answer { white-space: pre-wrap; overflow-wrap: anywhere; }

/* Mobile form uses the same visual language as the Reading Bible 2027 Rails application form. */
.report-screen-header { margin: 0 auto 1.5rem; width: min(100%, 42rem); }
.report-screen-header h1 { margin: 0; text-align: left; font-size: 1.5rem; letter-spacing: -0.025em; }
.report-brand { margin: 0 0 0.25rem; color: #047857; font-size: 0.875rem; font-weight: 600; }
.report-sheet-header { margin-bottom: 1rem; }
.report-sheet-header h2 { margin: 0; }
.report-sheet-meta { display: grid; gap: 0.4rem; }
.report-lecture-line { display: flex; align-items: center; gap: 0.35rem; }
.report-lecture-item { display: flex; align-items: center; gap: 0.35rem; }
.report-lecture-line input { min-width: 0; }
.report-lecture-line input[type="number"] { width: 4.5rem; }
.report-lecture-line input[type="date"] { flex: 1; }
.report-sheet-group { margin: 0; text-align: right; }
.report-answer-fields { display: grid; gap: 1.5rem; }
.report-question-label { font-size: 0.9375rem; font-weight: 600; }
.report-desktop-question-label { display: none; }
.report-mobile-question-label { display: inline; }
.report-back-side-note { margin: 0.5rem 0 0; text-align: right; font-size: 0.875rem; }
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 899px) {
  html:has(.report-screen-header),
  body:has(.report-screen-header) { width: 100%; max-width: 100%; overflow-x: hidden; -webkit-text-size-adjust: 100%; }
  body:has(.report-screen-header) { padding: 0; background: #fff; font-family: "Noto Sans KR", -apple-system, BlinkMacSystemFont, system-ui, sans-serif; }
  .report-shell { box-sizing: border-box; width: min(100%, 28rem); padding: 0.75rem 1.25rem 1.5rem; }
  .report-screen-header { width: 100%; margin-bottom: 0.5rem; }
  .report-screen-header h1 { font-size: 1.35rem; line-height: 1.3; }
  .report-card { padding: 0; background: transparent; border: 0; border-radius: 0; }
  .report-intro { margin-bottom: 0.25rem; font-size: 0.9375rem; }
  .report-shell:has(.report-screen-header) .report-assignment { background: #ecfdf5; border-left: 3px solid #059669; }
  .report-shell:has(.report-screen-header) .report-downloads a,
  .report-shell:has(.report-screen-header) .report-back { color: #047857; }
  .report-form { gap: 0.5rem; }
  .report-sheet { background: #fff; }
  .report-paper-content { width: 100%; }
  .report-sheet-header,
  .report-sheet-group,
  .report-meta-hwp-fragment { display: none; }
  .report-lecture-line { display: flex; align-items: center; justify-content: flex-start; gap: 0.5rem; white-space: nowrap; }
  .report-lecture-item { display: flex; align-items: center; gap: 0.25rem; }
  .report-mobile-meta-label {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
    font-size: 0.8125rem;
    font-weight: 600;
  }
  .report-sheet-meta { padding-bottom: 0.5rem; border-bottom: 1px solid #e5e7eb; }
  .report-sheet-group { color: #4b5563; font-size: 0.9375rem; }
  .report-answer-fields { gap: 0; }
  .report-question { padding: 0.3rem 0; border-bottom: 1px solid #e5e7eb; }
  .report-question-label { display: block; margin: 0; font-size: 0.9375rem; }
  .report-question:not(.report-reflection) .report-mobile-question-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .report-reflection .report-question-label { margin-bottom: 0.2rem; }
  .report-field input,
  .report-field textarea,
  .report-lecture-line input {
    min-height: 2.75rem;
    margin-top: 0;
    padding: 0.55rem 0.75rem;
    border-color: #d1d5db;
    border-radius: 0.375rem;
    font-family: inherit;
    font-size: 16px;
  }
  .report-field textarea {
    height: 3rem;
    min-height: 3rem;
    line-height: 1.45;
    overflow: hidden;
    resize: none;
    transition: height 180ms ease;
  }
  .report-field textarea:focus { height: 12rem; overflow-y: auto; }
  .report-lecture-line input[type="number"] { width: 3rem; flex: none; text-align: center; }
  .report-lecture-line input[type="date"] { width: 8.25rem; flex: none; }
  .report-lecture-line input[type="date"]::-webkit-calendar-picker-indicator { display: none; }
  .report-field input:focus,
  .report-field textarea:focus,
  .report-lecture-line input:focus { outline: 2px solid #059669; outline-offset: 1px; border-color: #059669; }
  .report-actions { grid-template-columns: 1fr; }
  .report-button {
    min-height: 3.25rem;
    padding: 1rem;
    border-radius: 0.375rem;
    background: #059669;
    font-family: inherit;
    font-size: 1.125rem;
    font-weight: 700;
  }
  .report-button:hover { background: #047857; }
  .report-button:active { background: #065f46; }
  .report-button-secondary { color: #047857; background: #fff; border: 1px solid #059669; }
  .report-button-secondary:hover,
  .report-button-secondary:active { color: #047857; background: #ecfdf5; }
}

@media (max-width: 360px) {
  .report-shell { padding-right: 1rem; padding-left: 1rem; }
  .report-lecture-line { gap: 0.25rem; }
  .report-lecture-line input[type="number"] { width: 2.75rem; }
  .report-lecture-line input[type="date"] { width: 7.5rem; }
}

@media (min-width: 900px) {
  .report-shell { width: min(210mm, 100%); }
  .report-screen-header { width: 100%; margin-bottom: 0.75rem; }
  .report-screen-header h1 { display: none; }
  .report-brand { display: none; }
  .report-card { padding: 0; border: 0; background: transparent; border-radius: 0; }
  .report-intro { display: none; }
  .report-current-status,
  .report-downloads,
  .report-assignment,
  .report-errors,
  .report-private-note,
  .report-actions,
  .report-back { width: min(210mm, 100%); margin-left: auto; margin-right: auto; }
  .report-sheet {
    width: 100%;
    min-height: 297mm;
    padding: 36.5mm 0 16mm;
    background: #fff;
    box-shadow: 0 2px 12px rgb(15 23 42 / 12%);
    color: #111;
    font-family: "Noto Sans KR", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
    font-size: 11pt;
  }
  .report-paper-content { width: min(150mm, 100%); margin: 0 auto; }
  .report-sheet-header { margin: 0 0.5mm 2.2mm; padding: 2.2mm 0; border-top: 1px solid #111; border-bottom: 1px solid #111; background: #ff0; }
  .report-sheet-header h2 { text-align: center; font-size: 19pt; font-weight: 700; letter-spacing: 0.35em; line-height: 1.25; }
  .report-sheet-meta { display: flex; align-items: center; justify-content: space-between; min-height: 8.3mm; margin: 0 0.5mm; padding: 0 2mm; border-bottom: 1px solid #111; }
  .report-lecture-line { gap: 1.2mm; white-space: nowrap; }
  .report-lecture-item { gap: 1.2mm; }
  .report-mobile-meta-label { display: none; }
  .report-meta-hwp-fragment { display: inline; }
  .report-lecture-line input,
  .report-field input,
  .report-field textarea { min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: #111; box-shadow: none; font: inherit; }
  .report-sheet input::placeholder,
  .report-sheet textarea::placeholder { color: transparent; }
  .report-lecture-line input[type="date"]:invalid { color: transparent; }
  .report-lecture-line input[type="date"]:invalid::-webkit-datetime-edit { color: transparent; }
  .report-lecture-line input[type="date"]::-webkit-calendar-picker-indicator,
  .report-lecture-line input[type="number"]::-webkit-inner-spin-button { display: none; }
  .report-lecture-line input[type="number"] { width: 8mm; text-align: center; }
  .report-lecture-line input[type="date"] { width: 28mm; flex: none; }
  .report-lecture-line input:focus,
  .report-field input:focus,
  .report-field textarea:focus { outline: 2px solid #059669; outline-offset: 1px; }
  .report-sheet-group { min-width: 52%; text-align: right; }
  .report-answer-fields { gap: 0; }
  .report-question { display: grid; grid-template-columns: 5.3mm 1fr; gap: 0; min-height: 40.7mm; padding: 0; border: 0; }
  .report-question:first-child { margin-top: 10mm; }
  .report-field .report-question-label { font-size: inherit; font-weight: 400; }
  .report-desktop-question-label { display: inline; }
  .report-mobile-question-label { display: none; }
  .report-question textarea { width: 100%; min-height: 39mm; line-height: 1.55; field-sizing: content; resize: none; overflow-y: hidden; }
  .report-reflection { display: block; min-height: 0; margin-top: 11.3mm; padding: 0; }
  .report-reflection textarea { min-height: 22mm; margin-top: 2.6mm; }
  .report-back-side-note { margin-top: 1mm; font-size: 10pt; }
}

@media print {
  body:has(.report-sheet) { padding: 0; background: #fff; }
  .report-screen-header,
  .report-intro,
  .report-current-status,
  .report-downloads,
  .report-assignment,
  .report-errors,
  .report-private-note,
  .report-actions,
  .report-back { display: none !important; }
  .report-shell,
  .report-card,
  .report-sheet { width: 210mm; margin: 0; box-shadow: none; }
  .report-sheet { min-height: 297mm; }
}

@media (max-width: 520px) {
  .report-card { padding: 0; }
  .report-meta-grid { grid-template-columns: 1fr; }
  .report-actions { grid-template-columns: 1fr; }
}

/* 조원 서류(자기소개서·독서보고서) */
.member-section-title { margin: 1.4rem 0 0.6rem; font-size: 1rem; }
.report-week-new { grid-template-columns: 1fr; color: #0369a1; font-weight: 700; justify-items: center; }
.report-link-button {
  padding: 0;
  color: inherit;
  background: none;
  border: 0;
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}
.member-forms-status { margin: 0.6rem 0 1rem; }
.member-forms-status summary { cursor: pointer; font-weight: 700; }
.member-forms-status .member-link { width: 100%; margin: 0 0 0.6rem; padding: 0.5rem; font: inherit; font-size: 0.85rem; }
