/* 학생 세특 분석실: 큰 원문·분류 라벨과 요소별 선택 상태를 위한 재정의 */
:root {
  --setuk-academic: #475569;
  --setuk-motive: #227456;
  --setuk-goal: #0b6678;
  --setuk-expect: #536e29;
  --setuk-result: #3c459b;
  --setuk-role: #6a4398;
  --setuk-contrib: #315fa1;
  --setuk-critical: #a52951;
  --setuk-growth: #8a5417;
}

.tag[data-key="academic"], button[data-element="academic"] { --element-color: var(--setuk-academic); }
.tag[data-key="motive"], button[data-element="motive"] { --element-color: var(--setuk-motive); }
.tag[data-key="goal"], button[data-element="goal"] { --element-color: var(--setuk-goal); }
.tag[data-key="expect"], button[data-element="expect"] { --element-color: var(--setuk-expect); }
.tag[data-key="result"], button[data-element="result"] { --element-color: var(--setuk-result); }
.tag[data-key="role"], button[data-element="role"] { --element-color: var(--setuk-role); }
.tag[data-key="contrib"], button[data-element="contrib"] { --element-color: var(--setuk-contrib); }
.tag[data-key="critical"], button[data-element="critical"] { --element-color: var(--setuk-critical); }
.tag[data-key="growth"], button[data-element="growth"] { --element-color: var(--setuk-growth); }

.tag[data-key], .sentence .tag[data-key] {
  display: inline-block;
  padding: 3px 8px;
  border: 1px solid var(--element-color, #475569);
  border-radius: 5px;
  background: var(--element-color, #475569);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.55;
  letter-spacing: -.02em;
  white-space: nowrap;
  text-shadow: none;
  vertical-align: middle;
}
.legend { gap: 8px; margin-bottom: 20px; }
.source-text {
  font-size: 18px;
  line-height: 2.4;
  letter-spacing: -.015em;
  color: #192b40;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.sentence {
  padding: 3px 0;
  border-radius: 4px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.sentence.marked {
  background: var(--tint, #edf2f8);
  border-bottom: 2px solid var(--accent, #64748b);
}
.sentence .sentence-labels {
  display: inline;
  margin: 0 0 0 5px;
  white-space: normal;
  vertical-align: baseline;
}
.sentence-labels .tag[data-key] { margin: 2px 4px 2px 0; }
.sentence:hover { outline: 2px dashed #6b8994; outline-offset: 3px; }
.sentence.focus-match {
  background: var(--tint, #edf4f7);
  border-bottom: 3px solid var(--accent, #287a73);
  box-shadow: 0 2px 0 color-mix(in srgb, var(--accent, #287a73) 15%, transparent);
}
.sentence.dim {
  opacity: 1;
  color: #647080;
  background: transparent;
  border-bottom-color: #d4dde3;
}
.sentence.dim .tag[data-key] { opacity: 1; color: #5d6b79; background: #f0f3f5; border-color: #c9d2da; }
.sentence.dim:hover, .sentence.dim:focus-visible { color: #1b2940; }
.manual-marker {
  display: inline-block;
  padding: 0 5px;
  border: 1px solid #9babad;
  border-radius: 4px;
  color: #475e61;
  background: #f0f5f4;
  font-size: 12px;
  line-height: 1.6;
  font-weight: 700;
  vertical-align: middle;
}

.element-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 14px;
  padding: 0;
}
.element-filters button[data-element] {
  --element-color: var(--element-color-fallback, #263e55);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 44px;
  padding: 9px 12px;
  border: 1.5px solid var(--element-color);
  border-radius: 8px;
  color: var(--element-color);
  background: #fff;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.4;
  white-space: nowrap;
}
.element-filters button[data-element="academic"] { --element-color: var(--setuk-academic); }
.element-filters button[data-element="motive"] { --element-color: var(--setuk-motive); }
.element-filters button[data-element="goal"] { --element-color: var(--setuk-goal); }
.element-filters button[data-element="expect"] { --element-color: var(--setuk-expect); }
.element-filters button[data-element="result"] { --element-color: var(--setuk-result); }
.element-filters button[data-element="role"] { --element-color: var(--setuk-role); }
.element-filters button[data-element="contrib"] { --element-color: var(--setuk-contrib); }
.element-filters button[data-element="critical"] { --element-color: var(--setuk-critical); }
.element-filters button[data-element="growth"] { --element-color: var(--setuk-growth); }
.element-filters button[data-element]:hover {
  background: color-mix(in srgb, var(--element-color) 7%, white);
  box-shadow: 0 1px 5px #1b294012;
}
.element-filters button[data-element].active,
.element-filters button[data-element][aria-pressed="true"] {
  background: var(--element-color);
  color: #fff;
  border-color: var(--element-color);
  box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--element-color);
}
.element-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  min-height: 24px;
  padding: 1px 6px;
  border-radius: 999px;
  background: #edf1f5;
  color: #33475a;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.3;
}
.element-filters .active .element-count,
.element-filters [aria-pressed="true"] .element-count {
  background: #fff;
  color: var(--element-color, #263e55);
}
.filter-summary {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin: 0 0 22px;
  padding: 12px 15px;
  border: 1px solid #b9cdcf;
  border-left: 4px solid var(--accent, #287a73);
  border-radius: 8px;
  background: #f1f7f6;
  color: #294b50;
  font-size: 14px;
  line-height: 1.7;
}
.filter-summary strong { color: #173d42; font-weight: 800; }
.filter-summary button { min-height: 38px; padding: 6px 11px; font-size: 13px; margin-left: auto; }

.axis-card { padding: 17px 15px; min-height: 114px; border-top-width: 4px; }
.axis-card b { font-size: 15px; font-weight: 800; line-height: 1.65; }
.axis-card span { font-size: 24px; line-height: 1.4; }
.axis-card small { color: #526579; font-size: 13px; }
.axis-card.selected { background: #e9f2f4; outline: 2px solid #557d89; outline-offset: 1px; }
.section-head h3 { font-size: 18px; }
.section-head label { font-size: 14px; }
.section-head input { width: 19px; height: 19px; }
.evidence-axis { padding: 23px; }
.evidence-axis h3 { font-size: 18px; margin-bottom: 10px; }
.evidence-axis .axis-note { font-size: 14px; line-height: 1.8; margin-bottom: 16px; }
.quote {
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
  padding: 15px 17px;
  margin: 9px 0;
  border-left: 3px solid #9eb4bf;
  border-radius: 0 7px 7px 0;
  color: #263a4f;
  background: #f3f6f8;
}
.quote:hover { background: #edf4f5; border-left-color: #287a73; }
.quote small { display: inline-block; margin-top: 6px; font-size: 13px; line-height: 1.8; color: #6f4654; }
.prompt { font-size: 14px; line-height: 1.9; }
.memo-help { font-size: 13px; line-height: 1.8; margin-top: 14px; }
.empty { font-size: 14px; }

#tagSentence { font-size: 18px; line-height: 2.1; color: #263a4f; }
#tagChoices { gap: 10px; }
#tagChoices label {
  min-height: 54px;
  padding: 13px 12px;
  border: 1.5px solid #c9d5df;
  border-radius: 9px;
  background: #f8fafb;
  font-size: 15px;
  font-weight: 750;
  line-height: 1.5;
  cursor: pointer;
}
#tagChoices input { flex: 0 0 21px; width: 21px; height: 21px; margin: 0; }
#tagChoices label:has(input:checked) {
  border-color: #287a73;
  background: #e9f4ef;
  box-shadow: inset 0 0 0 1px #287a73;
  color: #19564f;
}
#tagChoices label:hover { border-color: #719596; }
#tagChoices label:has(input:focus-visible) { outline: 3px solid #1f7583; outline-offset: 3px; }
.element-filters button:focus-visible,
.axis-card:focus-visible,
.quote:focus-visible,
.source-text .sentence:focus-visible {
  outline: 3px solid #115f75;
  outline-offset: 4px;
  box-shadow: 0 0 0 2px #fff;
}

@media (max-width: 740px) {
  .source-text { font-size: 17px; line-height: 2.35; }
  .tag[data-key], .sentence .tag[data-key] { font-size: 14px; padding: 2px 7px; }
  .element-filters { gap: 8px; }
  .element-filters button[data-element] { padding: 8px 10px; min-height: 44px; font-size: 14px; }
  .filter-summary { font-size: 14px; padding: 11px 12px; }
  .filter-summary button { margin-left: 0; }
  .axis-card { padding: 14px 12px; min-height: 109px; }
  .axis-card b { font-size: 14px; }
  .axis-card span { font-size: 23px; }
  .axis-card small { font-size: 12px; }
  .evidence-axis { padding: 18px; }
  .quote { font-size: 16px; padding: 13px; }
  #tagSentence { font-size: 17px; }
  #tagChoices label { padding: 12px 10px; font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .sentence, .element-filters button { transition: none; }
}
