/* Practice blocks (::: try, ::: check) and learner mode on textbook pages. The static rules below are the page
   without JavaScript and in print: question, options and a collapsed 풀이. .practice-enhanced (practice.js,
   tryit.js) adds the controls on screen; print keeps the static form. Blocks span the reading column like every
   other article block (shared/book.css). */
.practice-try,.practice-check{margin:28px 0;font-size:16px;line-height:1.8}
.practice-try{padding:12px 16px 10px;background:#f4f8f8;border-left:3px solid var(--blue)}
.practice-kicker{margin:0 0 6px;font-size:13px;color:var(--muted)}
.practice-try-items{margin:0;padding-left:22px}.practice-try-item{margin:6px 0}
.practice-try-prompt{display:inline}
.practice-try-observation{margin:2px 0 8px}.practice-try-observation summary{font-size:13px;color:#075873;cursor:pointer}
.practice-try-note{font-size:15px;color:#2e4751}.practice-try-note p{margin:4px 0}
.practice-check{padding:14px 0 6px;border-top:1px solid var(--line)}
.practice-question>:first-child{margin-top:0}.practice-question>:last-child{margin-bottom:8px}
.practice-options{list-style:none;padding:0;margin:6px 0 10px}.practice-options li{margin:4px 0}
.practice-mark{color:var(--muted);font-variant-numeric:tabular-nums}
.practice-solution{margin:8px 0}.practice-solution summary{cursor:pointer;color:#075873;font-size:14px;width:max-content;max-width:100%}
.practice-solution-body{padding:6px 0 2px 14px;border-left:2px solid var(--line);margin-top:6px}
.practice-solution-body>:first-child{margin-top:0}.practice-answer{margin:0 0 6px}.practice-answer strong,.practice-hint strong{margin-right:6px}
.practice-why{padding-left:18px;margin:4px 0 8px;font-size:15px}.practice-hint{font-size:15px;margin:4px 0 8px}

/* With JavaScript: the options become buttons in .practice-ui; the static list is left for print. */
.practice-enhanced .practice-options{display:none}
.practice-ui{margin:4px 0 6px}
.practice-choices{display:grid;gap:6px;margin:0 0 8px}
.practice-option{display:block;width:100%;text-align:left;min-height:44px;padding:8px 12px;border:1px solid #b9cdd2;border-radius:4px;background:#fff;color:var(--ink);font-size:16px;line-height:1.6}
.practice-option:hover{border-color:#6f9aab}.practice-option[aria-pressed=true]{border-color:var(--blue);background:#e8f3f6;box-shadow:inset 0 0 0 1px var(--blue)}
.practice-option[data-status=correct]{border-color:var(--positive);background:#e7f3f0;box-shadow:inset 0 0 0 1px var(--positive)}
.practice-option[data-status=wrong]{border-color:var(--negative);background:#f8ece9;color:#6d3a2f}
.practice-option[data-status=answer]{border-color:var(--positive);border-style:dashed}
.practice-option[aria-disabled=true]{cursor:default}.practice-option[aria-disabled=true]:not([data-status]){opacity:.7}
.practice-entry{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 8px}.practice-entry label{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.practice-entry input{width:150px;max-width:100%;min-height:40px;padding:6px 8px;border:1px solid #b9cdd2;border-radius:4px;font-size:16px}.practice-entry input[aria-invalid=true]{border-color:var(--negative)}
.practice-unit{color:var(--muted)}
.practice-actions{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.practice-submit,.practice-again,.practice-filter,.practice-try-go,.learner-toggle{font:inherit}
.practice-submit,.practice-again,.practice-filter{min-height:40px;padding:6px 14px;border:1px solid #b9cdd2;border-radius:4px;background:#fff;color:#385c69;font-size:14px}
.practice-submit{border-color:var(--blue);color:#075873}.practice-submit[aria-disabled=true],.practice-filter[aria-disabled=true]{opacity:.5;cursor:default}
.practice-status{font-size:13px;color:var(--muted)}.practice-status[data-status=correct]{color:#10695a}.practice-status[data-status=wrong]{color:#a34a38}
.practice-feedback{min-height:1.7em;margin:8px 0 4px;font-size:15px;line-height:1.7}
.practice-feedback[data-status=correct]{color:#10695a}.practice-feedback[data-status=wrong]{color:#a34a38}.practice-feedback[data-status=revealed]{color:#5b4a8a}
.practice-summary{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;padding:8px 12px;margin:0 0 12px;background:#f2f7f7;font-size:14px}
.practice-count{margin:0;font-weight:650;font-variant-numeric:tabular-nums}
.practice-check[data-filtered]{display:none}
.practice-try-go{display:inline;text-align:left;padding:2px 4px;margin:-2px -4px -3px;border:0;border-bottom:1px dashed #6f9aab;background:none;color:#075873;font-size:inherit;line-height:inherit;cursor:pointer}
/* A button lays out as an inline block: the -3px bottom margin cancels its bottom padding and border, and the static
   prompt keeps an invisible ▶ of the same size, so an item keeps its height and line breaks when tryit.js enhances it. */
.practice-try-go::before{content:"▶";font-size:.7em;margin-right:6px;color:var(--blue);vertical-align:.1em}.practice-try:not(.practice-enhanced) .practice-try-prompt::before{content:"▶";font-size:.7em;margin-right:6px;vertical-align:.1em;visibility:hidden}.practice-try-go:hover{background:#e3f0f3}
.practice-try:not(.practice-enhanced) .practice-try-hint{display:none}.practice-try-item[data-active] .practice-try-go{background:#dcecf0;border-bottom-style:solid}
.practice-try-item[data-active]::marker{color:var(--blue);font-weight:700}
.practice-figure{margin:16px 0}
/* Learner mode: controls a figure's data-controls leaves out, until "더 조작하기". Parts a data-parts list leaves out,
   controls of a static figure, sentences about controls not on screen, and containers those leave empty
   (shared/figure-view.js). */
[data-learner-hidden],[data-part-hidden],[data-static-hidden],[data-note-hidden],[data-empty-hidden]{display:none!important}
/* A static figure is an illustration: nothing in it reacts to the pointer (links in its credit line still work). */
.concept-figure[data-mode=static] *{pointer-events:none}.concept-figure[data-mode=static] a{pointer-events:auto}
.concept-figure button.learner-toggle{padding:4px 10px;min-height:32px;border:1px dashed #6f9aab;border-radius:4px;background:#fff;color:#075873;font-size:13px;white-space:nowrap}
.concept-figure button.learner-toggle[aria-expanded=true]{border-style:solid;background:#eef6f8}
@media(max-width:540px){.practice-try,.practice-check{font-size:15px}.practice-try{padding:10px 12px 8px}.practice-option{font-size:15px;padding:8px 10px}.practice-entry input{width:130px}}
@media print{.practice-ui,.practice-summary,.learner-toggle,.practice-try .sr-only,.practice-try-hint,.practice-try-go::before,.practice-try-prompt::before{display:none!important}.practice-enhanced .practice-options{display:block}.practice-check[data-filtered]{display:block}.practice-try-go{border:0;padding:0;margin:0;color:inherit;background:none}}
