:root {
  --bg: #f6efe4;
  --panel: #fffdf8;
  --panel-soft: #f7fbfd;
  --surface: #fffdf8;
  --surface-muted: #f7fbfd;
  --text: #2b2723;
  --muted: #425058;
  --text-muted: #7a8190;
  --accent: #1a79a5;
  --accent-strong: #155f82;
  --accent-soft: #d8effb;
  --line: rgba(117, 107, 97, 0.16);
  --line-strong: rgba(117, 107, 97, 0.28);
  --warning-bg: #fff8e6;
  --warning-border: #e8d8a8;
  --shadow: 0 18px 36px rgba(53, 57, 62, 0.12);
  --radius-xl: 24px;
  --radius-lg: 18px;
  --radius-md: 14px;
  --touch: 44px;
}

* { box-sizing: border-box; }

html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

body {
  color: var(--text) !important;
  background: linear-gradient(180deg, #fbfaf7 0%, var(--bg) 100%) !important;
  font-family: "Malgun Gothic", "Apple SD Gothic Neo", sans-serif !important;
}

.page,
body > main {
  width: min(1180px, calc(100vw - 32px)) !important;
  margin: 24px auto 40px !important;
  padding: 0 0 36px !important;
}

.global-home-link {
  display: none !important;
}

.top-nav,
.worksheet-top-nav {
  width: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 12px !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--muted) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  box-shadow: none !important;
}

.back-link,
.top-link,
.worksheet-top-nav__back {
  display: inline-flex !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  gap: 8px !important;
  min-height: 46px !important;
  padding: 10px 14px !important;
  border: 2px solid rgba(0, 0, 0, 0.10) !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.92) !important;
  box-shadow: var(--shadow) !important;
  color: var(--text) !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
}

.back-link:hover,
.top-link:hover,
.worksheet-top-nav__back:hover {
  color: var(--text) !important;
  text-decoration: none !important;
  transform: translateY(-1px) !important;
}

.worksheet-top-nav__title {
  min-width: 0 !important;
  color: var(--muted) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.5 !important;
  text-align: right !important;
  word-break: keep-all !important;
}

.hero,
.worksheet-shell__intro {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 98px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 18px !important;
  padding: 22px !important;
  border: 0 !important;
  border-radius: 24px !important;
  background: linear-gradient(120deg, #d8effb 0%, #98d5ef 54%, #537fa5 100%) !important;
  box-shadow: var(--shadow) !important;
  color: var(--text) !important;
}

.hero {
  grid-template-columns: 98px minmax(0, 1fr) !important;
}

.hero-icon,
.worksheet-shell__intro-icon {
  display: grid !important;
  place-items: center !important;
  width: 98px !important;
  height: 98px !important;
  min-width: 98px !important;
  border: 4px solid rgba(255, 255, 255, 0.55) !important;
  border-radius: 28px !important;
  background: rgba(255, 248, 221, 0.92) !important;
  color: var(--text) !important;
  font-size: 46px !important;
  line-height: 1 !important;
  box-shadow: none !important;
}

.hero > div:not(.hero-icon):not(.brand-ribbon),
.hero-copy,
.worksheet-shell__intro-text {
  display: block !important;
  width: auto !important;
  max-width: 760px !important;
  min-width: 0 !important;
  padding-right: 0 !important;
}

.brand-ribbon,
.ui-badge,
.read-chip,
.memo-chip,
.code {
  width: fit-content !important;
  padding: 7px 11px !important;
  border: 1px solid #dde4ef !important;
  border-radius: 999px !important;
  background: var(--accent-soft) !important;
  color: #243b64 !important;
  box-shadow: none !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  white-space: nowrap !important;
}

h1,
.worksheet-shell__intro-text h1 {
  max-width: 760px !important;
  margin: 0 0 8px !important;
  color: var(--text) !important;
  font-size: clamp(1.7rem, 2.8vw, 2.6rem) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

h2,
h3 {
  color: var(--text) !important;
}

.hero p,
.hero-copy,
.muted,
.status,
.teacher-answer,
.instruction,
.feedback-box,
.option-card,
.plain-card,
.memo-box,
.note p,
.note li,
.card p,
.worksheet-shell__intro-text p {
  color: var(--muted) !important;
  max-width: 720px !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

.worksheet-hero-meta {
  display: grid !important;
  gap: 10px !important;
  max-width: 760px !important;
  margin-top: 14px !important;
}

.worksheet-parent-name {
  display: inline-flex !important;
  width: fit-content !important;
  max-width: 100% !important;
  padding: 7px 11px !important;
  border: 1px solid #dde4ef !important;
  border-radius: 999px !important;
  background: var(--accent-soft) !important;
  color: #243b64 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  white-space: normal !important;
}

.worksheet-activity-code {
  width: fit-content !important;
  padding: 6px 10px !important;
  border-radius: 999px !important;
  background: var(--surface-muted) !important;
  color: var(--text-muted) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

.worksheet-one-line {
  margin: 0 !important;
  color: #4e5665 !important;
  max-width: 720px !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

.worksheet-tags {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  max-width: 760px !important;
  margin-top: 2px !important;
}

.worksheet-tag {
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  min-width: 0 !important;
  padding: 6px 10px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #e9edf5 !important;
  color: #243b64 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  white-space: nowrap !important;
}

.panel,
.ui-card,
.control-card,
.board,
.teacher-card,
.child-card,
.option-card,
.plain-card,
.worksheet-shell__card,
.problem,
.note,
.card,
.answer,
.summary-strip,
.feedback-box,
.target-card,
.target-box,
.grid-shell,
.reference-card,
.choice-card,
.play-card,
.scene-board,
.compare-card,
.symbol-grid-card,
.symbol-target-card,
.overlap-board,
.option-panel,
.sequence-box,
.input-box,
.word-card {
  border: 1px solid var(--line) !important;
  border-radius: 24px !important;
  background: var(--surface) !important;
  box-shadow: var(--shadow) !important;
}

.panel,
.worksheet-shell__section {
  margin-top: 18px !important;
  margin-bottom: 0 !important;
  padding: 20px !important;
}

.worksheet-intro-card {
  margin-top: 16px !important;
  margin-bottom: 32px !important;
}

.worksheet-tool-card,
.worksheet-runner-card {
  padding: 24px !important;
  border-radius: 24px !important;
}

.worksheet-assist-card {
  padding: 20px !important;
  border-radius: 20px !important;
}

.worksheet-detail-info {
  margin-top: 0 !important;
  margin-bottom: 32px !important;
  border: 1px solid var(--line) !important;
  border-radius: 24px !important;
  background: var(--surface) !important;
  box-shadow: var(--shadow) !important;
}

.control-card,
.ui-input-block {
  padding: 14px !important;
  box-shadow: none !important;
}

.controls {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
  gap: 12px !important;
}

label {
  color: var(--muted) !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
}

select,
input,
textarea,
button,
.ui-button {
  min-height: var(--touch) !important;
  border: 1px solid var(--line) !important;
  border-radius: 999px !important;
  background: var(--surface) !important;
  color: var(--text) !important;
  font: inherit !important;
  font-size: 15px !important;
  box-shadow: none !important;
}

select,
input {
  height: 44px !important;
  padding: 0 14px !important;
}

textarea {
  border-radius: 18px !important;
  line-height: 1.7 !important;
}

select:focus,
input:focus,
textarea:focus,
button:focus-visible,
.ui-button:focus-visible {
  outline: 3px solid rgba(79, 124, 106, 0.18) !important;
  outline-offset: 2px !important;
  border-color: var(--accent) !important;
}

button,
.ui-button {
  min-height: 40px !important;
  height: auto !important;
  padding: 10px 16px !important;
  cursor: pointer !important;
  font-weight: 700 !important;
  transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease !important;
}

button.primary,
.ui-button.is-primary,
.primary {
  color: #fff !important;
  background: var(--accent) !important;
  border-color: var(--accent) !important;
}

button.primary:hover,
.ui-button.is-primary:hover,
.primary:hover {
  background: var(--accent-strong) !important;
  border-color: var(--accent-strong) !important;
}

button:not(.primary),
.ui-button.is-secondary {
  background: var(--surface) !important;
  border-color: var(--line) !important;
  color: var(--text) !important;
}

.actions,
.memory-actions,
.judge-actions,
.layer-order-actions,
.matrix-actions,
.interleave-actions,
.pattern-actions {
  display: flex !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  margin-top: 16px !important;
}

.status,
.instruction,
.tip-banner,
.option-card,
.plain-card,
.memo-box,
.feedback-box,
.worksheet-shell__teacher-toggle,
.pdf-summary-card {
  border: 1px solid var(--line) !important;
  border-radius: 18px !important;
  background: #f7fbfd !important;
  color: var(--muted) !important;
  box-shadow: none !important;
}

.tip-banner {
  border-color: var(--warning-border) !important;
  background: var(--warning-bg) !important;
  color: var(--text) !important;
}

.workspace,
.worksheet-shell__workspace {
  gap: 18px !important;
  align-items: start !important;
  margin-top: 0 !important;
}

.board {
  padding: 18px !important;
  border-radius: 22px !important;
  background: #fffefb !important;
}

.teacher-panel,
.worksheet-shell__teacher,
.teacher-card,
.answer-card {
  gap: 12px !important;
}

.guide-card {
  border: 1px solid var(--line) !important;
  border-radius: 24px !important;
  background: var(--surface) !important;
  box-shadow: var(--shadow) !important;
}

.guide-link,
.action {
  color: var(--accent) !important;
  font-weight: 700 !important;
}

.keyword {
  background: var(--accent-soft) !important;
  color: var(--accent) !important;
}

.is-selected {
  background: var(--accent-soft) !important;
  box-shadow: inset 0 0 0 2px rgba(79, 124, 106, 0.14) !important;
}

.is-correct,
.feedback-box.good,
.feedback-line.is-correct {
  background: #edf7f1 !important;
  border-color: rgba(79, 124, 106, 0.34) !important;
  color: #2f6b55 !important;
}

.is-wrong,
.feedback-box.warn,
.feedback-line.is-wrong {
  background: #fff4ef !important;
  border-color: rgba(170, 92, 62, 0.25) !important;
  color: #8f4b34 !important;
}

main:not(:has(.worksheet-safety-note))::after {
  content: "안전 안내\a\a이 워크시트는 의학적 진단이나 치료를 대체하지 않는 보조 자료입니다.\a아이의 수준과 반응에 맞게 보호자 또는 전문가의 판단 아래 활용해 주세요.\a어려움이 크거나 일상생활과 학습에 지속적인 어려움이 있다면 전문 상담 및 평가를 함께 권합니다.";
  display: block;
  margin-top: 18px;
  padding: 28px 32px;
  border: 1px solid var(--warning-border);
  border-radius: 24px;
  background: var(--warning-bg);
  color: var(--muted);
  white-space: pre-line;
  line-height: 1.75;
  font-size: 16px;
  box-shadow: none;
}

main:has(.worksheet-safety-note)::after {
  display: none !important;
}

.worksheet-safety-note {
  border: 1px solid var(--warning-border) !important;
  border-radius: 24px !important;
  background: var(--warning-bg) !important;
  box-shadow: none !important;
  margin-top: 0 !important;
  margin-bottom: 48px !important;
}

.worksheet-detail-info {
  padding: 24px !important;
}

.worksheet-detail-info h2 {
  margin: 26px 0 11px !important;
  color: var(--text) !important;
  font-size: 19px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
}

.worksheet-detail-info h2:first-child {
  margin-top: 0 !important;
  margin-bottom: 12px !important;
  font-size: 21px !important;
}

.worksheet-detail-info p,
.worksheet-detail-info li {
  margin-top: 0 !important;
  margin-bottom: 10px !important;
  color: var(--muted) !important;
  font-size: 15.5px !important;
  font-weight: 400 !important;
  line-height: 1.75 !important;
}

.worksheet-detail-info ul {
  margin: 8px 0 0 !important;
  padding-left: 20px !important;
}

.worksheet-detail-info li {
  margin-bottom: 7px !important;
}

.worksheet-detail-grid {
  gap: 10px !important;
  margin-top: 10px !important;
}

.worksheet-info-card {
  padding: 16px !important;
  border: 1px solid #dde4ef !important;
  border-radius: 14px !important;
  background: var(--surface) !important;
  box-shadow: none !important;
}

.worksheet-info-card strong {
  margin-bottom: 6px !important;
  color: #243b64 !important;
  font-size: 15.5px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

.worksheet-info-card p {
  margin-bottom: 0 !important;
  font-size: 14.5px !important;
  line-height: 1.7 !important;
}

.worksheet-safety-note {
  padding: 28px !important;
}

.worksheet-safety-note h2 {
  margin: 0 0 10px !important;
  color: var(--text) !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

.worksheet-safety-note p {
  margin: 0 0 8px !important;
  color: var(--muted) !important;
  font-size: 15.5px !important;
  font-weight: 400 !important;
  line-height: 1.75 !important;
}

.worksheet-safety-note p:last-child {
  margin-bottom: 0 !important;
}

@media (min-width: 940px) {
  .workspace {
    grid-template-columns: minmax(0, 1.18fr) minmax(280px, 0.92fr) !important;
  }
}

@media (max-width: 940px) {
  .workspace,
  .worksheet-shell__workspace,
  .symbol-judge-wrap,
  .overlap-wrap,
  .difference-wrap {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 720px) {
  .page,
  body > main {
    width: min(100% - 32px, 1180px) !important;
    margin-bottom: 36px !important;
    padding: 18px 0 32px !important;
  }

  .hero,
  .worksheet-shell__intro {
    grid-template-columns: 1fr !important;
    padding: 22px !important;
  }

  .hero-icon,
  .worksheet-shell__intro-icon {
    position: static !important;
    width: 64px !important;
    height: 64px !important;
    font-size: 30px !important;
    margin-bottom: 14px !important;
  }

  .hero > div:not(.hero-icon):not(.brand-ribbon),
  .hero-copy,
  .worksheet-shell__intro-text {
    max-width: none !important;
    padding-right: 0 !important;
  }

  .panel,
  .worksheet-shell__section,
  .board,
  .worksheet-detail-info,
  .worksheet-safety-note,
  main:not(:has(.worksheet-safety-note))::after {
    padding: 22px !important;
  }

  .actions,
  .memory-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .actions button,
  .memory-actions button {
    width: 100% !important;
  }
}

@media print {
  body {
    background: #fff !important;
  }

  .print-logo {
    display: none !important;
  }

  main::after,
  .global-home-link {
    display: none !important;
  }
}

@media print {
  .print-sheet:last-child,
  .print-sheet:last-of-type,
  #answerSheet,
  #printAnswerSheet {
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    break-after: auto !important;
    page-break-after: auto !important;
  }
}
