/* ============================================================
   Newspaper Academy - Creative Writing Assessment
   ============================================================ */

/* --- Reset & Base --- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  font-family: 'Noto Sans KR', sans-serif;
  color: #2C2416;
  background: #FDF8F0;
  line-height: 1.7;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img { max-width: 100%; display: block; }
button { cursor: pointer; font-family: inherit; }
input, select, textarea { font-family: inherit; }

/* ============================================================
   1. LANDING PAGE
   ============================================================ */

#landing {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(139,105,20,0.06) 0%, transparent 60%),
    radial-gradient(ellipse at 70% 80%, rgba(74,124,89,0.04) 0%, transparent 60%),
    linear-gradient(180deg, #FDF8F0 0%, #F5EDE0 100%);
  padding: 40px 20px;
}

.landing-inner {
  max-width: 600px;
  width: 100%;
  text-align: center;
}

.landing-badge {
  display: inline-block;
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: #8B6914;
  border: 1.5px solid #8B6914;
  border-radius: 100px;
  padding: 6px 20px;
  margin-bottom: 32px;
  text-transform: uppercase;
}

.landing-title {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 2.75rem;
  font-weight: 800;
  line-height: 1.3;
  color: #2C2416;
  margin-bottom: 20px;
  letter-spacing: -0.02em;
}

.landing-title span {
  color: #8B6914;
}

.landing-desc {
  font-size: 0.9375rem;
  color: #7A6B55;
  line-height: 1.8;
  margin-bottom: 36px;
}

/* Landing Rules */
.landing-rules {
  text-align: left;
  background: #FFFFFF;
  border: 1px solid #E8DCC8;
  border-radius: 14px;
  padding: 24px 28px;
  margin-bottom: 28px;
  box-shadow: 0 2px 12px rgba(44,36,22,0.04);
}

.rule-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 0;
  font-size: 0.9375rem;
  color: #2C2416;
}

.rule-item + .rule-item {
  border-top: 1px solid #F5EDE0;
}

.rule-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: rgba(139,105,20,0.10);
  color: #8B6914;
  border-radius: 8px;
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
  font-family: 'Noto Sans KR', sans-serif;
}

/* Landing Start Area */
.landing-start-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 24px;
}

/* Landing Time */
.landing-time {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  color: #7A6B55;
  margin-bottom: 16px;
}

.landing-time svg {
  color: #8B6914;
  flex-shrink: 0;
}

/* Landing choose text */
.landing-choose {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: #5A4D3A;
  margin-bottom: 16px;
}

/* Button row */
.landing-btn-row {
  display: flex;
  gap: 16px;
  justify-content: center;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

/* Start Button */
.btn-start {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 220px;
  padding: 18px 36px;
  font-size: 1.0625rem;
  font-weight: 700;
  color: #FFFFFF;
  background: linear-gradient(135deg, #8B6914 0%, #6B4F0E 100%);
  border: none;
  border-radius: 12px;
  box-shadow:
    0 4px 16px rgba(139,105,20,0.25),
    0 1px 3px rgba(139,105,20,0.15);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  cursor: pointer;
}

.btn-start.btn-parent {
  background: linear-gradient(135deg, #5A7B3A 0%, #3D5A1E 100%);
  box-shadow:
    0 4px 16px rgba(90,123,58,0.25),
    0 1px 3px rgba(90,123,58,0.15);
}

.btn-start:hover {
  transform: translateY(-2px);
  box-shadow:
    0 6px 24px rgba(139,105,20,0.30),
    0 2px 6px rgba(139,105,20,0.15);
}

.btn-start.btn-parent:hover {
  box-shadow:
    0 6px 24px rgba(90,123,58,0.30),
    0 2px 6px rgba(90,123,58,0.15);
}

.btn-start:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(139,105,20,0.20);
}

/* Writer Type Badge */
.writer-type-badge {
  display: inline-block;
  padding: 8px 20px;
  border-radius: 20px;
  font-size: 0.9375rem;
  font-weight: 700;
  margin-bottom: 8px;
}
.writer-type-badge.student {
  background: #F5EDE0;
  color: #8B6914;
  border: 2px solid #D4C5A0;
}
.writer-type-badge.parent {
  background: #EDF5E0;
  color: #3D5A1E;
  border: 2px solid #A8C88A;
}

/* Landing Gallery */
.landing-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 28px;
  width: 100%;
  max-width: 520px;
}

.gallery-item {
  text-align: center;
}

.gallery-img {
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(44,36,22,0.10);
  margin-bottom: 8px;
}

.gallery-item span {
  font-size: 0.8125rem;
  color: #7A6B55;
  font-weight: 500;
}

/* Landing Reviews */
.landing-reviews {
  width: 100%;
  max-width: 520px;
  margin-bottom: 32px;
  text-align: center;
}

.reviews-img {
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(44,36,22,0.10);
  margin-bottom: 8px;
}

.reviews-caption {
  font-size: 0.875rem;
  color: #8B6914;
  font-weight: 600;
}

/* Landing Footer */
.landing-footer {
  font-size: 0.8125rem;
  color: #7A6B55;
  opacity: 0.7;
}

/* SEO Content */
.seo-content {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.seo-inner {
  max-width: 720px;
  margin: 0 auto;
}

.seo-content h2 {
  font-family: 'Nanum Myeongjo', serif;
  font-size: 1.5rem;
  font-weight: 800;
  color: #2C2416;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid #8B6914;
  display: inline-block;
}

.seo-content h3 {
  font-family: 'Nanum Myeongjo', serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: #4A3B2A;
  margin: 24px 0 10px;
}

.seo-content p {
  color: #5A4D3A;
  font-size: 0.9375rem;
  line-height: 1.8;
  margin-bottom: 12px;
}

.seo-content ul {
  color: #5A4D3A;
  font-size: 0.9375rem;
  line-height: 1.8;
  padding-left: 20px;
  margin-bottom: 16px;
}

.seo-content li {
  margin-bottom: 6px;
}

.seo-contact {
  background: #fff;
  border: 1px solid #D4C4A0;
  border-radius: 12px;
  padding: 20px 24px;
  margin-top: 24px;
  text-align: center;
}

.seo-contact p {
  margin-bottom: 4px;
  color: #4A3B2A;
}


/* ============================================================
   2. WIZARD LAYOUT
   ============================================================ */

#wizard {
  min-height: 100vh;
  background: #F5EDE0;
  display: flex;
  flex-direction: column;
}

/* --- Wizard Header --- */
.wizard-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #FFFFFF;
  border-bottom: 1px solid #E8DCC8;
  padding: 0;
  box-shadow: 0 1px 8px rgba(44,36,22,0.05);
}

.wizard-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 24px 10px;
}

.wizard-logo {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #8B6914;
  letter-spacing: 0.05em;
}

/* Timer */
.timer {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(139,105,20,0.08);
  color: #6B4F0E;
  padding: 6px 14px;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  transition: background 0.3s, color 0.3s;
}

.timer svg {
  flex-shrink: 0;
}

.timer.warning {
  background: rgba(160,64,64,0.10);
  color: #A04040;
  animation: timerPulse 1.5s ease-in-out infinite;
}

.timer.urgent {
  background: #A04040;
  color: #FFFFFF;
  animation: timerPulse 0.8s ease-in-out infinite;
}

.timer.urgent svg {
  stroke: #FFFFFF;
}

@keyframes timerPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

/* Progress Bar */
.progress-bar {
  width: 100%;
  height: 4px;
  background: #F5EDE0;
}

.progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #8B6914 0%, #B8941E 100%);
  border-radius: 0 2px 2px 0;
  transition: width 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

/* Step Indicator */
.step-indicator {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 24px 12px;
  font-size: 0.8125rem;
}

#stepLabel {
  font-weight: 600;
  color: #2C2416;
}

#stepCount {
  color: #7A6B55;
  font-variant-numeric: tabular-nums;
}


/* --- Wizard Body --- */
.wizard-body {
  flex: 1;
  max-width: 720px;
  width: 100%;
  margin: 0 auto;
  padding: 32px 24px 140px;
}

.wizard-step {
  display: none;
}

.wizard-step.active {
  display: block;
  animation: fadeInStep 0.35s ease-out;
}

@keyframes fadeInStep {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Step Title & Description */
.step-title {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.625rem;
  font-weight: 800;
  color: #2C2416;
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}

.step-desc {
  font-size: 0.9375rem;
  color: #7A6B55;
  margin-bottom: 32px;
  line-height: 1.7;
}

.step-desc strong {
  color: #A04040;
  font-weight: 600;
}


/* ============================================================
   3. FORM ELEMENTS
   ============================================================ */

.form-group {
  margin-bottom: 28px;
}

.form-label {
  display: block;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #2C2416;
  margin-bottom: 8px;
  line-height: 1.5;
}

.form-label.required::after {
  content: ' *';
  color: #A04040;
  font-weight: 400;
}

.form-hint {
  font-size: 0.8125rem;
  color: #7A6B55;
  margin-bottom: 10px;
  line-height: 1.5;
}

/* Text Input */
.form-input {
  display: block;
  width: 100%;
  padding: 12px 16px;
  font-size: 1rem;
  color: #2C2416;
  background: #FFFFFF;
  border: 1.5px solid #E8DCC8;
  border-radius: 10px;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  appearance: none;
  -webkit-appearance: none;
}

.form-input::placeholder {
  color: #B8A88A;
}

.form-input:focus {
  border-color: #8B6914;
  box-shadow: 0 0 0 3px rgba(139,105,20,0.12);
}

.phone-hint {
  display: block;
  margin-top: 4px;
  font-size: 0.8rem;
  color: #B8A88A;
}

/* Select */
.form-select {
  display: block;
  width: 100%;
  padding: 12px 40px 12px 16px;
  font-size: 1rem;
  color: #2C2416;
  background: #FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237A6B55' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 14px center;
  background-size: 16px;
  border: 1.5px solid #E8DCC8;
  border-radius: 10px;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

.form-select:focus {
  border-color: #8B6914;
  box-shadow: 0 0 0 3px rgba(139,105,20,0.12);
}

/* Textarea */
.form-textarea {
  display: block;
  width: 100%;
  padding: 14px 16px;
  font-size: 1rem;
  color: #2C2416;
  background: #FFFFFF;
  border: 1.5px solid #E8DCC8;
  border-radius: 10px;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  resize: vertical;
  line-height: 1.7;
  min-height: 100px;
}

.form-textarea::placeholder {
  color: #B8A88A;
}

.form-textarea:focus {
  border-color: #8B6914;
  box-shadow: 0 0 0 3px rgba(139,105,20,0.12);
}

/* Form Row (2-column) */
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}


/* ============================================================
   4. CHECKBOX & RADIO CARDS
   ============================================================ */

/* --- Checkbox Grid --- */
.checkbox-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.checkbox-grid.compact {
  grid-template-columns: repeat(2, 1fr);
}

/* Check Card */
.check-card {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px 16px;
  background: #FFFFFF;
  border: 1.5px solid #E8DCC8;
  border-radius: 10px;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
  position: relative;
}

.check-card:hover {
  border-color: #D4C4A0;
  background: #FDFBF7;
}

.check-card input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: #8B6914;
  cursor: pointer;
  flex-shrink: 0;
}

.check-card span {
  font-size: 0.9rem;
  color: #2C2416;
  line-height: 1.5;
}

.check-card small {
  display: block;
  font-size: 0.75rem;
  color: #7A6B55;
  margin-top: 2px;
  line-height: 1.4;
}

.check-card:has(input:checked) {
  border-color: #8B6914;
  background: rgba(139,105,20,0.06);
  box-shadow: 0 0 0 1px rgba(139,105,20,0.15);
}

.check-card.scored span::after {
  /* No visible score indicator needed */
}

/* --- University Group Headers --- */
.univ-group-label {
  grid-column: 1 / -1;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #7A6B55;
  padding: 10px 0 4px;
  border-bottom: 1px solid #E8DCC8;
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.univ-group-label:first-child { margin-top: 0; }
.univ-group-label .tag {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
  color: #fff;
}
.univ-group-label .tag.susi { background: #4A7C59; }
.univ-group-label .tag.jungsi { background: #4A6FA5; }
.univ-group-label .tag.both { background: #8B6914; }

.check-card .univ-tags {
  display: flex;
  gap: 4px;
  margin-top: 2px;
}
.check-card .univ-tag {
  display: inline-block;
  font-size: 0.625rem;
  font-weight: 600;
  padding: 1px 6px;
  border-radius: 8px;
  line-height: 1.4;
}
.check-card .univ-tag.susi { background: #E8F5E9; color: #2E7D32; }
.check-card .univ-tag.jungsi { background: #E3F2FD; color: #1565C0; }
.check-card .univ-tag.ratio { background: #FFF3E0; color: #E65100; font-weight: 600; }
.check-card .univ-tag.special { background: #F3E5F5; color: #7B1FA2; font-weight: 600; }
.check-card .univ-tag.info { background: #F5F5F5; color: #616161; font-size: 0.7rem; }

.check-card .univ-detail {
  display: block;
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px dashed #E0D5C0;
  font-size: 0.7rem;
  color: #7A6B55;
  line-height: 1.5;
  font-weight: 400;
}

/* --- Radio List --- */
.radio-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Radio Card */
.radio-card {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 14px 16px;
  background: #FFFFFF;
  border: 1.5px solid #E8DCC8;
  border-radius: 10px;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
}

.radio-card:hover {
  border-color: #D4C4A0;
  background: #FDFBF7;
}

.radio-card input[type="radio"] {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: #8B6914;
  cursor: pointer;
  flex-shrink: 0;
}

.radio-card span {
  font-size: 0.9375rem;
  color: #2C2416;
  line-height: 1.5;
}

.radio-card:has(input:checked) {
  border-color: #8B6914;
  background: rgba(139,105,20,0.06);
  box-shadow: 0 0 0 1px rgba(139,105,20,0.15);
}

/* Passage Option (inside radio-card for sumi-sanggwan) */
.passage-option {
  flex: 1;
}

.passage-option strong {
  display: block;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #8B6914;
  margin-bottom: 6px;
  letter-spacing: 0.03em;
}

.passage-option p {
  font-size: 0.9rem;
  color: #2C2416;
  line-height: 1.7;
}

.passage-choices .radio-card {
  align-items: flex-start;
  padding: 18px 20px;
}


/* ============================================================
   5. LITERARY PASSAGES
   ============================================================ */

.literary-passage {
  background: #FDFBF7;
  border-left: 4px solid #8B6914;
  border-radius: 0 10px 10px 0;
  padding: 20px 24px;
  margin-bottom: 16px;
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1rem;
  line-height: 1.9;
  color: #2C2416;
  font-style: italic;
}

.literary-passage.poem {
  text-align: center;
  border-left: none;
  border-top: 2px solid #E8DCC8;
  border-bottom: 2px solid #E8DCC8;
  border-radius: 0;
  padding: 28px 24px;
  line-height: 2.2;
  letter-spacing: 0.02em;
}

.poem-author {
  display: block;
  text-align: right;
  font-size: 0.8125rem;
  color: #7A6B55;
  font-style: normal;
  margin-top: 12px;
  font-family: 'Noto Sans KR', sans-serif;
}


/* ============================================================
   6. STEP 5 - ORDERING
   ============================================================ */

.order-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.order-item {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #FFFFFF;
  border: 1.5px solid #E8DCC8;
  border-radius: 10px;
  padding: 12px 16px;
  transition: border-color 0.2s;
}

.order-item:hover {
  border-color: #D4C4A0;
}

.order-select {
  width: 64px;
  min-width: 64px;
  padding: 8px 28px 8px 12px;
  font-size: 0.9375rem;
  text-align: center;
  background-position: right 6px center;
}

.order-item > span {
  font-size: 0.9375rem;
  color: #2C2416;
  font-weight: 500;
}


/* ============================================================
   7. STEP 6 - WRITING SECTION
   ============================================================ */

/* Writing Choice */
.writing-choice .radio-card {
  padding: 0;
  overflow: hidden;
}

.writing-choice .radio-card input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.writing-type-card {
  width: 100%;
  padding: 20px 24px;
  text-align: center;
}

.writing-type-card strong {
  display: block;
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.125rem;
  color: #2C2416;
  margin-bottom: 6px;
}

.writing-type-card p {
  font-size: 0.8125rem;
  color: #7A6B55;
}

.writing-choice {
  flex-direction: row;
  display: flex;
  gap: 12px;
}

.writing-choice .radio-card {
  flex: 1;
  justify-content: center;
}

/* Prompt Box */
.writing-prompt {
  margin-bottom: 24px;
}

.prompt-box {
  background: #FFFFFF;
  border: 2px solid #8B6914;
  border-radius: 12px;
  padding: 20px 24px;
  position: relative;
}

.prompt-label {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #FFFFFF;
  background: #8B6914;
  padding: 3px 10px;
  border-radius: 6px;
  margin-bottom: 10px;
  text-transform: uppercase;
}

.prompt-box p {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.0625rem;
  line-height: 1.8;
  color: #2C2416;
}

/* Writing Area */
.writing-area-header {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-bottom: 8px;
}

.writing-counter {
  font-size: 0.8125rem;
  color: #7A6B55;
  font-variant-numeric: tabular-nums;
}

.writing-textarea {
  min-height: 400px;
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.0625rem;
  line-height: 2;
  letter-spacing: 0.01em;
  padding: 24px;
}

.writing-textarea::placeholder {
  font-family: 'Noto Sans KR', sans-serif;
  font-size: 0.9375rem;
  color: #B8A88A;
}

/* Writing Rules Box */
.writing-rules-box {
  background: #FFF8EE;
  border: 1px solid #D4C5A0;
  border-radius: 12px;
  padding: 20px 24px;
  margin-bottom: 28px;
}
.writing-rules-box h3 {
  margin: 0 0 12px;
  font-size: 1.05rem;
  color: #8B6914;
}
.writing-rules-box ul {
  margin: 0;
  padding-left: 20px;
  line-height: 1.8;
  color: #4A3B2A;
  font-size: 0.95rem;
}

/* Writing Start Panel */
.writing-start-panel {
  text-align: center;
  padding: 32px 24px;
  background: #FFFAF2;
  border: 2px dashed #D4C5A0;
  border-radius: 12px;
  margin: 20px 0;
}
.writing-start-panel p {
  margin: 0 0 20px;
  font-size: 1rem;
  color: #4A3B2A;
}
.btn-writing-start {
  display: inline-block;
  padding: 16px 48px;
  font-size: 1.2rem;
  font-weight: 700;
  color: #fff;
  background: #8B6914;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.2s;
}
.btn-writing-start:hover {
  background: #6B5010;
  transform: scale(1.03);
}

/* Writing Timer Bar */
.writing-timer-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: #2C2416;
  color: #F5E6C8;
  border-radius: 10px;
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 16px;
  position: sticky;
  top: 70px;
  z-index: 10;
}
.writing-timer-bar.warning {
  background: #8B4513;
  animation: timerPulse 2s ease-in-out infinite;
}
.writing-timer-bar.ended {
  background: #7A1F1F;
}
@keyframes timerPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.7; }
}

/* Writing Ended Notice */
.writing-ended-notice {
  background: #FFF3E0;
  border: 2px solid #E65100;
  border-radius: 12px;
  padding: 20px 24px;
  margin-top: 16px;
  text-align: center;
}
.writing-ended-notice p {
  margin: 0;
  font-size: 1rem;
  color: #BF360C;
  line-height: 1.7;
}


/* ============================================================
   8. STEP 8 - RESULTS
   ============================================================ */

/* Parent Complete */
.parent-complete {
  text-align: center;
  padding: 40px 20px;
}

.complete-icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 20px;
  background: linear-gradient(135deg, #4CAF50, #2E7D32);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 40px;
  color: #fff;
}

.complete-title {
  font-family: 'Nanum Myeongjo', serif;
  font-size: 1.75rem;
  font-weight: 800;
  color: #2C2416;
  margin-bottom: 12px;
}

.complete-desc {
  color: #5A4D3A;
  font-size: 1rem;
  line-height: 1.7;
  margin-bottom: 28px;
}

.complete-summary {
  background: #FAF6EE;
  border-radius: 12px;
  padding: 20px 24px;
  margin-bottom: 28px;
  text-align: left;
}

.summary-item {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid #EBE0CC;
}

.summary-item:last-child {
  border-bottom: none;
}

.summary-label {
  font-weight: 600;
  color: #7A6B55;
  font-size: 0.9rem;
}

.summary-value {
  color: #2C2416;
  font-weight: 500;
  font-size: 0.9rem;
  text-align: right;
  max-width: 60%;
}

.complete-next {
  background: #fff;
  border: 2px solid #D4C4A0;
  border-radius: 12px;
  padding: 24px 20px;
}

.complete-next h3 {
  font-family: 'Nanum Myeongjo', serif;
  color: #8B6914;
  font-size: 1.125rem;
  margin-bottom: 10px;
}

.complete-next p {
  color: #5A4D3A;
  line-height: 1.7;
  margin-bottom: 16px;
}

.complete-contact {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

.contact-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 12px 24px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 0.95rem;
  text-decoration: none;
  transition: transform 0.15s, box-shadow 0.2s;
}

.contact-btn.phone {
  background: linear-gradient(135deg, #8B6914, #6B4F0E);
  color: #fff;
  box-shadow: 0 2px 8px rgba(139,105,20,0.2);
}

.contact-btn.kakao {
  background: #FEE500;
  color: #3C1E1E;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.contact-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
}

/* Result Hero */
.result-hero {
  text-align: center;
  padding: 40px 20px 32px;
}

.level-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.75rem;
  font-weight: 800;
  color: #FFFFFF;
  margin-bottom: 20px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.15);
}

/* Level Colors */
.level-badge.level-입문,
.level-badge.level-beginner {
  background: linear-gradient(135deg, #4A6FA5 0%, #3A5A8A 100%);
}

.level-badge.level-기초,
.level-badge.level-foundation {
  background: linear-gradient(135deg, #4A7C59 0%, #3A6347 100%);
}

.level-badge.level-중급,
.level-badge.level-intermediate {
  background: linear-gradient(135deg, #8B6914 0%, #6B4F0E 100%);
}

.level-badge.level-심화,
.level-badge.level-advanced {
  background: linear-gradient(135deg, #7B4FA0 0%, #5E3C7D 100%);
}

/* Result Score */
.result-score {
  text-align: center;
  margin-bottom: 32px;
}

.result-score .score-value {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 3rem;
  font-weight: 800;
  color: #2C2416;
  line-height: 1;
}

.result-score .score-label {
  font-size: 0.875rem;
  color: #7A6B55;
  margin-top: 4px;
}

/* Result Chart */
.result-chart {
  background: #FFFFFF;
  border: 1px solid #E8DCC8;
  border-radius: 14px;
  padding: 24px;
  margin-bottom: 24px;
  box-shadow: 0 2px 12px rgba(44,36,22,0.04);
}

.result-chart h3 {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: #2C2416;
  margin-bottom: 20px;
}

.chart-bar,
.result-bar-item {
  margin-bottom: 16px;
}

.chart-bar:last-child,
.result-bar-item:last-child {
  margin-bottom: 0;
}

.chart-bar-label,
.result-bar-label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}

.chart-bar-label span:first-child,
.result-bar-label span:first-child {
  font-size: 0.875rem;
  font-weight: 500;
  color: #2C2416;
}

.chart-bar-label span:last-child,
.result-bar-label span:last-child {
  font-size: 0.8125rem;
  color: #7A6B55;
  font-variant-numeric: tabular-nums;
}

.chart-bar-track,
.result-bar-track {
  width: 100%;
  height: 10px;
  background: #F5EDE0;
  border-radius: 5px;
  overflow: hidden;
}

.chart-bar-fill,
.result-bar-fill {
  height: 100%;
  border-radius: 5px;
  background: linear-gradient(90deg, #8B6914 0%, #B8941E 100%);
  transition: width 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  width: 0;
}

.chart-bar-fill.animated {
  /* JS adds this class to trigger animation */
}

/* Level-specific bar colors */
.chart-bar-fill.bar-입문 {
  background: linear-gradient(90deg, #4A6FA5 0%, #6A8FC5 100%);
}

.chart-bar-fill.bar-기초 {
  background: linear-gradient(90deg, #4A7C59 0%, #6A9C79 100%);
}

.chart-bar-fill.bar-중급 {
  background: linear-gradient(90deg, #8B6914 0%, #B8941E 100%);
}

.chart-bar-fill.bar-심화 {
  background: linear-gradient(90deg, #7B4FA0 0%, #9B6FC0 100%);
}

/* Result Recommendation */
.result-recommendation {
  background: #FFFFFF;
  border: 1px solid #E8DCC8;
  border-radius: 14px;
  padding: 24px;
  margin-bottom: 24px;
  box-shadow: 0 2px 12px rgba(44,36,22,0.04);
}

.result-recommendation h3 {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: #2C2416;
  margin-bottom: 12px;
}

.result-recommendation p {
  font-size: 0.9375rem;
  color: #2C2416;
  line-height: 1.8;
}

/* Result Feedback */
.result-feedback {
  background: #FFFFFF;
  border: 1px solid #E8DCC8;
  border-radius: 14px;
  padding: 24px;
  margin-bottom: 24px;
  box-shadow: 0 2px 12px rgba(44,36,22,0.04);
}

.result-feedback h3 {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: #2C2416;
  margin-bottom: 16px;
}

.result-feedback ul {
  list-style: none;
  padding: 0;
}

.result-feedback li {
  position: relative;
  padding: 10px 0 10px 24px;
  font-size: 0.9375rem;
  color: #2C2416;
  line-height: 1.6;
}

.result-feedback li + li {
  border-top: 1px solid #F5EDE0;
}

.result-feedback li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 16px;
  width: 8px;
  height: 8px;
  background: #8B6914;
  border-radius: 50%;
}

/* Result CTA */
.result-cta {
  background: linear-gradient(135deg, rgba(139,105,20,0.08) 0%, rgba(139,105,20,0.04) 100%);
  border: 1.5px solid #8B6914;
  border-radius: 14px;
  padding: 28px 24px;
  text-align: center;
  margin-bottom: 24px;
}

.result-cta h3 {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.125rem;
  font-weight: 700;
  color: #2C2416;
  margin-bottom: 12px;
}

.result-cta p {
  font-size: 0.9375rem;
  color: #2C2416;
  line-height: 1.7;
  margin-bottom: 8px;
}

.result-cta a {
  color: #8B6914;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(139,105,20,0.3);
  transition: border-color 0.2s;
}

.result-cta a:hover {
  border-bottom-color: #8B6914;
}

/* Result Phase Info (1차/2차) */
.result-phase-info {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 24px;
}
.phase-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px 24px;
  border-radius: 14px;
  border: 1.5px solid #E8DCC8;
  background: #FFFFFF;
}
.phase-card.done {
  border-color: #4CAF50;
  background: #F5FFF5;
}
.phase-card.phase-2 {
  border-color: #D4C5A0;
  background: #FFFAF2;
}
.phase-number {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-weight: 800;
  font-size: 0.85rem;
  color: #fff;
}
.phase-1 .phase-number {
  background: #4CAF50;
}
.phase-2 .phase-number {
  background: #8B6914;
}
.phase-text strong {
  display: block;
  font-size: 1.05rem;
  color: #2C2416;
  margin-bottom: 6px;
}
.phase-text p {
  margin: 0;
  font-size: 0.9rem;
  color: #5A4B3A;
  line-height: 1.6;
}

/* Result Reading Analysis */
.result-reading-analysis {
  background: #FFFDF8;
  border: 1.5px solid #E8DCC8;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
}

.result-reading-analysis h3 {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: #2C2416;
  margin-bottom: 16px;
}

.reading-stat-row {
  display: flex;
  gap: 12px;
  margin-bottom: 16px;
}

.reading-stat {
  flex: 1;
  background: #FFFFFF;
  border: 1px solid #E8DCC8;
  border-radius: 8px;
  padding: 12px 8px;
  text-align: center;
}

.reading-stat-label {
  display: block;
  font-size: 0.6875rem;
  color: #7A6B55;
  margin-bottom: 4px;
}

.reading-stat-value {
  display: block;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #2C2416;
}

.reading-level-badge {
  display: inline-block;
  padding: 4px 14px;
  border-radius: 20px;
  font-size: 0.8125rem;
  font-weight: 700;
  margin-bottom: 12px;
}

.reading-매우부족 { background: #FEE2E2; color: #991B1B; }
.reading-부족 { background: #FEF3C7; color: #92400E; }
.reading-보통 { background: #DBEAFE; color: #1E40AF; }
.reading-우수 { background: #D1FAE5; color: #065F46; }

.reading-advice {
  font-size: 0.8125rem;
  color: #5A4D3A;
  line-height: 1.7;
  margin: 0;
}

.reading-advice.sub {
  margin-top: 8px;
  color: #7A6B55;
  font-size: 0.75rem;
}

/* Result Writing Habit Analysis */
.result-writing-habit {
  background: #F0EDE4;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 16px;
}

.result-writing-habit h3 {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: #2C2416;
  margin-bottom: 8px;
}

.habit-standard {
  font-size: 0.75rem;
  color: #7A6B55;
  margin-bottom: 12px;
  text-align: center;
}

.habit-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.habit-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 8px;
  background: #FFFFFF;
  border: 1px solid #E0D5C5;
}

.habit-item.met {
  border-color: #2ECC71;
  background: #F0FFF5;
}

.habit-item.not-met {
  border-color: #E74C3C;
  background: #FFF5F5;
}

.habit-check {
  font-size: 1.2rem;
  flex-shrink: 0;
}

.habit-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.habit-label {
  font-weight: 700;
  font-size: 0.8125rem;
  color: #2C2416;
}

.habit-value {
  font-size: 0.875rem;
  color: #5A4D3A;
  font-weight: 600;
}

.habit-std {
  font-size: 0.7rem;
  color: #999;
}

.habit-advice {
  font-size: 0.8125rem;
  color: #C0392B;
  line-height: 1.6;
  margin: 0;
  padding: 8px 12px;
  border-radius: 8px;
  background: #FFF5F5;
}

.habit-advice.good {
  color: #27AE60;
  background: #F0FFF5;
}

/* Result Genre Analysis */
.result-genre-analysis {
  background: #F0EDE4;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 16px;
}

.result-genre-analysis h3 {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: #2C2416;
  margin-bottom: 12px;
}

.genre-ratio-bar {
  display: flex;
  height: 20px;
  border-radius: 10px;
  overflow: hidden;
  background: #E0D5C5;
  margin-bottom: 8px;
}

.genre-lit-fill {
  background: linear-gradient(90deg, #8B6914, #A37B1A);
  transition: width 0.5s;
}

.genre-mixed-fill {
  background: #C4A96A;
  transition: width 0.5s;
}

.genre-genre-fill {
  background: linear-gradient(90deg, #7B68EE, #9370DB);
  transition: width 0.5s;
}

.genre-legend {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-bottom: 10px;
}

.legend-item {
  font-size: 0.75rem;
  font-weight: 600;
}

.legend-item::before {
  content: '';
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 3px;
  margin-right: 4px;
  vertical-align: middle;
}

.legend-lit::before { background: #8B6914; }
.legend-genre::before { background: #7B68EE; }

.genre-advice {
  font-size: 0.8125rem;
  color: #5A4D3A;
  line-height: 1.7;
  margin: 0;
}

.genre-advice.sub {
  margin-top: 6px;
  color: #7A6B55;
  font-size: 0.75rem;
}

/* Result Class Recommendation */
.result-class-rec {
  background: #F0EDE4;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 16px;
  text-align: center;
}

.result-class-rec h3 {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: #2C2416;
  margin-bottom: 12px;
}

.rec-class-badge {
  display: inline-block;
  padding: 8px 20px;
  border-radius: 24px;
  background: linear-gradient(135deg, #8B6914 0%, #6B4F0E 100%);
  color: #FFFFFF;
  font-weight: 700;
  font-size: 1rem;
  margin-bottom: 12px;
}

.result-class-rec p {
  font-size: 0.8125rem;
  color: #5A4D3A;
  line-height: 1.7;
  margin: 0;
}

/* Result Aptitude Analysis */
.result-aptitude {
  background: #FFFDF8;
  border: 1.5px solid #E8DCC8;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 16px;
}

.result-aptitude h3 {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: #2C2416;
  margin-bottom: 16px;
}

.apt-bars { margin-bottom: 16px; }

.apt-bar-item {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.apt-label {
  flex: 0 0 70px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #5A4D3A;
  text-align: right;
}

.apt-bar-track {
  flex: 1;
  height: 14px;
  background: #F0EDE4;
  border-radius: 7px;
  overflow: hidden;
}

.apt-bar-fill {
  height: 100%;
  border-radius: 7px;
  transition: width 0.6s ease;
}

.apt-lit { background: linear-gradient(90deg, #8B6914, #B8860B); }
.apt-drama { background: linear-gradient(90deg, #6B4F9E, #9B7FCC); }
.apt-film { background: linear-gradient(90deg, #2563EB, #60A5FA); }

.apt-pct {
  flex: 0 0 35px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #5A4D3A;
}

.apt-result { text-align: center; }

.apt-primary-badge {
  display: inline-block;
  padding: 6px 18px;
  border-radius: 20px;
  background: #2C2416;
  color: #FFFFFF;
  font-weight: 700;
  font-size: 0.875rem;
  margin-bottom: 10px;
}

.apt-result p {
  font-size: 0.8125rem;
  color: #5A4D3A;
  line-height: 1.7;
  margin: 0;
}

/* Department Comparison Box */
.dept-compare-box {
  margin-top: 18px;
  padding: 18px;
  background: #FFF8EE;
  border: 1.5px solid #E8D4B0;
  border-radius: 12px;
}
.dept-compare-box h4 {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #8B6914;
  margin-bottom: 14px;
  text-align: center;
}
.dept-compare-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
  margin-bottom: 14px;
}
.dept-compare-table th {
  background: #F5EBD6;
  color: #5A4D3A;
  font-weight: 700;
  padding: 8px 6px;
  text-align: center;
  border-bottom: 2px solid #D4C4A0;
  font-size: 0.75rem;
}
.dept-compare-table td {
  padding: 7px 6px;
  border-bottom: 1px solid #EDE4D2;
  vertical-align: top;
  line-height: 1.5;
  color: #3A3226;
}
.dept-compare-table .compare-cat {
  font-weight: 700;
  color: #8B6914;
  white-space: nowrap;
  width: 80px;
  font-size: 0.75rem;
}
.dept-compare-note {
  font-size: 0.8125rem;
  color: #5A4D3A;
  line-height: 1.7;
  margin: 0;
  padding: 10px 0 0;
  border-top: 1px dashed #D4C4A0;
}

@media (max-width: 600px) {
  .dept-compare-table { font-size: 0.7rem; }
  .dept-compare-table .compare-cat { width: 60px; font-size: 0.7rem; }
  .dept-compare-box { padding: 12px; }
}

/* Result Weak Areas */
.result-weak-areas {
  background: #FFFDF8;
  border: 1.5px solid #E8DCC8;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 16px;
}

.result-weak-areas h3 {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: #2C2416;
  margin-bottom: 14px;
}

.weak-item {
  display: flex;
  gap: 10px;
  align-items: baseline;
  padding: 8px 0;
  border-bottom: 1px solid #F0EDE4;
}

.weak-item:last-child { border-bottom: none; }

.weak-label {
  flex-shrink: 0;
  display: inline-block;
  padding: 2px 10px;
  border-radius: 12px;
  background: #FEF3C7;
  color: #92400E;
  font-size: 0.75rem;
  font-weight: 600;
}

.weak-tip {
  font-size: 0.8125rem;
  color: #5A4D3A;
  line-height: 1.5;
}

/* ── AI Evaluation Card ── */
.result-ai-eval {
  background: linear-gradient(135deg, #f0f4ff 0%, #e8f0fe 100%);
  border: 2px solid #4A7AE8;
  border-radius: 12px;
  padding: 20px;
  margin-top: 16px;
}
.result-ai-eval h3 {
  color: #2C5CC5;
  font-size: 1.1rem;
  margin-bottom: 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid #c5d6f5;
}

/* Loading */
.ai-eval-loading {
  text-align: center;
  padding: 30px 0;
}
.ai-spinner {
  width: 40px;
  height: 40px;
  border: 4px solid #c5d6f5;
  border-top-color: #4A7AE8;
  border-radius: 50%;
  margin: 0 auto 16px;
  animation: aiSpin 0.8s linear infinite;
}
@keyframes aiSpin {
  to { transform: rotate(360deg); }
}
.ai-eval-loading p {
  color: #5A6B8A;
  font-size: 0.875rem;
}

/* Summary */
.ai-eval-summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 20px;
}
.ai-total-score {
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.ai-total-number {
  font-size: 2.5rem;
  font-weight: 800;
  color: #2C5CC5;
}
.ai-total-label {
  font-size: 1rem;
  color: #7A8BA8;
}
.ai-level-badge {
  padding: 4px 14px;
  border-radius: 20px;
  font-size: 0.875rem;
  font-weight: 700;
}
.ai-level-beginner { background: #e8e8e8; color: #666; }
.ai-level-foundation { background: #d4edda; color: #155724; }
.ai-level-intermediate { background: #cce5ff; color: #004085; }
.ai-level-advanced { background: #fff3cd; color: #856404; }

/* Score Items */
.ai-scores-grid {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 20px;
}
.ai-score-item {
  background: #fff;
  border-radius: 8px;
  padding: 12px;
}
.ai-score-header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 6px;
}
.ai-score-label {
  font-weight: 700;
  font-size: 0.875rem;
  color: #333;
}
.ai-score-value {
  font-weight: 700;
  font-size: 0.875rem;
  color: #4A7AE8;
}
.ai-score-bar {
  height: 8px;
  background: #e0e8f5;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 6px;
}
.ai-score-fill {
  height: 100%;
  background: linear-gradient(90deg, #4A7AE8, #6C9AFF);
  border-radius: 4px;
  transition: width 0.6s ease;
}
.ai-score-comment {
  font-size: 0.8125rem;
  color: #5A6B8A;
  line-height: 1.5;
  margin: 0;
}

/* Sections */
.ai-overall-comment,
.ai-strengths,
.ai-improvements,
.ai-reading {
  background: #fff;
  border-radius: 8px;
  padding: 14px;
  margin-bottom: 12px;
}
.ai-overall-comment h4,
.ai-strengths h4,
.ai-improvements h4,
.ai-reading h4 {
  font-size: 0.9375rem;
  color: #2C5CC5;
  margin-bottom: 8px;
}
.ai-overall-comment p {
  font-size: 0.875rem;
  color: #444;
  line-height: 1.7;
}
.ai-strengths ul,
.ai-improvements ul,
.ai-reading ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.ai-strengths li,
.ai-improvements li,
.ai-reading li {
  font-size: 0.875rem;
  color: #444;
  padding: 4px 0;
  line-height: 1.5;
}

/* Error & Raw */
.ai-eval-error {
  text-align: center;
  padding: 20px;
  color: #856404;
  background: #fff3cd;
  border-radius: 8px;
}
.ai-eval-raw {
  background: #fff;
  border-radius: 8px;
  padding: 14px;
  font-size: 0.875rem;
  color: #444;
  line-height: 1.7;
  max-height: 400px;
  overflow-y: auto;
}

/* Disclaimer */
.ai-disclaimer {
  font-size: 0.75rem;
  color: #999;
  text-align: center;
  margin-top: 12px;
}

/* Essay Evaluation Card */
.result-essay-eval {
  background: #FAFDF8;
  border: 1.5px solid #C8D8B8;
  border-radius: 14px;
  padding: 20px;
  margin-top: 16px;
}
.essay-eval-summary {
  text-align: center;
  margin-bottom: 16px;
}
.essay-eval-total {
  display: inline-block;
  font-size: 1.125rem;
  font-weight: 700;
  color: #4A7C28;
  background: #EEF5E6;
  padding: 6px 18px;
  border-radius: 20px;
}
.essay-eval-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.essay-eval-item {
  padding: 12px;
  background: #FFFFFF;
  border: 1px solid #E0E8D4;
  border-radius: 10px;
}
.essay-eval-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}
.essay-eval-label {
  font-weight: 700;
  font-size: 0.8125rem;
  color: #3A5A1E;
}
.essay-eval-score {
  font-weight: 700;
  font-size: 0.875rem;
  color: #4A7C28;
}
.essay-eval-comment {
  font-size: 0.8rem;
  color: #5A6B4A;
  line-height: 1.6;
  margin-top: 6px;
}
.essay-eval-insight {
  margin-top: 14px;
  padding: 14px;
  background: #F5FAF0;
  border-radius: 10px;
  border: 1px solid #D4E4C4;
}
.essay-eval-insight h4 {
  font-size: 0.875rem;
  font-weight: 700;
  color: #3A5A1E;
  margin-bottom: 8px;
}
.essay-eval-insight p {
  font-size: 0.8125rem;
  color: #4A5A3A;
  line-height: 1.7;
}

/* Result Note */
.result-note {
  font-size: 0.8125rem;
  color: #7A6B55;
  text-align: center;
  line-height: 1.6;
  padding: 8px 0 20px;
}


/* ============================================================
   9. WIZARD NAVIGATION
   ============================================================ */

.wizard-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 24px;
  background: rgba(255,255,255,0.97);
  border-top: 2px solid #D4C4A0;
  box-shadow: 0 -4px 20px rgba(44,36,22,0.12);
  backdrop-filter: blur(8px);
}

.btn-prev,
.btn-next {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 32px;
  font-size: 1.0625rem;
  font-weight: 700;
  border-radius: 12px;
  border: none;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, transform 0.15s, box-shadow 0.2s;
  min-width: 120px;
}

.btn-prev {
  color: #5A4D3A;
  background: #F0E6D4;
  border: 2px solid #D4C4A0;
}

.btn-prev:hover {
  background: #E5D8C0;
  color: #2C2416;
  border-color: #B8A88A;
}

.btn-prev:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.btn-prev svg {
  flex-shrink: 0;
}

.btn-next {
  color: #FFFFFF;
  background: linear-gradient(135deg, #A07A1A 0%, #8B6914 50%, #6B4F0E 100%);
  box-shadow: 0 4px 16px rgba(139,105,20,0.35);
  margin-left: auto;
  font-size: 1.125rem;
  padding: 16px 40px;
  letter-spacing: 0.5px;
}

.btn-next:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(139,105,20,0.4);
  background: linear-gradient(135deg, #B8901E 0%, #A07A1A 50%, #8B6914 100%);
}

.btn-next:active {
  transform: translateY(0);
}

.btn-next:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.btn-next svg {
  flex-shrink: 0;
}

/* Pulse animation to draw attention to next button */
@keyframes btn-next-pulse {
  0%, 100% { box-shadow: 0 4px 16px rgba(139,105,20,0.35); }
  50% { box-shadow: 0 4px 24px rgba(139,105,20,0.6), 0 0 0 4px rgba(139,105,20,0.15); }
}

.btn-next {
  animation: btn-next-pulse 2.5s ease-in-out infinite;
}

.btn-next:hover {
  animation: none;
}

/* Nav label hint */
.wizard-nav::before {
  content: '';
  display: none;
}

/* Hide nav on result step */
.wizard-nav.hidden {
  display: none;
}


/* ============================================================
   10. VALIDATION STATES
   ============================================================ */

.form-input.error,
.form-select.error,
.form-textarea.error {
  border-color: #A04040;
  box-shadow: 0 0 0 3px rgba(160,64,64,0.10);
}

.form-input.success,
.form-select.success,
.form-textarea.success {
  border-color: #4A7C59;
}

.error-message {
  font-size: 0.8125rem;
  color: #A04040;
  margin-top: 6px;
}


/* ============================================================
   11. UTILITY & ANIMATION
   ============================================================ */

/* Fade in */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Slide up */
@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* For result bars animation */
@keyframes growBar {
  from { width: 0; }
}

/* Loading spinner (if needed) */
.spinner {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 2.5px solid rgba(139,105,20,0.2);
  border-top-color: #8B6914;
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* Screen reader only */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}


/* ============================================================
   LANDING INSTRUCTOR SECTION
   ============================================================ */

.landing-instructor {
  display: flex;
  align-items: center;
  gap: 20px;
  background: rgba(255,255,255,0.7);
  border: 1px solid #E8DCC8;
  border-radius: 14px;
  padding: 20px;
  margin-bottom: 28px;
  box-shadow: 0 2px 12px rgba(44,36,22,0.04);
}

.instructor-img {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  object-fit: cover;
  object-position: top;
  border: 2.5px solid #8B6914;
  box-shadow: 0 4px 16px rgba(139,105,20,0.15);
  flex-shrink: 0;
}

.instructor-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.instructor-info strong {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: #2C2416;
}

.instructor-info span {
  font-size: 0.8125rem;
  color: #7A6B55;
  line-height: 1.5;
}

@media (max-width: 480px) {
  .landing-instructor {
    gap: 14px;
    padding: 16px;
  }
  .instructor-img {
    width: 70px;
    height: 70px;
  }
  .instructor-info strong {
    font-size: 1rem;
  }
  .instructor-info span {
    font-size: 0.75rem;
  }
}


/* ============================================================
   CONSENT BOX
   ============================================================ */

.consent-group {
  margin-top: 8px;
}

/* --- Parent Section --- */
.parent-info-banner {
  background: linear-gradient(135deg, #F5EDE0, #FAF6EE);
  border: 2px solid #D4C5A0;
  border-radius: 14px;
  padding: 24px;
  margin-bottom: 24px;
  text-align: center;
}
.parent-info-banner h3 {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: #8B6914;
  margin-bottom: 8px;
}
.parent-info-banner p {
  font-size: 0.875rem;
  color: #5A4D3A;
  line-height: 1.7;
}

.info-box {
  background: #FFFDF7;
  border: 1.5px solid #E8DCC8;
  border-left: 4px solid #8B6914;
  border-radius: 10px;
  padding: 20px;
  font-size: 0.875rem;
  color: #3A3020;
  line-height: 1.8;
}
.info-box p { margin-bottom: 10px; }
.info-box ul {
  padding-left: 18px;
  margin-bottom: 6px;
}
.info-box ul li {
  margin-bottom: 4px;
}
.info-box em { font-style: normal; color: #8B6914; font-weight: 600; }

.academy-intro-box {
  background: linear-gradient(135deg, #FFFDF7, #FAF6EE);
  border: 2px solid #D4C5A0;
  border-radius: 14px;
  padding: 24px;
  margin-top: 8px;
}
.academy-intro-box h4 {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: #8B6914;
  margin-bottom: 14px;
}
.academy-intro-box .intro-item {
  display: flex;
  gap: 12px;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid #E8DCC8;
}
.academy-intro-box .intro-item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.academy-intro-box .intro-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #F5EDE0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  flex-shrink: 0;
}
.academy-intro-box .intro-content h5 {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #2C2416;
  margin-bottom: 2px;
}
.academy-intro-box .intro-content p {
  font-size: 0.8125rem;
  color: #5A4D3A;
  line-height: 1.6;
}

/* --- Exam Time Remaining Box --- */
.exam-time-box {
  background: linear-gradient(135deg, #FFFDF7, #FAF6EE);
  border: 2px solid #D4C5A0;
  border-radius: 12px;
  padding: 20px;
  margin-top: 12px;
  text-align: center;
}
.exam-time-box .time-label {
  font-size: 0.875rem;
  color: #5A4D3A;
  margin-bottom: 8px;
}
.exam-time-box .time-value {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1.5rem;
  font-weight: 700;
  color: #8B6914;
  margin-bottom: 6px;
}
.exam-time-box .time-detail {
  font-size: 0.8125rem;
  color: #7A6B50;
  line-height: 1.6;
}
.exam-time-box .time-bar {
  height: 8px;
  background: #E8DCC8;
  border-radius: 4px;
  margin-top: 12px;
  overflow: hidden;
}
.exam-time-box .time-bar-fill {
  height: 100%;
  border-radius: 4px;
  transition: width 0.5s ease;
}
.exam-time-box .time-bar-fill.urgent { background: #D32F2F; }
.exam-time-box .time-bar-fill.warning { background: #F57C00; }
.exam-time-box .time-bar-fill.normal { background: #388E3C; }
.exam-time-box .time-bar-fill.plenty { background: #1976D2; }

/* D-day 기간별 메시지 */
.dday-msg {
  font-weight: 600;
  margin-top: 12px;
  padding: 14px 16px;
  border-radius: 10px;
  line-height: 1.7;
  font-size: 0.92rem;
}
.dday-msg.dday-critical {
  color: #B71C1C;
  background: #FFEBEE;
  border-left: 4px solid #D32F2F;
}
.dday-msg.dday-late {
  color: #BF360C;
  background: #FFF3E0;
  border-left: 4px solid #F57C00;
}
.dday-msg.dday-tight {
  color: #E65100;
  background: #FFF8E1;
  border-left: 4px solid #FFA000;
}
.dday-msg.dday-good {
  color: #1B5E20;
  background: #E8F5E9;
  border-left: 4px solid #388E3C;
}
.dday-msg.dday-plenty {
  color: #0D47A1;
  background: #E3F2FD;
  border-left: 4px solid #1976D2;
}

.consent-box {
  background: #FFFFFF;
  border: 1.5px solid #E8DCC8;
  border-radius: 14px;
  padding: 24px;
  box-shadow: 0 2px 12px rgba(44,36,22,0.04);
}

.consent-box h4 {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1rem;
  font-weight: 700;
  color: #2C2416;
  margin-bottom: 12px;
}

.consent-text {
  background: #FAF6EE;
  border-radius: 10px;
  padding: 16px 18px;
  margin-bottom: 16px;
  font-size: 0.8125rem;
  color: #5A4D3A;
  line-height: 1.8;
}

.consent-text p {
  margin-bottom: 10px;
}

.consent-text p:last-child {
  margin-bottom: 0;
}

.consent-text ul {
  list-style: none;
  padding: 0;
  margin: 8px 0;
}

.consent-text li {
  padding: 3px 0 3px 16px;
  position: relative;
}

.consent-text li::before {
  content: '·';
  position: absolute;
  left: 4px;
  font-weight: 700;
}

.consent-check {
  border: 1.5px solid #8B6914 !important;
  background: rgba(139,105,20,0.03) !important;
}

.consent-check input:checked + span {
  color: #8B6914;
  font-weight: 600;
}

.required-mark {
  color: #A04040;
  font-style: normal;
}


/* ============================================================
   NEW STEP COMPONENTS
   ============================================================ */

/* Scale Row (0-10 horizontal with labels) */
.scale-row {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.scale-label-left,
.scale-label-right {
  font-size: 0.75rem;
  color: #7A6B55;
  white-space: nowrap;
}

/* Scale Selector (0-10) */
.scale-selector {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.scale-item {
  flex: 0 0 auto;
}

.scale-item input[type="radio"] {
  display: none;
}

.scale-item span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1.5px solid #E8DCC8;
  border-radius: 10px;
  background: #FFFFFF;
  font-size: 0.9375rem;
  font-weight: 500;
  color: #5A4D3A;
  cursor: pointer;
  transition: all 0.2s;
}

.scale-item span:hover {
  border-color: #8B6914;
  background: rgba(139,105,20,0.04);
}

.scale-item input[type="radio"]:checked + span {
  background: linear-gradient(135deg, #8B6914 0%, #6B4F0E 100%);
  color: #FFFFFF;
  border-color: #8B6914;
  box-shadow: 0 2px 8px rgba(139,105,20,0.25);
}

/* Photo Placeholder */
.photo-placeholder {
  background: #F5EDE0;
  border: 2px dashed #D4C4A0;
  border-radius: 12px;
  padding: 40px 24px;
  text-align: center;
  margin-bottom: 16px;
}

.photo-placeholder p {
  font-family: 'Nanum Myeongjo', 'Batang', Georgia, serif;
  font-size: 1rem;
  color: #7A6B55;
  font-style: italic;
}

/* Photo Description Container */
.photo-desc-container {
  margin-bottom: 16px;
  text-align: center;
}

.photo-desc-img {
  width: 100%;
  max-width: 520px;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(44,36,22,0.12);
  margin: 0 auto 12px;
}

.photo-desc-fallback {
  background: #F5EDE0;
  border: 2px dashed #D4C4A0;
  border-radius: 12px;
  padding: 20px 24px;
  text-align: left;
  color: #5A4D3A;
  font-size: 0.9375rem;
  line-height: 1.7;
}

/* Content Consumption Grid */
.content-consumption-grid {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.consumption-item {
  background: #FFFFFF;
  border: 1.5px solid #E8DCC8;
  border-radius: 12px;
  padding: 16px 20px;
}

.consumption-label {
  display: block;
  font-size: 0.9375rem;
  font-weight: 600;
  color: #2C2416;
  margin-bottom: 10px;
}

.radio-list.compact {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

.radio-card.small {
  padding: 10px 8px;
  justify-content: center;
  text-align: center;
}

.radio-card.small input[type="radio"] {
  display: none;
}

.radio-card.small span {
  font-size: 0.8125rem;
  text-align: center;
  display: block;
}

/* Reference Box */
.reference-box {
  background: #FFFFFF;
  border: 1.5px solid #8B6914;
  border-radius: 12px;
  padding: 20px 24px;
  margin-bottom: 8px;
}

.reference-box p {
  font-size: 0.9375rem;
  color: #2C2416;
  margin-bottom: 10px;
}

.reference-box a {
  color: #8B6914;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(139,105,20,0.3);
  transition: border-color 0.2s;
}

.reference-box a:hover {
  border-bottom-color: #8B6914;
}

/* Video Embed */
.video-embed {
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 8px;
  box-shadow: 0 2px 12px rgba(44,36,22,0.08);
}

.video-embed iframe {
  display: block;
}

@media (max-width: 480px) {
  .scale-item span {
    width: 38px;
    height: 38px;
    font-size: 0.8125rem;
    border-radius: 8px;
  }

  .scale-selector {
    gap: 5px;
  }

  .photo-placeholder {
    padding: 30px 16px;
  }

  .reference-box {
    padding: 16px 18px;
  }
}


/* ============================================================
   12. RESPONSIVE - TABLET
   ============================================================ */

@media (max-width: 768px) {
  /* Landing */
  .landing-title {
    font-size: 2.125rem;
  }

  .landing-desc {
    font-size: 0.875rem;
  }

  .landing-rules {
    padding: 20px 22px;
  }

  /* Wizard */
  .wizard-body {
    padding: 24px 20px 120px;
  }

  .step-title {
    font-size: 1.375rem;
  }

  /* Form */
  .form-row {
    grid-template-columns: 1fr;
    gap: 0;
  }

  /* Checkbox Grid */
  .checkbox-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .checkbox-grid.compact {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Content consumption on tablet */
  .radio-list.compact {
    grid-template-columns: repeat(4, 1fr);
  }

  /* Writing choice stays horizontal on tablet */
  .writing-choice {
    flex-direction: row;
  }

  /* Writing textarea */
  .writing-textarea {
    min-height: 350px;
  }

  /* Result */
  .level-badge {
    width: 100px;
    height: 100px;
    font-size: 1.5rem;
  }

  .result-score .score-value {
    font-size: 2.5rem;
  }
}


/* ============================================================
   13. RESPONSIVE - MOBILE
   ============================================================ */

@media (max-width: 480px) {
  html {
    font-size: 15px;
  }

  /* Landing */
  #landing {
    padding: 32px 16px;
  }

  .landing-badge {
    font-size: 0.75rem;
    padding: 5px 16px;
    margin-bottom: 24px;
  }

  .landing-title {
    font-size: 1.75rem;
    margin-bottom: 16px;
  }

  .landing-desc {
    font-size: 0.8125rem;
    margin-bottom: 28px;
  }

  .landing-rules {
    padding: 16px 18px;
    border-radius: 12px;
  }

  .rule-item {
    font-size: 0.875rem;
    gap: 12px;
    padding: 8px 0;
  }

  .rule-icon {
    width: 28px;
    height: 28px;
    font-size: 0.6875rem;
  }

  .btn-start {
    padding: 14px 28px;
    font-size: 1rem;
    border-radius: 10px;
  }

  /* Wizard Header */
  .wizard-top {
    padding: 12px 16px 8px;
  }

  .wizard-logo {
    font-size: 0.8125rem;
  }

  .timer {
    font-size: 0.8125rem;
    padding: 5px 10px;
  }

  .step-indicator {
    padding: 8px 16px 10px;
    font-size: 0.75rem;
  }

  /* Wizard Body */
  .wizard-body {
    padding: 20px 16px 110px;
  }

  .step-title {
    font-size: 1.25rem;
  }

  .step-desc {
    font-size: 0.875rem;
    margin-bottom: 24px;
  }

  /* Form elements - 16px min to prevent iOS zoom */
  .form-input,
  .form-select,
  .form-textarea {
    font-size: 1rem;
    padding: 11px 14px;
    border-radius: 8px;
  }

  .form-select {
    padding-right: 36px;
  }

  .form-label {
    font-size: 0.875rem;
  }

  /* Checkbox Grid - 2 columns on mobile, 1 for compact */
  .checkbox-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }

  .checkbox-grid.compact {
    grid-template-columns: 1fr;
  }

  .check-card {
    padding: 12px 14px;
    border-radius: 8px;
  }

  .check-card span {
    font-size: 0.8125rem;
  }

  .check-card small {
    font-size: 0.6875rem;
  }

  /* Radio */
  .radio-card {
    padding: 12px 14px;
    border-radius: 8px;
  }

  .radio-card span {
    font-size: 0.875rem;
  }

  /* Literary Passage */
  .literary-passage {
    padding: 16px 18px;
    font-size: 0.9375rem;
    line-height: 1.8;
  }

  .literary-passage.poem {
    padding: 22px 18px;
    line-height: 2;
  }

  /* Passage Option */
  .passage-option p {
    font-size: 0.8125rem;
  }

  .passage-choices .radio-card {
    padding: 14px 16px;
  }

  /* Order Items */
  .order-item {
    padding: 10px 14px;
    gap: 12px;
  }

  .order-select {
    width: 56px;
    min-width: 56px;
    padding: 8px 24px 8px 8px;
    font-size: 0.875rem;
  }

  .order-item > span {
    font-size: 0.875rem;
  }

  /* Content consumption on mobile */
  .radio-list.compact {
    grid-template-columns: repeat(2, 1fr);
  }

  .consumption-item {
    padding: 14px 16px;
  }

  .consumption-label {
    font-size: 0.875rem;
  }

  .radio-card.small {
    padding: 10px 6px;
  }

  .radio-card.small span {
    font-size: 0.75rem;
  }

  /* Writing */
  .writing-choice {
    flex-direction: column;
  }

  .writing-type-card {
    padding: 16px 20px;
  }

  .writing-type-card strong {
    font-size: 1rem;
  }

  .prompt-box {
    padding: 18px 20px;
  }

  .prompt-box p {
    font-size: 1rem;
  }

  .writing-textarea {
    min-height: 300px;
    padding: 18px 16px;
    font-size: 1rem;
    line-height: 1.9;
  }

  /* Navigation */
  .wizard-nav {
    padding: 14px 16px;
    gap: 10px;
  }

  .btn-prev,
  .btn-next {
    padding: 14px 20px;
    font-size: 1rem;
    border-radius: 10px;
    min-width: 100px;
  }

  .btn-next {
    padding: 14px 28px;
    font-size: 1.0625rem;
  }

  /* Result */
  .result-hero {
    padding: 32px 16px 24px;
  }

  .level-badge {
    width: 90px;
    height: 90px;
    font-size: 1.375rem;
  }

  .result-score .score-value {
    font-size: 2.25rem;
  }

  .result-chart,
  .result-recommendation,
  .result-feedback,
  .result-cta {
    padding: 20px 18px;
    border-radius: 12px;
  }

  .result-chart h3,
  .result-recommendation h3,
  .result-feedback h3,
  .result-cta h3 {
    font-size: 1rem;
  }

  .result-feedback li {
    font-size: 0.875rem;
    padding-left: 20px;
  }

  .result-feedback li::before {
    width: 6px;
    height: 6px;
    top: 15px;
  }

  .result-cta p {
    font-size: 0.875rem;
  }

  .result-note {
    font-size: 0.75rem;
  }
}


/* ============================================================
   14. FOCUS & ACCESSIBILITY
   ============================================================ */

/* Keyboard focus ring */
:focus-visible {
  outline: 2px solid #8B6914;
  outline-offset: 2px;
}

/* Remove outline for mouse clicks */
:focus:not(:focus-visible) {
  outline: none;
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}


/* ============================================================
   15. SCROLLBAR STYLING
   ============================================================ */

::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #F5EDE0;
}

::-webkit-scrollbar-thumb {
  background: #D4C4A0;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #B8A88A;
}

/* Textarea scrollbar */
.form-textarea::-webkit-scrollbar {
  width: 6px;
}

.form-textarea::-webkit-scrollbar-thumb {
  background: #E8DCC8;
  border-radius: 3px;
}

/* ── Combined Score Card ── */
.result-combined {
  background: linear-gradient(135deg, #F5F0E8 0%, #EDE7D9 100%);
  border: 2px solid #8B7355;
  border-radius: 12px;
  padding: 24px;
  margin-bottom: 20px;
}
.result-combined h3 {
  color: #5C4A2F;
  font-size: 1.3rem;
  margin-bottom: 16px;
  text-align: center;
}
.combined-score-display {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 20px;
}
.combined-total {
  text-align: center;
}
.combined-number {
  font-size: 3rem;
  font-weight: 700;
  color: #5C4A2F;
}
.combined-max {
  font-size: 1.2rem;
  color: #8B7355;
  margin-left: 4px;
}
.combined-breakdown {
  background: rgba(255,255,255,0.6);
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 12px;
}
.breakdown-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(139,115,85,0.15);
}
.breakdown-item:last-child {
  border-bottom: none;
}
.breakdown-label {
  font-size: 0.95rem;
  color: #5C4A2F;
}
.breakdown-score {
  font-weight: 600;
  color: #8B7355;
  font-size: 1rem;
}
.combined-note {
  text-align: center;
  font-size: 0.85rem;
  color: #999;
  margin-top: 8px;
}

/* ── Plagiarism Warning ── */
.plagiarism-warning {
  background: #FFF3F3;
  border: 2px solid #E74C3C;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 16px;
}
.plagiarism-warning h4 {
  color: #E74C3C;
  margin-bottom: 8px;
  font-size: 1.1rem;
}
.plagiarism-warning p {
  color: #333;
  font-size: 0.95rem;
  line-height: 1.5;
}
.plagiarism-alert {
  font-weight: 700;
  color: #E74C3C;
  margin-top: 8px;
}

/* ── University Grade Compare ── */
.univ-grade-row {
  padding: 12px 16px;
  margin: 8px 0;
  border-radius: 8px;
  border-left: 4px solid #ccc;
}
.univ-grade-row strong { font-size: 1rem; }
.univ-grade-row p { margin: 4px 0 0; font-size: 0.85rem; line-height: 1.5; }
.univ-type-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.7rem;
  font-weight: 600;
  margin-left: 6px;
  background: #E8DCC8;
  color: #5C4A2F;
}
.grade-ok { border-left-color: #4CAF50; background: #F1F8E9; }
.grade-warn { border-left-color: #FF9800; background: #FFF8E1; }
.grade-danger { border-left-color: #E74C3C; background: #FDEDEC; }
.grade-info { border-left-color: #5C4A2F; background: #FAF6F0; }
.my-grade { font-size: 0.95rem; margin: 8px 0 12px; padding: 8px 12px; background: #F5EDE0; border-radius: 6px; display: inline-block; }
.section-desc { font-size: 0.85rem; color: #7A6B55; margin-bottom: 12px; }

/* ── AI Notice ── */
.result-ai-notice {
  background: #FFF8E1;
  border: 1px solid #FFE082;
  border-radius: 10px;
  padding: 16px 20px;
  margin: 20px 0;
  text-align: center;
  font-size: 0.9rem;
  color: #5C4A2F;
  line-height: 1.6;
}

/* ── SMS Button ── */
.btn-sms {
  background: #5C4A2F;
  color: #fff;
  border: none;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.3s;
}
.btn-sms:hover {
  background: #8B7355;
}
.btn-sms:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
