:root {
  color-scheme: light;
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  color: #14243a;
  background: #f3f6fa;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: #f3f6fa; }
button, input, select { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
.ic3-page { width: min(920px, calc(100% - 28px)); margin: 28px auto 56px; }
.ic3-header { padding: 25px 28px; border-radius: 18px; background: linear-gradient(125deg, #103f74, #1875a8); color: #fff; box-shadow: 0 14px 34px rgba(22, 67, 104, .16); }
.ic3-brand { font-size: 12px; font-weight: 800; letter-spacing: .12em; opacity: .85; }
.ic3-header h1 { margin: 9px 0 5px; font-size: clamp(23px, 4vw, 34px); }
.ic3-subtitle { margin: 0; opacity: .9; }
.ic3-notice { margin: 14px 0; padding: 12px 15px; border: 1px solid #bfdbfe; border-radius: 10px; background: #eff6ff; color: #1e40af; }
.ic3-notice.is-error { border-color: #fecaca; background: #fef2f2; color: #991b1b; }
.ic3-notice.is-warning { border-color: #fde68a; background: #fffbeb; color: #854d0e; }
.ic3-notice.is-success { border-color: #bbf7d0; background: #f0fdf4; color: #166534; }
.ic3-tab-switch-status { max-width:min(450px,100%); padding:8px 12px; border:1px solid #dc6b6b; border-radius:999px; color:#8b1e1e; background:#fff0f0; box-shadow:0 3px 12px #7f1d1d20; font-size:12px; font-weight:850; line-height:1.35; text-align:center; }
.ic3-tab-switch-status.is-updating { animation:ic3-tab-status-pulse .65s ease; }
.ic3-tab-switch-status.is-locked { color:#fff; border-color:#7f1d1d; background:linear-gradient(120deg,#991b1b,#dc2626); box-shadow:0 0 0 3px #dc262633; }
.ic3-lock-overlay { position:fixed; inset:0; z-index:10000; display:grid; place-items:center; padding:20px; background:#111827b8; backdrop-filter:blur(5px); }
.ic3-lock-overlay[hidden] { display:none; }
.ic3-lock-card { width:min(460px,100%); padding:30px; border:1px solid #fecaca; border-radius:22px; background:#fff; box-shadow:0 24px 80px #0005; text-align:center; animation:ic3-lock-enter .25s ease-out; }
.ic3-lock-icon { display:grid; place-items:center; width:64px; height:64px; margin:0 auto 14px; border-radius:50%; color:#991b1b; background:#fee2e2; font-size:30px; }
.ic3-lock-card h2 { margin:0 0 10px; color:#991b1b; font-size:25px; }
.ic3-lock-message { margin:0 0 22px; color:#374151; line-height:1.6; }
.ic3-lock-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; }
@keyframes ic3-lock-enter { from { opacity:0; transform:translateY(10px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes ic3-tab-status-pulse { 0%{transform:scale(.97);box-shadow:0 0 0 0 #ef444477} 55%{transform:scale(1.035);box-shadow:0 0 0 7px #ef444400} 100%{transform:scale(1);box-shadow:0 3px 12px #7f1d1d20} }
@media(prefers-reduced-motion:reduce) { .ic3-tab-switch-status.is-updating { animation:none; } }
.ic3-panel { padding: 23px; border: 1px solid #e1e8f0; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(24, 52, 82, .06); }
.ic3-question-illustration { display:block; max-width:min(100%,760px); max-height:480px; margin:12px auto 18px; object-fit:contain; border:1px solid #dbe4f0; border-radius:12px; background:#fff; }
.ic3-panel h2 { margin: 0 0 7px; font-size: 21px; }
.ic3-panel > p { color: #596b81; }
.ic3-search-label { display: block; margin: 17px 0 6px; font-weight: 700; }
#ic3StudentSearch { width: 100%; padding: 12px; border: 1px solid #cbd5e1; border-radius: 9px; }
.ic3-student-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 9px; margin-top: 14px; }
/* New question and review interactions */
.ic3-student-option { display:flex; align-items:center; gap:12px; text-align:left; }
.ic3-student-number { display:inline-grid; place-items:center; width:30px; height:30px; flex:0 0 30px; border-radius:50%; color:#fff; background:linear-gradient(135deg,#5965f2,#8b5cf6); font-size:.82rem; font-weight:800; box-shadow:0 4px 10px #5965f244; }
.ic3-true-false-table { overflow-x:auto; border:1px solid #dbe4f0; border-radius:16px; }
.ic3-true-false-head,.ic3-true-false-answer-row { display:grid; grid-template-columns:minmax(0,1fr) 80px 80px; align-items:center; gap:10px; padding:12px 16px; }
.ic3-true-false-table.is-column-choice .ic3-true-false-head,.ic3-true-false-table.is-column-choice .ic3-true-false-answer-row { grid-template-columns:minmax(0,1fr) repeat(var(--ic3-choice-column-count), minmax(60px,1fr)); }
.ic3-review-truth-table.is-column-choice { grid-template-columns:minmax(0,1fr) repeat(var(--ic3-choice-column-count), minmax(60px,1fr)); }
.ic3-true-false-head { color:#fff; background:linear-gradient(120deg,#4f46e5,#7c3aed); }
.ic3-true-false-head > strong:not(:first-child) { text-align:center; }
.ic3-true-false-answer-row:nth-child(odd) { background:#f5f8ff; }
.ic3-true-false-answer-row>span { line-height:1.55; }
.ic3-true-false-answer-row label { display:grid; width:100%; justify-items:center; place-items:center; }
.ic3-true-false-answer-row input { width:20px; height:20px; margin:0; accent-color:#5b5bd6; }
.ic3-hotspot-image.is-hidden-targets { cursor:crosshair; }
.ic3-hotspot-target.is-invisible-target { opacity:0; border:0; background:transparent; pointer-events:none; }
.ic3-review-item>p,.ic3-review-item li { line-height:1.55; }
.ic3-review-item ul { padding-left:22px; }
.ic3-review-hotspot-image { position:relative; width:min(100%,760px); margin-top:12px; overflow:hidden; border-radius:14px; }
.ic3-review-hotspot-image img { display:block; width:100%; }
.ic3-review-hotspot-correct { position:absolute; border:3px solid #22c55e; background:#22c55e33; border-radius:8px; }
.ic3-review-hotspot-student-wrong { position:absolute; z-index:1; border:3px solid #ef4444; background:#ef444455; border-radius:8px; box-shadow:inset 0 0 0 2px #fff7; }
.ic3-review-hotspot-answer { position:absolute; z-index:2; width:18px; height:18px; border:3px solid #fff; border-radius:50%; background:linear-gradient(145deg,#f97316,#e11d48); box-shadow:0 0 0 4px #f9731633,0 3px 10px #9f123955; transform:translate(-50%,-50%); }
.ic3-puzzle-exercise { display:grid; gap:14px; }
.ic3-puzzle-targets,.ic3-puzzle-exercise .ic3-drag-choices { display:grid; gap:10px; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }
.ic3-puzzle-piece,.ic3-puzzle-exercise .ic3-drag-choice { min-height:66px; border:1px solid #d8dff2; border-radius:18px; background:linear-gradient(145deg,#fff,#f0f4ff); box-shadow:0 7px 18px #26365b14; transition:transform .18s ease,box-shadow .18s ease,border-radius .2s ease,background .2s ease; }
.ic3-puzzle-piece { display:grid; grid-template-columns:1fr auto; align-items:center; text-align:left; }
.ic3-puzzle-piece .ic3-drop-value { min-width:40px; padding:8px 12px; border-radius:12px; background:#e9edff; }
.ic3-puzzle-piece.is-paired { border-color:#22c55e; border-radius:18px 6px 6px 18px; background:linear-gradient(120deg,#effdf5,#dcfce7); box-shadow:0 8px 22px #16a34a22; }
.ic3-puzzle-piece.is-over,.ic3-puzzle-exercise .ic3-drag-choice.is-selected { transform:translateY(-3px) scale(1.015); box-shadow:0 12px 24px #4f46e544; }
.ic3-puzzle-exercise .ic3-drag-choice { cursor:grab; touch-action:manipulation; }
.ic3-puzzle-exercise .ic3-drag-choice:active { cursor:grabbing; }
.ic3-podium-place.is-rank-1 { order:2; transform:translateY(-18px); }
.ic3-podium-place.is-rank-2 { order:1; }
.ic3-podium-place.is-rank-3 { order:3; }
.ic3-podium-place { animation:ic3-podium-rise .7s cubic-bezier(.2,.8,.2,1) both; }
@keyframes ic3-podium-rise { from { opacity:0; transform:translateY(22px) scale(.92); } to { opacity:1; transform:translateY(0) scale(1); } }
@media(max-width:650px) { .ic3-true-false-head,.ic3-true-false-answer-row { grid-template-columns:minmax(0,1fr) 54px 54px; padding:10px; } .ic3-puzzle-targets,.ic3-puzzle-exercise .ic3-drag-choices { grid-template-columns:1fr; } }

/* Student test page layout */
.ic3-page { width:min(1060px,calc(100% - 32px)); margin:24px auto 48px; }
.ic3-header { padding:24px clamp(18px,4vw,34px); overflow:hidden; }
.ic3-brand { display:flex; align-items:center; gap:9px; font-size:11px; line-height:1.3; letter-spacing:.1em; }
.ic3-brand img { display:block; width:25px; height:25px; max-width:25px; max-height:25px; flex:0 0 25px; object-fit:contain; border-radius:7px; }
.ic3-panel { min-width:0; margin-top:16px; padding:clamp(17px,3vw,28px); }
.ic3-panel > p { line-height:1.6; }
.ic3-student-list { grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr)); gap:11px; }
.ic3-student-option { min-width:0; min-height:68px; padding:12px 15px; border:1px solid #e0e8f2; border-radius:15px; background:linear-gradient(145deg,#fff,#f7faff); color:#1c3150; box-shadow:0 4px 12px #233b5b0b; transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.ic3-student-option:hover,.ic3-student-option:focus-visible { transform:translateY(-2px); border-color:#84a9e8; box-shadow:0 10px 22px #2c54831c; outline:none; }
.ic3-student-number { width:34px; height:34px; flex-basis:34px; }
.ic3-student-name { min-width:0; overflow-wrap:anywhere; font-weight:700; line-height:1.35; }
.ic3-question-list { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; margin:20px 0 24px; }
.ic3-question-card { min-width:0; padding:clamp(16px,3vw,24px); overflow:hidden; border:1px solid #e0e8f2; border-radius:18px; background:linear-gradient(180deg,#fff,#fcfdff); box-shadow:0 7px 20px #1b35530a; scroll-margin-top:18px; }
.ic3-question-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.ic3-question-heading strong { color:#245ba2; font-size:15px; }
.ic3-question-heading span { padding:5px 10px; border-radius:999px; background:#eff5ff; color:#54708f; font-size:12px; font-weight:700; white-space:nowrap; }
.ic3-question-prompt { margin:0 0 18px; color:#162d4a; font-size:17px; font-weight:650; line-height:1.6; overflow-wrap:anywhere; }
.ic3-answer-options { display:grid; gap:10px; }
.ic3-answer-option { display:flex; align-items:flex-start; gap:11px; min-width:0; padding:13px 15px; border:1px solid #dfe7f1; border-radius:13px; background:#fff; line-height:1.55; cursor:pointer; transition:border-color .15s ease,background .15s ease; }
.ic3-answer-option:has(input:checked) { border-color:#6094e5; background:#f1f6ff; }
.ic3-answer-option input { flex:0 0 auto; margin-top:3px; accent-color:#3978d1; }
.ic3-answer-option-image { display:block; max-width:min(100%,280px); max-height:190px; object-fit:contain; border-radius:10px; background:#f4f7fb; }
.ic3-puzzle-exercise { grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:16px; }
.ic3-puzzle-column { min-width:0; padding:15px; border:1px solid #e0e8f2; border-radius:17px; }
.ic3-puzzle-column-a { background:linear-gradient(155deg,#f2f7ff,#fff); }
.ic3-puzzle-column-b { background:linear-gradient(155deg,#fff7ed,#fff); }
.ic3-puzzle-column h3 { margin:0 0 13px; color:#365676; font-size:14px; }
.ic3-puzzle-targets,.ic3-puzzle-exercise .ic3-drag-choices { grid-template-columns:minmax(0,1fr); gap:11px; }
.ic3-puzzle-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch; gap:8px; min-width:0; transition:transform .18s ease; }
.ic3-puzzle-piece,.ic3-puzzle-exercise .ic3-drag-choice { position:relative; display:flex; align-items:center; justify-content:flex-start; width:100%; min-width:0; min-height:74px; padding:14px 18px; border:1px solid #bfd2ed; border-radius:15px; color:#23446d; background:linear-gradient(145deg,#fff,#eaf2ff); box-shadow:0 6px 14px #274e7412; text-align:left; line-height:1.45; overflow-wrap:anywhere; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease; }
.ic3-puzzle-piece-a { border-right:0; border-radius:15px 8px 8px 15px; }
.ic3-puzzle-piece-a::after { position:absolute; z-index:1; top:50%; right:-10px; width:19px; height:19px; border:1px solid #8eb4e7; border-radius:50%; background:#dbeaff; content:""; transform:translateY(-50%); }
.ic3-puzzle-piece-a.is-shape-square::after { border-radius:3px; }
.ic3-puzzle-piece-a.is-shape-triangle::after { width:0;height:0;right:-12px;border:10px solid transparent;border-left-color:#8eb4e7;border-radius:0;background:transparent; }
.ic3-puzzle-piece-a.is-shape-diamond::after { border-radius:3px; transform:translateY(-50%) rotate(45deg); }
.ic3-puzzle-piece-a.is-shape-hexagon::after { border-radius:6px; clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%); }
.ic3-puzzle-piece-a.is-shape-wave::after { border-radius:45% 55% 40% 60%; }
.ic3-puzzle-joined { position:relative; display:flex; align-items:center; justify-content:space-between; min-width:0; min-height:74px; gap:6px; padding:12px 12px 12px 18px; border:1px solid #f4bd82; border-radius:8px 15px 15px 8px; color:#754319; background:linear-gradient(145deg,#fff8ed,#ffead5); box-shadow:0 6px 14px #b96b2414; line-height:1.4; overflow-wrap:anywhere; animation:ic3-snap-in .32s cubic-bezier(.2,.8,.2,1) both; }
.ic3-puzzle-joined::before { position:absolute; top:50%; left:-10px; width:19px; height:19px; border-radius:50%; background:#ffe4c7; content:""; transform:translateY(-50%); }
.ic3-puzzle-joined.is-shape-square::before { border-radius:3px; }
.ic3-puzzle-joined.is-shape-triangle::before { width:0;height:0;left:-12px;border:10px solid transparent;border-right-color:#f4bd82;border-radius:0;background:transparent; }
.ic3-puzzle-joined.is-shape-diamond::before { border-radius:3px; transform:translateY(-50%) rotate(45deg); }
.ic3-puzzle-joined.is-shape-hexagon::before { clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%); }
.ic3-puzzle-unpair { position:relative; z-index:1; flex:0 0 auto; padding:5px 7px; border:0; border-radius:8px; background:#fff8; color:#8a5527; font-size:11px; }
.ic3-puzzle-row.is-locked .ic3-puzzle-unpair { display:none; }
.ic3-puzzle-row.is-locked .ic3-puzzle-joined { border-color:#75c69d; color:#176143; background:linear-gradient(145deg,#f0fff6,#dcfce9); }
.ic3-puzzle-row.is-locked .ic3-puzzle-joined::before { background:#d5f6e2; }
.ic3-puzzle-row.is-over .ic3-puzzle-piece-a { transform:translateX(3px); border-color:#538cdb; box-shadow:0 11px 22px #3172c52c; }
.ic3-puzzle-row.is-wrong { animation:ic3-nudge .28s ease-in-out 2; }
.ic3-puzzle-row.is-wrong .ic3-puzzle-piece-a { border-color:#f08c8c; background:#fff2f2; }
.ic3-puzzle-exercise .ic3-drag-choice { cursor:grab; touch-action:manipulation; }
.ic3-puzzle-exercise .ic3-drag-choice:active { cursor:grabbing; }
.ic3-puzzle-exercise .ic3-drag-choice[hidden] { display:none; }
.ic3-puzzle-exercise .ic3-drag-choice.is-selected { transform:translateY(-3px) scale(1.015); border-color:#dd9952; background:#fff0dc; box-shadow:0 12px 24px #b96b2430; }
.ic3-puzzle-exercise .ic3-drag-choice img { max-width:100%; max-height:120px; object-fit:contain; border-radius:9px; }
.ic3-interaction-hint { display:block; margin-top:12px; color:#63758a; line-height:1.5; }
.ic3-submit-row { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-top:18px; border-top:1px solid #e5ebf3; }
.ic3-submit-row p { max-width:620px; margin:0; color:#627286; font-size:13px; line-height:1.55; }
.ic3-button { min-height:44px; padding:11px 17px; border:1px solid transparent; border-radius:11px; font-weight:750; }
.ic3-button.primary { color:#fff; background:linear-gradient(120deg,#245fa8,#1682ad); box-shadow:0 6px 14px #17659c2b; }
.ic3-button.secondary { border-color:#d4deeb; color:#36516f; background:#fff; }
.ic3-button:disabled { opacity:.55; cursor:not-allowed; }
.ic3-exam-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding-bottom:16px; border-bottom:1px solid #e7edf4; }
.ic3-exam-heading h2 { margin:0; }
.ic3-exam-heading p { margin:5px 0 0; color:#65768b; }
.ic3-exam-statuses { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.ic3-save-status,.ic3-time-remaining { padding:7px 10px; border-radius:999px; background:#f2f6fb; color:#536a83; font-size:12px; }
.ic3-hotspot-image { position:relative; width:min(100%,780px); margin:0 auto; overflow:hidden; border-radius:14px; }
.ic3-hotspot-image img { display:block; width:100%; height:auto; }
.ic3-hotspot-target { position:absolute; border:2px solid #557ee9; border-radius:8px; background:#557ee933; }
.ic3-hotspot-target.is-selected { border-color:#16a36b; background:#1fb77955; }
.ic3-review-item { margin:11px 0; padding:15px; border:1px solid #e0e8f1; border-radius:14px; background:#fff; }
.ic3-review-item.is-correct { border-left:4px solid #22a06b; }
.ic3-review-item.is-wrong { border-left:4px solid #e77b62; }
.ic3-review-item > summary { display:flex; align-items:center; gap:8px; cursor:pointer; font-weight:800; }
.ic3-review-item > summary::after { margin-left:auto; color:#64748b; content:"Mở Chi tiết"; font-size:12px; font-weight:700; }
.ic3-review-item[open] > summary::after { content:"Thu gọn"; }
.ic3-review-detail { padding-top:10px; }
.ic3-review-item > p { overflow-wrap:anywhere; }
.ic3-review-options { display:grid; gap:8px; margin:12px 0 0; padding:0; list-style:none; }
.ic3-review-option { display:flex; align-items:center; gap:10px; min-width:0; padding:10px 12px; border:1px solid #e0e8f1; border-radius:11px; background:#fff; line-height:1.45; }
.ic3-review-option-marker { display:grid; place-items:center; width:23px; height:23px; flex:0 0 23px; border-radius:50%; color:#748399; background:#edf1f6; font-size:13px; font-weight:800; }
.ic3-review-option.is-answer-correct { border-color:#7cc9a4; color:#145b3a; background:#e9f8f0; font-weight:700; }
.ic3-review-option.is-answer-correct .ic3-review-option-marker { color:#fff; background:#168353; }
.ic3-review-option.is-selected-wrong { opacity:.48; }
.ic3-review-option.is-selected-wrong .ic3-review-option-marker { color:#fff; background:#a8b1bf; }
.ic3-review-single-correct { padding:10px 12px; border:1px solid #7cc9a4; border-radius:11px; color:#145b3a; background:#e9f8f0; font-weight:700; }
.ic3-review-single-wrong { padding:10px 12px; border:1px solid #efb0a7; border-radius:11px; color:#914638; background:#fff3f1; }
.ic3-review-multiple-summary,.ic3-review-multiple-selected,.ic3-review-multiple-missing { margin:8px 0; padding:9px 11px; border-radius:10px; }
.ic3-review-multiple-summary { color:#865816; background:#fff5dc; font-weight:800; }
.ic3-review-multiple-selected { color:#334155; background:#f1f5f9; }
.ic3-review-multiple-missing { color:#145b3a; background:#e9f8f0; font-weight:700; }
.ic3-review-truth-table { display:grid; grid-template-columns:minmax(0,1fr) 72px 72px; overflow:hidden; margin-top:12px; border:1px solid #dbe4f0; border-radius:12px; }
.ic3-review-truth-table > strong,.ic3-review-truth-table > span { display:grid; place-items:center; min-height:44px; padding:9px; border-right:1px solid #e1e8f0; border-bottom:1px solid #e1e8f0; text-align:center; }
.ic3-review-truth-table > :nth-child(3n) { border-right:0; }
.ic3-review-truth-table > :nth-last-child(-n+3) { border-bottom:0; }
.ic3-review-truth-table > strong { color:#fff; background:#315c88; font-size:13px; }
.ic3-review-truth-table > strong.is-statement { justify-items:start; }
.ic3-review-truth-statement { justify-items:start !important; text-align:left !important; line-height:1.45; }
.ic3-review-truth-cell { color:#92a0b1; background:#f8fafc; font-size:12px; font-weight:750; }
.ic3-review-truth-cell.is-correct-answer { color:#145b3a; background:#dcf4e6; }
.ic3-review-truth-cell.is-student-answer { box-shadow:inset 0 0 0 2px #3679c8; }
.ic3-review-truth-cell.is-wrong-answer { color:#963c36; background:#ffebe8; box-shadow:inset 0 0 0 2px #db8278; }
.ic3-review-matching-review { margin-top:12px; }
.ic3-match-board.ic3-review-match-board { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:44px; row-gap:10px; }
.ic3-review-match-board .ic3-review-match-card { position:relative; display:flex; align-items:center; width:100%; min-width:0; min-height:74px; padding:14px 18px; border-radius:15px; line-height:1.45; overflow-wrap:anywhere; }
.ic3-review-match-board .ic3-match-definition.ic3-review-match-card { padding-left:54px; }
.ic3-review-match-board .ic3-match-choice.ic3-review-match-card { padding-right:54px; }
.ic3-review-match-board .ic3-match-number { position:absolute; top:50%; display:grid; width:27px; height:27px; place-items:center; border:2px solid var(--review-pair-accent,#8ca0b7); border-radius:50%; color:var(--review-pair-accent,#53657a); background:#fff; box-shadow:0 2px 8px #1b355324; font-size:12px; font-weight:850; line-height:1; transform:translateY(-50%); pointer-events:none; }
.ic3-review-match-board .ic3-match-definition > .ic3-match-number { left:14px; }
.ic3-review-match-board .ic3-match-choice > .ic3-match-number { right:14px; }
.ic3-review-match-board .ic3-review-match-card.is-paired { border-color:#145b96; background:var(--review-pair-color,#e7f1ff); color:#104775; font-weight:700; }
.ic3-review-match-board .ic3-review-match-card.has-correct-pair-color { border:2px solid var(--review-pair-accent); background:linear-gradient(135deg,#ffffffa8,var(--review-pair-color) 38%); box-shadow:0 0 0 3px var(--review-pair-glow),0 8px 20px var(--review-pair-glow),inset 0 0 0 1px #ffffffbd; color:#253247; font-weight:750; }
.ic3-review-match-board .ic3-review-match-card.has-correct-pair-color::before { width:8px; height:34px; flex:0 0 8px; margin-right:12px; border:0; border-radius:8px; background:var(--review-pair-accent); box-shadow:none; content:""; }
.ic3-review-match-board .ic3-match-definition.is-paired::after { display:none !important; }
.ic3-review-match-board .ic3-match-definition.is-paired { border-right-color:transparent; }
.ic3-review-match-board .ic3-match-choice.is-paired { border-left-color:transparent; padding-left:34px; }
.ic3-review-match-board .ic3-review-match-card.is-review-empty { border-color:#dce5ef; color:#77869a; background:#f5f7fa; font-style:italic; }
.ic3-podium { display:flex; align-items:flex-end; justify-content:center; gap:14px; margin:22px auto; }
.ic3-podium-place { display:flex; flex:1 1 0; max-width:230px; min-height:150px; flex-direction:column; align-items:center; justify-content:center; gap:7px; padding:18px 12px; border:1px solid #ead8ab; border-radius:18px; background:linear-gradient(160deg,#fff9e8,#f4e3b4); text-align:center; }
.ic3-podium-place.is-rank-1 { min-height:182px; border-color:#e3ba45; background:linear-gradient(160deg,#fff9d7,#f6d76c); }
.ic3-podium-place.is-rank-2 { background:linear-gradient(160deg,#f8fbff,#dce8f5); }
.ic3-podium-place.is-rank-3 { background:linear-gradient(160deg,#fff5eb,#f3d3b4); }
.ic3-podium-medal { font-size:30px; }
.ic3-leaderboard { padding-left:24px; line-height:1.8; }
.ic3-toast { position:fixed; z-index:10; right:18px; bottom:18px; max-width:min(420px,calc(100% - 36px)); padding:12px 16px; border-radius:12px; color:#fff; background:#1d3553; box-shadow:0 12px 32px #10233d35; opacity:0; pointer-events:none; transform:translateY(10px); transition:opacity .2s,transform .2s; }
.ic3-toast.is-visible { opacity:1; transform:translateY(0); }
.ic3-confirm-dialog { position:fixed; z-index:20; inset:0; display:grid; place-items:center; padding:18px; background:#10233d80; }
.ic3-confirm-card { width:min(460px,100%); padding:25px; border-radius:19px; background:#fff; box-shadow:0 22px 70px #10233d45; }
.ic3-confirm-card h2 { margin:9px 0; }
.ic3-confirm-card p { color:#61748b; line-height:1.55; }
.ic3-confirm-emoji { font-size:27px; }
.ic3-confirm-check { display:flex; align-items:flex-start; gap:10px; margin:18px 0; line-height:1.5; }
.ic3-confirm-check input { margin-top:4px; }
.ic3-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.ic3-confirm-name { font-size:20px; font-weight:750; color:#245fa8 !important; }
.ic3-result-score { font-size:22px; font-weight:800; color:#245fa8; }
.ic3-time-remaining.is-ending { color:#a33131; background:#fff0f0; }
@keyframes ic3-snap-in { from { opacity:.5; transform:translateX(-8px) scale(.97); } to { opacity:1; transform:translateX(0) scale(1); } }
@keyframes ic3-nudge { 25% { transform:translateX(-4px); } 75% { transform:translateX(4px); } }
@media(max-width:720px) {
  .ic3-page { width:calc(100% - 20px); margin:10px auto 28px; }
  .ic3-header { border-radius:15px; }
  .ic3-puzzle-exercise { grid-template-columns:minmax(0,1fr); }
  .ic3-puzzle-row { grid-template-columns:minmax(0,1fr); gap:6px; }
  .ic3-puzzle-piece-a { border-right:1px solid #bfd2ed; border-radius:13px; }
  .ic3-puzzle-piece-a::after { display:none; }
  .ic3-puzzle-joined { min-height:58px; margin-left:14px; border-radius:13px; }
  .ic3-puzzle-joined::before { left:-9px; }
}
@media(max-width:520px) {
  .ic3-panel { padding:15px; border-radius:14px; }
  .ic3-question-card { padding:15px; }
  .ic3-exam-heading,.ic3-submit-row { align-items:stretch; flex-direction:column; }
  .ic3-exam-statuses { justify-content:flex-start; }
  .ic3-submit-row .ic3-button { width:100%; }
  .ic3-true-false-head,.ic3-true-false-answer-row { grid-template-columns:minmax(0,1fr) 48px 48px; gap:5px; padding:9px; }
  .ic3-review-truth-table { grid-template-columns:minmax(0,1fr) 50px 50px; }
  .ic3-review-truth-table > strong,.ic3-review-truth-table > span { padding:7px 5px; font-size:12px; }
  .ic3-match-board.ic3-review-match-board { column-gap:30px; }
  .ic3-podium { gap:6px; }
  .ic3-podium-place { min-height:126px; padding:10px 6px; font-size:12px; overflow-wrap:anywhere; }
  .ic3-podium-place.is-rank-1 { min-height:150px; }
}

.ic3-sequence-exercise { display:grid; gap:12px; }
.ic3-sequence-media { width:min(100%,760px); margin:0 auto; overflow:hidden; border:1px solid #dbe4f0; border-radius:14px; background:#0f172a; }
.ic3-sequence-media img,.ic3-sequence-media video { display:block; width:100%; max-height:440px; object-fit:contain; }
.ic3-sequence-instruction { margin:0; color:#526b86; font-size:14px; }
.ic3-sequence-list { display:grid; gap:9px; margin:0; padding:0; list-style:none; }
.ic3-sequence-step { display:grid; grid-template-columns:25px 36px minmax(0,1fr) auto; align-items:center; gap:11px; min-width:0; padding:11px 13px; border:1px solid #d8e3f1; border-radius:13px; background:linear-gradient(145deg,#fff,#f4f8ff); box-shadow:0 4px 12px #243d5c0c; }
.ic3-sequence-step.is-dragging { opacity:.45; }
.ic3-sequence-step.is-drop-target { border-color:#3978d1; background:#eaf2ff; }
.ic3-sequence-grip { color:#7890aa; font-size:22px; cursor:grab; touch-action:none; }
.ic3-sequence-number { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; color:#fff; background:linear-gradient(135deg,#3978d1,#6b63dc); font-size:14px; }
.ic3-sequence-step-text { min-width:0; color:#1c3150; line-height:1.5; overflow-wrap:anywhere; }
.ic3-sequence-controls { display:flex; gap:5px; }
.ic3-sequence-move { width:34px; height:34px; border:1px solid #cbd8e8; border-radius:9px; color:#245ba2; background:#fff; font-size:18px; font-weight:800; }
.ic3-sequence-move:disabled { opacity:.4; cursor:not-allowed; }
.ic3-sequence-review-media { margin:12px 0; }
.ic3-sequence-review-label { display:block; margin-top:14px; color:#345477; }
.ic3-sequence-review-list { margin:5px 0 10px; padding-left:25px; line-height:1.6; }
.ic3-sequence-review-list li { padding:2px 0; }
.ic3-sequence-media-preview { width:min(100%,600px); margin:8px 0; overflow:hidden; border:1px solid #dbe4f0; border-radius:10px; background:#0f172a; }
.ic3-sequence-media-preview:empty { display:none; }
.ic3-sequence-media-preview img,.ic3-sequence-media-preview video { display:block; width:100%; max-height:360px; object-fit:contain; }
.ic3-sequence-step-editor { grid-template-columns:minmax(0,1fr) auto; align-items:end; }
.ic3-sequence-step-controls { display:flex; gap:5px; }
@media(max-width:520px) {
  .ic3-sequence-step { grid-template-columns:20px 32px minmax(0,1fr); gap:8px; padding:9px; }
  .ic3-sequence-controls { grid-column:3; justify-self:end; }
  .ic3-sequence-step-text { grid-column:3; grid-row:1; }
  .ic3-sequence-step-editor { grid-template-columns:minmax(0,1fr); }
}

/* Restore lively interactions and line up both puzzle columns. */
.ic3-question-card { overflow:visible; animation:ic3-question-in .38s cubic-bezier(.2,.8,.2,1) both; }
.ic3-question-card:nth-child(2) { animation-delay:.04s; }
.ic3-question-card:nth-child(3) { animation-delay:.08s; }
.ic3-question-card:nth-child(4) { animation-delay:.12s; }
.ic3-question-card.is-answering { animation:ic3-answer-pulse .4s ease; }
.ic3-true-false-answer-row,.ic3-answer-option { transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease; }
.ic3-answer-option:hover { transform:translateY(-1px); box-shadow:0 6px 16px #243d5c12; }
.ic3-question-card:hover { border-color:#c9d8eb; box-shadow:0 12px 28px #1b355315; }
.ic3-hotspot-target { cursor:crosshair; transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease; }
.ic3-hotspot-target:hover,.ic3-hotspot-target:focus-visible { z-index:3; outline:none; border-color:#245fa8; box-shadow:0 0 0 4px #3978d12b; }
.ic3-button { transition:transform .16s ease,box-shadow .16s ease,filter .16s ease; }
.ic3-button:not(:disabled):hover { transform:translateY(-2px); filter:brightness(1.03); box-shadow:0 10px 20px #17659c35; }
.ic3-button:not(:disabled):active { transform:translateY(0) scale(.98); }
.ic3-student-option:active,.ic3-answer-option:active { transform:scale(.99); }
.ic3-button.primary { transition:transform .16s ease,box-shadow .16s ease,filter .16s ease; }
.ic3-button.primary:hover:not(:disabled) { transform:translateY(-2px); filter:brightness(1.06); box-shadow:0 10px 20px #17659c36; }
.ic3-puzzle-exercise { position:relative; overflow:visible; }
.ic3-match-headings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:44px; margin-bottom:8px; color:#526b86; font-size:13px; }
.ic3-match-board { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:minmax(74px,1fr); align-items:stretch; column-gap:44px; row-gap:10px; }
.ic3-match-definition { cursor:default; }
.ic3-match-board .ic3-match-definition { position:relative; z-index:2; }
.ic3-match-board .ic3-match-definition.is-over { z-index:5; transform:translateY(-3px) scale(1.025); border:3px solid #145b96; outline:3px solid #3978d155; outline-offset:2px; color:#104775; background:linear-gradient(135deg,#eff6ff,#dbeafe); box-shadow:0 14px 30px #145b9645,inset 0 0 0 1px #ffffffc7; }
.ic3-match-board .ic3-match-choice { position:relative; display:flex; align-items:center; justify-content:flex-start; width:100%; min-width:0; min-height:74px; padding:14px 18px; border:1px solid #bfd2ed; border-radius:15px; color:#23446d; background:linear-gradient(145deg,#fff,#eaf2ff); box-shadow:0 6px 14px #274e7412; text-align:left; line-height:1.45; overflow-wrap:anywhere; cursor:grab; touch-action:none; user-select:none; -webkit-user-select:none; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease; }
.ic3-match-board .ic3-match-choice:active { cursor:grabbing; }
.ic3-match-board .ic3-match-choice img { display:block; flex:0 1 auto; width:auto; max-width:100%; height:auto; max-height:84px; object-fit:contain; border-radius:9px; }
.ic3-match-definition.is-paired { border:2px solid #145b96; border-radius:15px 8px 8px 15px; color:#104775; background:#e7f1ff; box-shadow:0 8px 20px #145b962e,inset 0 0 0 1px #ffffffa6; transition:transform .2s cubic-bezier(.22,1,.36,1),box-shadow .2s ease,border-color .2s ease; }
.ic3-match-board .ic3-match-choice.is-paired { border:2px solid #145b96; border-left-color:transparent; border-radius:8px 15px 15px 8px; color:#104775; background:#e7f1ff; box-shadow:0 8px 20px #145b9638,inset 0 0 0 1px #ffffffa6; }
.ic3-match-board .ic3-match-definition.is-paired { z-index:3; width:calc(100% + 22px); margin-right:-22px; border-right-color:transparent; }
.ic3-match-board .ic3-match-definition::after { position:absolute; z-index:6; top:50%; right:-18px; display:block !important; width:18px; height:20px; border:2px solid #145b96; border-left:0; border-radius:0 3px 3px 0; background:inherit; box-shadow:2px 2px 5px #145b9624; content:""; transform:translateY(-50%); }
.ic3-match-board .ic3-match-choice::before { position:absolute; z-index:2; top:50%; left:0; display:block; width:18px; height:20px; border:2px solid #145b96; border-left:0; border-radius:0 3px 3px 0; background:#f3f6fa; box-shadow:inset -2px 0 0 #145b9624; content:""; transform:translateY(-50%); }
.ic3-match-board .ic3-match-definition:not(.is-paired)::after,.ic3-match-board .ic3-match-choice:not(.is-paired)::before { display:none !important; }
.ic3-match-board .ic3-match-choice.is-paired { width:calc(100% + 22px); margin-left:-22px; padding-left:34px; }
.ic3-match-board .ic3-match-choice.is-paired::before { display:none; }
.ic3-match-board .ic3-match-choice.is-drag-source::before { display:none !important; }
.ic3-match-board .ic3-match-definition.is-paired:hover,.ic3-match-board .ic3-match-definition.is-paired:active,.ic3-match-board .ic3-match-definition.is-paired:focus-visible,.ic3-match-board .ic3-match-choice.is-paired:hover,.ic3-match-board .ic3-match-choice.is-paired:active,.ic3-match-board .ic3-match-choice.is-paired:focus-visible { z-index:4; transform:translateY(-2px) scale(1.015); border-color:#104775; outline:3px solid #3978d166; outline-offset:2px; box-shadow:0 12px 28px #10477545,inset 0 0 0 1px #ffffffc7; }
.ic3-match-board .ic3-match-choice.is-paired:hover,.ic3-match-board .ic3-match-choice.is-paired:active,.ic3-match-board .ic3-match-choice.is-paired:focus-visible { z-index:2; }
.ic3-match-board .ic3-match-definition.is-paired:hover,.ic3-match-board .ic3-match-definition.is-paired:active,.ic3-match-board .ic3-match-definition.is-paired:focus-visible,.ic3-match-board .ic3-match-choice.is-paired:hover,.ic3-match-board .ic3-match-choice.is-paired:active,.ic3-match-board .ic3-match-choice.is-paired:focus-visible { transform:none; outline:none; }
.ic3-match-board .ic3-match-definition.is-paired:hover,.ic3-match-board .ic3-match-definition.is-paired:active,.ic3-match-board .ic3-match-definition.is-paired:focus-visible { border-right-color:transparent; }
.ic3-match-board .ic3-match-choice.is-paired:hover,.ic3-match-board .ic3-match-choice.is-paired:active,.ic3-match-board .ic3-match-choice.is-paired:focus-visible { border-left-color:transparent; }
.ic3-match-board.ic3-review-match-board .ic3-review-match-card.is-paired { background:var(--review-pair-color,#e7f1ff); cursor:default; }
.ic3-match-board.ic3-review-match-board .ic3-match-definition.is-paired { border-right-color:transparent; }
.ic3-match-board.ic3-review-match-board .ic3-match-choice.is-paired { border-left-color:transparent; padding-left:34px; }
.ic3-match-board.ic3-review-match-board .ic3-match-definition.ic3-review-match-card.is-paired { border-right-color:transparent; }
.ic3-match-board.ic3-review-match-board .ic3-match-choice.ic3-review-match-card.is-paired { border-left-color:transparent; }
.ic3-match-board .ic3-match-choice.is-selected { transform:translateY(-3px) scale(1.015); border-color:#dd9952; background:#fff0dc; box-shadow:0 12px 24px #b96b2430; }
.ic3-match-board .ic3-match-choice.is-dragging { transform:scale(1.04) rotate(1deg); border-color:#dc9b59; background:#fff0dc; box-shadow:0 24px 48px #14243a40; cursor:grabbing; }
.ic3-match-board .ic3-match-choice.is-dragging.is-paired { border-color:#104775; background:linear-gradient(135deg,#bfdbfe,#93c5fd); box-shadow:0 24px 48px #145b9655,0 0 0 3px #3978d155; }
.ic3-match-board .ic3-match-choice.is-dragging::before { background:#f3f6fa; }
.ic3-match-board .ic3-match-choice.is-drag-source { visibility:hidden; }
.ic3-match-board .ic3-match-choice.is-snapping,.ic3-match-definition.is-snapping { animation:ic3-match-snap .58s cubic-bezier(.22,1,.36,1) both; }
.ic3-puzzle-column { min-width:0; padding:0; border:0; border-radius:0; background:transparent; }
.ic3-puzzle-column-a,.ic3-puzzle-column-b { padding:0; }
.ic3-puzzle-row { position:relative; display:block; min-width:0; min-height:74px; transition:transform .2s ease; }
.ic3-puzzle-row.is-paired { z-index:3; display:grid; width:100%; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; }
.ic3-puzzle-piece-a { width:100%; min-height:74px; }
.ic3-puzzle-joined { width:100%; min-height:74px; }
.ic3-puzzle-joined { cursor:grab; touch-action:none; }
.ic3-puzzle-joined.is-dragging { cursor:grabbing; box-shadow:0 16px 30px #22324a30; }
.ic3-puzzle-joined.is-sliding { z-index:5; will-change:transform,opacity,filter; box-shadow:0 14px 26px #35578230; }
.ic3-puzzle-row.is-over .ic3-puzzle-piece-a { border-color:#538cdb; box-shadow:0 0 0 4px #79a9ed2d,0 11px 22px #3172c52c; }
.ic3-puzzle-row.is-locked .ic3-puzzle-piece-a { border-color:#69c194; color:#176143; background:linear-gradient(145deg,#f0fff6,#dcfce9); }
.ic3-puzzle-row.is-saved-pair .ic3-puzzle-unpair { display:none; }
.ic3-puzzle-choice-placeholder { min-width:0; min-height:68px; border:1px dashed #d4deeb; border-radius:15px; background:linear-gradient(135deg,#f8fafc,#fff); }
.ic3-drag-choice { user-select:none; -webkit-user-select:none; touch-action:none !important; }
.ic3-drag-choice.is-dragging { transform:scale(1.04) rotate(1deg); border-color:#dc9b59; background:#fff0dc; box-shadow:0 24px 48px #14243a40; cursor:grabbing; }
.ic3-drag-choice.is-selected { outline:3px solid #e2a760; outline-offset:2px; }
.ic3-interaction-hint { animation:ic3-hint-in .45s ease both; }
.ic3-hotspot-image.is-hidden-targets { cursor:crosshair; }
.ic3-hotspot-dot { position:absolute; z-index:4; display:grid; place-items:center; width:30px; height:30px; border:3px solid #fff; border-radius:50%; color:#fff; background:linear-gradient(145deg,#f97316,#e11d48); box-shadow:0 4px 14px #9f123955; font-size:13px; font-weight:900; pointer-events:none; transform:translate(-50%,-50%); animation:ic3-point-pop .28s cubic-bezier(.2,.8,.2,1) both; }
.ic3-hotspot-dot:empty { width:22px; height:22px; border-width:3px; background:radial-gradient(circle at 35% 30%,#fff8,#fff0 40%),linear-gradient(145deg,#f97316,#e11d48); box-shadow:0 0 0 5px #f9731622,0 4px 14px #9f123955; animation:ic3-point-pop .28s cubic-bezier(.2,.8,.2,1) both,ic3-point-pulse 1.8s ease-in-out .28s infinite; }
.ic3-puzzle-piece-a::after,.ic3-puzzle-joined::before { display:none !important; }
.ic3-puzzle-piece,.ic3-puzzle-joined { border-radius:14px; }
.ic3-puzzle-row.is-paired { width:100%; }
.ic3-puzzle-row.is-paired .ic3-puzzle-piece-a,.ic3-puzzle-row.is-paired .ic3-puzzle-joined { height:100%; min-height:100%; }
.ic3-puzzle-unpair { display:inline-flex !important; }
.ic3-puzzle-row.is-locked .ic3-puzzle-unpair,.ic3-puzzle-row.is-saved-pair .ic3-puzzle-unpair { display:inline-flex !important; }
@keyframes ic3-question-in { from { opacity:0; transform:translateY(15px) scale(.99); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes ic3-answer-pulse { 40% { box-shadow:0 0 0 5px #7ba9ef38; } }
@keyframes ic3-hint-in { from { opacity:0; } to { opacity:1; } }
@keyframes ic3-point-pop { from { opacity:0; transform:translate(-50%,-50%) scale(.45); } to { opacity:1; transform:translate(-50%,-50%) scale(1); } }
@keyframes ic3-point-pulse { 50% { box-shadow:0 0 0 8px #f9731622,0 4px 14px #9f123955; } }
@keyframes ic3-match-snap { 0% { transform:scale(.985); } 42% { transform:scale(1.025); box-shadow:0 0 0 7px #3978d138,0 12px 26px #145b963d; } 100% { transform:scale(1); } }
@media(max-width:720px) {
  .ic3-match-headings,.ic3-match-board { column-gap:30px; }
  .ic3-match-board .ic3-match-definition::after { right:-15px; width:15px; }
  .ic3-match-board .ic3-match-definition.is-paired { width:calc(100% + 15px); margin-right:-15px; }
  .ic3-match-board .ic3-match-choice::before { width:15px; }
  .ic3-match-board .ic3-match-choice.is-paired { width:calc(100% + 15px); margin-left:-15px; padding-left:30px; }
  .ic3-puzzle-row.is-paired { width:100%; grid-template-columns:minmax(0,1fr); gap:6px; }
  .ic3-puzzle-row.is-paired .ic3-puzzle-piece-a { border-right:1px solid #bfd2ed; }
  .ic3-puzzle-row.is-paired .ic3-puzzle-piece-a::after { display:none; }
  .ic3-puzzle-row.is-paired .ic3-puzzle-joined { margin-left:12px; width:calc(100% - 12px); }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
.ic3-matching-exercise { display:grid; gap:12px; }
.ic3-matching-exercise .ic3-match-board { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:44px; row-gap:12px; }
.ic3-matching-exercise .ic3-match-board .ic3-match-definition { min-height:78px; padding:14px 15px; border:1px solid #c8d9f0; border-radius:14px; color:#24476f; background:linear-gradient(145deg,#f8fbff,#e9f2ff); box-shadow:0 4px 12px #234e7910; font-size:14px; font-weight:650; line-height:1.5; }
.ic3-matching-exercise .ic3-match-board .ic3-match-choice { min-height:78px; padding:14px 18px 14px 44px; border:1px solid #ecd6b3; border-radius:14px; color:#68491f; background:linear-gradient(145deg,#fffdf8,#fff4df); box-shadow:0 4px 12px #805a2410; font-size:14px; font-weight:650; line-height:1.5; }
.ic3-matching-exercise .ic3-match-board .ic3-match-choice:not(.is-paired)::before { position:absolute; z-index:1; top:50%; left:13px; display:grid !important; width:20px; height:24px; place-items:center; border:0; border-radius:5px; color:#b67a2c; background:transparent; box-shadow:none; content:"⠿"; font-size:20px; font-weight:800; transform:translateY(-50%); }
.ic3-matching-exercise .ic3-match-board .ic3-match-definition.is-paired { border-color:#6bbf98; color:#185c42; background:linear-gradient(145deg,#effbf5,#e2f6eb); box-shadow:0 5px 14px #23774c18; }
.ic3-matching-exercise .ic3-match-board .ic3-match-definition.is-paired::before { border-color:#91d0ae; color:#fff; background:#299366; box-shadow:none; }
.ic3-matching-exercise .ic3-match-board .ic3-match-choice.is-paired { border-color:#6bbf98; color:#185c42; background:linear-gradient(145deg,#effbf5,#e2f6eb); box-shadow:0 5px 14px #23774c18; }
.ic3-matching-exercise .ic3-match-board .ic3-match-definition.is-over { border:2px solid #3379c7; outline:4px solid #3379c726; color:#174d87; background:linear-gradient(135deg,#eaf4ff,#d9eaff); box-shadow:0 10px 22px #245b9630; }
.ic3-matching-exercise .ic3-match-board .ic3-match-choice.is-selected { border:2px solid #d38b31; outline:3px solid #e9ae522e; color:#70440d; background:linear-gradient(135deg,#fff6e5,#ffe9c2); box-shadow:0 9px 20px #ad6d202b; }
.ic3-match-item-image { display:block; max-width:min(100%, 220px); max-height:120px; object-fit:contain; border-radius:8px; }
.ic3-match-definition:has(.ic3-match-item-image), .ic3-match-choice:has(.ic3-match-item-image) { gap:10px; }
.ic3-matching-exercise .ic3-match-board .ic3-match-choice.is-dragging { border-color:#c98225; color:#633b0a; background:linear-gradient(135deg,#fff2d8,#ffdfaa); box-shadow:0 18px 38px #4c351c38,0 0 0 4px #e4a74838; }
.ic3-matching-exercise .ic3-interaction-hint { display:flex; align-items:flex-start; gap:9px; margin:0; padding:11px 13px; border:1px solid #d5e4f5; border-radius:12px; color:#425c79; background:#f5f9ff; font-size:12px; line-height:1.55; }
.ic3-matching-exercise .ic3-interaction-hint::before { display:grid; width:21px; height:21px; flex:0 0 21px; place-items:center; border-radius:50%; color:#fff; background:#4b79b7; content:"i"; font-size:12px; font-style:normal; font-weight:850; }
@media(max-width:720px) {
  .ic3-matching-exercise { gap:9px; }
  .ic3-matching-exercise .ic3-match-board { column-gap:30px; row-gap:10px; }
  .ic3-matching-exercise .ic3-match-board .ic3-match-definition,.ic3-matching-exercise .ic3-match-board .ic3-match-choice { min-height:72px; padding-top:11px; padding-bottom:11px; font-size:12px; }
  .ic3-matching-exercise .ic3-match-board .ic3-match-choice { padding-left:34px; }
  .ic3-matching-exercise .ic3-match-board .ic3-match-choice:not(.is-paired)::before { left:8px; }
  .ic3-matching-exercise .ic3-interaction-hint { padding:9px 10px; font-size:11px; }
}
.ic3-question-catalog-toggle { margin:8px 0 12px; }
.ic3-question-navigator { max-height:min(56vh,480px); margin:0 0 16px; overflow:auto; border:1px solid #dbe4f0; border-radius:13px; background:#fff; box-shadow:0 10px 28px #1b355313; animation:ic3-question-in .2s ease both; }
.ic3-question-catalog-table-wrap { overflow-x:auto; }
.ic3-question-catalog-table { width:100%; border-collapse:collapse; text-align:left; }
.ic3-question-catalog-table th,.ic3-question-catalog-table td { padding:10px 12px; border-bottom:1px solid #e8eef5; vertical-align:top; }
.ic3-question-catalog-table thead { position:sticky; top:0; z-index:1; color:#526b86; background:#f4f7fb; font-size:12px; }
.ic3-question-catalog-table tbody tr:last-child th,.ic3-question-catalog-table tbody tr:last-child td { border-bottom:0; }
.ic3-question-catalog-table tbody tr.is-current { background:#eff6ff; }
.ic3-question-catalog-table tbody tr.is-answered .ic3-question-catalog-status { color:#12683c; background:#e8f7ee; }
.ic3-question-catalog-table tbody tr:not(.is-answered) .ic3-question-catalog-status { color:#8a4b0f; background:#fff5df; }
.ic3-question-catalog-table tbody tr.is-correct .ic3-question-catalog-status { color:#11663b; background:#dcf7e7; }
.ic3-question-catalog-table tbody tr.is-incorrect .ic3-question-catalog-status { color:#a52d3a; background:#ffe7e8; }
.ic3-question-catalog-table th:first-child,.ic3-question-catalog-table td:first-child { width:78px; white-space:nowrap; }
.ic3-question-catalog-table th:nth-last-child(2),.ic3-question-catalog-table td:nth-last-child(2) { width:132px; white-space:nowrap; }
.ic3-question-catalog-table th:last-child,.ic3-question-catalog-table td:last-child { width:84px; white-space:nowrap; text-align:center; }
.ic3-question-catalog-prompt { min-width:180px; max-width:540px; line-height:1.45; overflow-wrap:anywhere; }
.ic3-question-catalog-status { display:inline-flex; justify-content:center; min-width:82px; padding:4px 8px; border-radius:999px; font-size:12px; font-weight:800; white-space:nowrap; }
.ic3-question-catalog-go { padding:6px 10px; border:1px solid #cbd9ea; border-radius:8px; color:#245ba2; background:#fff; font-weight:700; white-space:nowrap; }
.ic3-question-catalog-go:hover,.ic3-question-catalog-go:focus-visible { border-color:#6094e5; background:#f1f6ff; outline:none; }
.ic3-question-catalog-toggle[aria-expanded="true"] { border-color:#6094e5; box-shadow:0 0 0 3px #3978d11c; }
.ic3-question-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:12px 0; }
.ic3-question-controls span { font-weight:700; }
.ic3-question-list > [hidden] { display:none !important; }
.ic3-exam-progress { display:inline-flex; align-items:center; gap:6px; margin:6px 0 0; padding:7px 12px; border:1px solid #c9ddfa; border-radius:999px; color:#285493; background:linear-gradient(120deg,#edf5ff,#f2eaff); font-size:13px; font-weight:800; cursor:pointer; transition:transform .18s ease,box-shadow .18s ease,background .18s ease; }
.ic3-exam-progress::after { color:#8555c8; content:""; }
.ic3-exam-progress:hover,.ic3-exam-progress:focus-visible { transform:translateY(-2px); background:linear-gradient(120deg,#dff1ff,#efe2ff); box-shadow:0 7px 18px #5965f22b; outline:3px solid #7c5ce52b; }
.ic3-exam-progress[aria-expanded="true"] { border-color:#9a82e6; }
.ic3-exam-progress[aria-expanded="true"]::after { content:"▲"; }
.ic3-exam-progress[aria-expanded="false"]::after { content:"▼"; }
.ic3-page button:not(:disabled) { transition:transform .16s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease; }
.ic3-page button:not(:disabled):active { transform:scale(.97); }
.ic3-panel-entering { animation:ic3-panel-pop .48s cubic-bezier(.2,.8,.2,1) both; }
.ic3-panel-entering::before { pointer-events:none; }
.ic3-panel.has-student-feedback,.ic3-student-option.has-student-feedback { position:relative; }
.ic3-panel.has-student-feedback::after,.ic3-student-option.has-student-feedback::after { position:absolute; z-index:5; top:12px; right:18px; pointer-events:none; content:attr(data-feedback); font-size:26px; animation:ic3-feedback-burst .82s ease-out both; }
.ic3-student-option.is-confirming-student { animation:ic3-student-pick .42s cubic-bezier(.2,.8,.2,1) both; }
.ic3-confirm-check input { accent-color:#16a34a; }
.ic3-confirm-check:has(input:checked) { color:#147344; }
.ic3-question-card.has-student-feedback { position:relative; }
.ic3-question-card.has-student-feedback::after { position:absolute; top:10px; right:16px; pointer-events:none; content:attr(data-feedback); font-size:24px; animation:ic3-feedback-burst .82s ease-out both; }
.ic3-question-card.is-question-entering { animation:ic3-question-enter .34s cubic-bezier(.2,.8,.2,1) both; }
.ic3-question-card.is-answering { border-color:#a78bfa; box-shadow:0 0 0 4px #a78bfa25,0 12px 28px #1b355315; }
.ic3-answer-option:has(input:checked) { border-color:#8b6be8; background:linear-gradient(110deg,#f2efff,#eff7ff); box-shadow:0 5px 14px #7c5ce522; }
.ic3-question-catalog-table thead { background:linear-gradient(100deg,#eff6ff,#f4efff); }
.ic3-question-catalog-table tbody tr:nth-child(even) { background:#fbfcff; }
.ic3-question-catalog-table tbody tr.is-current { background:linear-gradient(100deg,#eef6ff,#f3efff); }
.ic3-question-catalog-status { transition:transform .2s ease,background .2s ease; }
.ic3-question-catalog-table tbody tr.is-answered .ic3-question-catalog-status { animation:ic3-status-pop .32s ease both; }
.ic3-header { position:relative; isolation:isolate; }
.ic3-header::after { position:absolute; z-index:-1; top:8px; right:clamp(12px,5vw,48px); color:#ffffff8a; content:"✦  ✨  ★"; font-size:clamp(23px,4vw,38px); letter-spacing:10px; animation:ic3-stars-float 3.2s ease-in-out infinite alternate; }
#ic3ConfirmPanel h2::before { margin-right:7px; content:"🌈"; }
#ic3StartButton.is-starting { opacity:.78; cursor:progress; }
.ic3-question-controls .ic3-button.secondary:not(:disabled) { color:#5862a6; }
.ic3-question-controls .ic3-button.primary { background:linear-gradient(115deg,#3978d1,#7456cf,#b14fb1); }
@keyframes ic3-stars-float { from { opacity:.48; transform:translateY(3px) rotate(-3deg); } to { opacity:.92; transform:translateY(-4px) rotate(3deg); } }
.ic3-question-controls { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; }
.ic3-question-controls #ic3PreviousQuestion { justify-self:start; }
.ic3-question-controls #ic3NextQuestion { justify-self:end; }
.ic3-exam-progress { min-width:140px; justify-content:center; margin:0; }
.ic3-exam-progress::after { content:none !important; }
.ic3-exam-progress[aria-expanded="true"] { color:#6244b8; background:#eee9ff; }
.ic3-exam-progress::after { margin-left:3px; content:"⌄" !important; font-size:17px; }
.ic3-exam-progress[aria-expanded="true"]::after { content:"⌃" !important; }
.ic3-question-navigator:not([hidden]) { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; max-height:none; margin:0; padding:20px; overflow:auto; border:0; border-radius:0; background:#14243a82; box-shadow:none; animation:ic3-catalog-backdrop-in .18s ease both; }
.ic3-question-catalog-dialog { width:min(800px,100%); max-height:min(82vh,720px); overflow:hidden; border:1px solid #e0e8f2; border-radius:20px; background:#fff; box-shadow:0 28px 90px #10233d55; animation:ic3-catalog-card-in .24s cubic-bezier(.2,.8,.2,1) both; }
.ic3-question-catalog-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:18px 22px; background:linear-gradient(115deg,#eaf4ff,#f3eaff); }
.ic3-question-catalog-heading h2 { margin:0; color:#284878; font-size:20px; }
.ic3-question-catalog-legend { display:flex; flex-wrap:wrap; gap:7px; padding:10px 18px 0; }
.ic3-question-catalog-legend span { padding:4px 8px; border-radius:999px; font-size:11px; font-weight:800; white-space:nowrap; }
.ic3-question-catalog-legend .is-pending { color:#8a4b0f; background:#fff5df; }
.ic3-question-catalog-legend .is-done { color:#365b82; background:#eaf2fb; }
.ic3-question-catalog-legend .is-correct { color:#11663b; background:#dcf7e7; }
.ic3-question-catalog-legend .is-incorrect { color:#a52d3a; background:#ffe7e8; }
.ic3-question-catalog-close { padding:8px 12px; border:1px solid #d0d8e8; border-radius:10px; color:#435875; background:#ffffffd9; font-weight:700; }
.ic3-question-catalog-dialog .ic3-question-catalog-table-wrap { max-height:calc(min(82vh,720px) - 112px); overflow:auto; }
.ic3-question-catalog-dialog .ic3-question-catalog-table thead { position:sticky; top:0; }
.ic3-question-catalog-table tbody tr.is-current > *:first-child { color:#6047b7; }
.ic3-question-catalog-dialog .ic3-question-catalog-prompt { max-width:none; }
html.ic3-question-catalog-open { overflow:hidden; scrollbar-gutter:stable; }
.ic3-confirm-check { position:relative; padding:12px 14px; border:1px solid #dce5f0; border-radius:13px; background:#f8faff; transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease; }
.ic3-confirm-check.is-name-confirmed { border-color:#89d6ad; color:#147344; background:#f0fcf5; box-shadow:0 0 0 3px #16a34a12; animation:ic3-checkbox-tick .24s ease-out; }
.ic3-confirm-check.has-student-feedback::after { position:absolute; right:12px; top:7px; color:#16a34a; content:attr(data-feedback); font-size:17px; font-weight:900; animation:ic3-tick-feedback .34s ease-out both; }
.ic3-question-card { position:relative; perspective:1100px; transform-style:preserve-3d; }
.ic3-question-card.has-page-flipped { animation:none; }
.ic3-question-card.is-answering { animation:ic3-answer-soft .22s ease-out; }
.ic3-answer-option:has(input:checked) { animation:ic3-answer-choice .18s ease-out; }
.ic3-page-turn-decoration { position:absolute; top:7px; right:18px; pointer-events:none; opacity:0; font-size:16px; }
.ic3-question-card.is-page-turn-forward { transform-origin:left center; animation:ic3-page-flip-forward .3s cubic-bezier(.2,.75,.3,1) both !important; }
.ic3-question-card.is-page-turn-backward { transform-origin:right center; animation:ic3-page-flip-backward .3s cubic-bezier(.2,.75,.3,1) both !important; }
.ic3-question-card.is-page-turn-forward .ic3-page-turn-decoration { animation:ic3-book-spark .34s ease-out both; }
.ic3-question-card.is-page-turn-backward .ic3-page-turn-decoration { animation:ic3-book-spark-back .34s ease-out both; }
@keyframes ic3-catalog-backdrop-in { from { opacity:0; } to { opacity:1; } }
@keyframes ic3-catalog-card-in { from { opacity:0; transform:translateY(10px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes ic3-checkbox-tick { 45% { transform:scale(1.012); } to { transform:scale(1); } }
@keyframes ic3-tick-feedback { from { opacity:0; transform:translateY(3px) scale(.7); } 55% { opacity:1; transform:translateY(-2px) scale(1.1); } to { opacity:0; transform:translateY(-4px) scale(1); } }
@keyframes ic3-answer-soft { 45% { box-shadow:0 0 0 3px #8b6be81a,0 7px 18px #1b35530d; } to { box-shadow:0 7px 20px #1b35530a; } }
@keyframes ic3-answer-choice { 50% { transform:scale(1.006); } to { transform:scale(1); } }
@keyframes ic3-page-flip-forward { 0% { opacity:.88; transform:rotateY(-8deg) translateX(8px); } 100% { opacity:1; transform:rotateY(0) translateX(0); } }
@keyframes ic3-page-flip-backward { 0% { opacity:.88; transform:rotateY(8deg) translateX(-8px); } 100% { opacity:1; transform:rotateY(0) translateX(0); } }
@keyframes ic3-book-spark { 0% { opacity:0; transform:translate(8px,5px) rotate(15deg) scale(.7); } 35% { opacity:.85; transform:translate(-1px,-4px) rotate(-8deg) scale(1.15); } 100% { opacity:0; transform:translate(-10px,-8px) rotate(-14deg) scale(.85); } }
@keyframes ic3-book-spark-back { 0% { opacity:0; transform:translate(-8px,5px) rotate(-15deg) scale(.7); } 35% { opacity:.85; transform:translate(1px,-4px) rotate(8deg) scale(1.15); } 100% { opacity:0; transform:translate(10px,-8px) rotate(14deg) scale(.85); } }
@media(max-width:600px) {
  .ic3-question-catalog-table th,.ic3-question-catalog-table td { padding:9px 8px; }
  .ic3-exam-progress { max-width:100%; font-size:12px; }
  .ic3-question-navigator:not([hidden]) { padding:12px; }
  .ic3-question-catalog-dialog { border-radius:15px; }
  .ic3-question-catalog-heading { padding:14px; }
  .ic3-question-catalog-heading h2 { font-size:17px; }
  .ic3-question-catalog-table { min-width:560px; }
}
.ic3-training-dialog { position:fixed; z-index:1100; inset:0; display:grid; place-items:center; padding:18px; background:#0f1e33a8; backdrop-filter:blur(5px); animation:ic3-catalog-backdrop-in .18s ease both; }
.ic3-training-dialog[hidden] { display:none !important; }
.ic3-training-dialog-card { display:grid; gap:9px; width:min(620px,100%); max-height:min(88vh,820px); overflow:auto; padding:clamp(20px,4vw,32px); border:1px solid #dbe5ef; border-radius:22px; background:#fff; color:#20334b; box-shadow:0 28px 90px #08172d66; animation:ic3-catalog-card-in .24s cubic-bezier(.2,.8,.2,1) both; }
.ic3-training-dialog.is-correct .ic3-training-dialog-card { border-top:6px solid #22a06b; }
.ic3-training-dialog:not(.is-correct) .ic3-training-dialog-card { border-top:6px solid #e77b62; }
.ic3-training-dialog-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:14px; background:#eff6ff; color:#5648b7; font-size:25px; }
.ic3-training-dialog-card h2 { margin:0; color:#245fa8; font-size:clamp(21px,4vw,28px); }
.ic3-training-dialog.is-correct .ic3-training-dialog-card h2 { color:#168353; }
.ic3-training-dialog-card > p { margin:0; color:#61748b; line-height:1.55; }
.ic3-training-dialog-review { max-height:min(42vh,390px); overflow:auto; }
.ic3-training-dialog-review .ic3-review { margin:0; }
.ic3-training-dialog-review .ic3-review h3 { margin:0 0 8px; font-size:15px; }
.ic3-training-dialog-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; padding-top:5px; }
.ic3-training-dialog-actions .ic3-button[hidden] { display:none !important; }
.ic3-training-dialog-actions .ic3-button:disabled { opacity:.55; cursor:not-allowed; }
@media (max-width: 520px) { .ic3-training-dialog { padding:10px; } .ic3-training-dialog-card { border-radius:17px; } .ic3-training-dialog-actions { display:grid; grid-template-columns:1fr; } .ic3-training-dialog-actions .ic3-button { width:100%; } }
.ic3-mode-help { grid-column:1/-1; margin:0; color:var(--text-light); font-size:12px; }
.ic3-saved-set-subject-group { margin:14px 0; padding:12px; border:1px solid var(--border); border-radius:12px; background:var(--card); }
.ic3-saved-set-subject-group > h4 { margin:0 0 8px; color:var(--primary-dark); }
@keyframes ic3-panel-pop { from { opacity:0; transform:translateY(15px) scale(.985); } 65% { opacity:1; transform:translateY(-2px) scale(1.005); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes ic3-student-pick { 35% { transform:scale(1.035) rotate(-.5deg); } 70% { transform:scale(.99) rotate(.3deg); } to { transform:scale(1); } }
@keyframes ic3-feedback-burst { 0% { opacity:0; transform:translateY(10px) scale(.5) rotate(-15deg); } 35% { opacity:1; transform:translateY(-7px) scale(1.25) rotate(8deg); } 100% { opacity:0; transform:translateY(-22px) scale(.85) rotate(14deg); } }
@keyframes ic3-question-enter { from { opacity:.45; transform:translateY(8px) scale(.99); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes ic3-status-pop { 45% { transform:scale(1.12); } to { transform:scale(1); } }
@media(prefers-reduced-motion:reduce) {
  .ic3-page *,.ic3-page *::before,.ic3-page *::after,.ic3-question-navigator,.ic3-question-navigator * {
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}
.ic3-exam-active .ic3-page { margin-top:10px; margin-bottom:18px; }
.ic3-exam-active { display:flow-root; }
.ic3-exam-active .ic3-header { padding-top:14px; padding-bottom:14px; }
.ic3-exam-active .ic3-panel { margin-top:10px; padding:clamp(13px,2vw,20px); }
.ic3-exam-active .ic3-exam-heading { padding-bottom:10px; }
.ic3-completion-progress { margin-top:11px; }
.ic3-completion-progress-label { display:flex; justify-content:space-between; gap:12px; margin-bottom:6px; color:#526b86; font-size:12px; font-weight:750; }
.ic3-completion-progress-label span:last-child { color:#315c88; font-variant-numeric:tabular-nums; }
.ic3-completion-progress-track { height:9px; overflow:hidden; border-radius:999px; background:#e8edf5; box-shadow:inset 0 1px 2px #243b5b16; }
.ic3-completion-progress-track > span { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#19a879,#3c9de0,#8060dc); transition:width .35s cubic-bezier(.2,.75,.3,1); }
.ic3-exam-active .ic3-question-list { gap:12px; margin:13px 0 16px; perspective:1500px; perspective-origin:center; }
.ic3-exam-active .ic3-question-card { padding:clamp(14px,2.4vw,20px); }
.ic3-exam-active .ic3-question-prompt { margin-bottom:12px; line-height:1.48; }
.ic3-exam-active .ic3-answer-options { gap:7px; }
.ic3-exam-active .ic3-answer-option { padding:10px 13px; }
.ic3-exam-active .ic3-submit-row { gap:12px; padding-top:12px; }
.ic3-confirm-check { position:relative; display:flex; align-items:center; min-height:48px; gap:0; margin:17px 0; padding:5px 38px 5px 0; border:0; border-radius:0; background:transparent; color:#304968; font-weight:700; cursor:pointer; transition:color .2s ease; }
.ic3-confirm-check input { position:absolute; z-index:2; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; }
.ic3-confirm-check-copy { position:relative; display:flex; min-height:36px; align-items:center; padding-left:48px; line-height:1.45; pointer-events:none; }
.ic3-confirm-check-copy::before { position:absolute; left:0; display:grid; width:34px; height:34px; place-items:center; border:2px solid #91a7c2; border-radius:11px; background:linear-gradient(145deg,#fff,#edf4ff); box-shadow:0 3px 8px #28466b16; content:""; transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease; }
.ic3-confirm-check-copy::after { position:absolute; left:10px; color:#fff; content:"✓"; font-size:19px; font-weight:900; opacity:0; transform:scale(.5) rotate(-15deg); transition:opacity .16s ease,transform .2s cubic-bezier(.2,.8,.2,1); }
.ic3-confirm-check input:checked + .ic3-confirm-check-copy::before { border-color:#1caa73; background:linear-gradient(145deg,#23be84,#16875f); box-shadow:0 4px 12px #15966b4d,0 0 0 4px #22b9811c; transform:rotate(-5deg) scale(1.04); }
.ic3-confirm-check input:checked + .ic3-confirm-check-copy::after { opacity:1; transform:scale(1) rotate(0); }
.ic3-confirm-check input:focus-visible + .ic3-confirm-check-copy::before { outline:3px solid #4c8ce855; outline-offset:3px; }
.ic3-confirm-check.is-name-confirmed { color:#147344; background:transparent; box-shadow:none; animation:none; }
.ic3-confirm-check-spark { position:absolute; top:-8px; left:12px; pointer-events:none; opacity:0; font-size:22px; }
.ic3-confirm-check.has-student-feedback .ic3-confirm-check-spark { animation:ic3-checkbox-spark .56s ease-out both; }
.ic3-question-controls { margin:9px 0; }
.ic3-exam-progress::after,.ic3-exam-progress[aria-expanded="true"]::after { display:none !important; content:none !important; }
.ic3-question-navigator:not([hidden]) { overscroll-behavior:contain; animation:ic3-catalog-backdrop-in .24s ease-out both; }
.ic3-question-catalog-dialog { box-shadow:0 18px 54px #10233d38; animation:ic3-catalog-card-in .28s cubic-bezier(.2,.75,.25,1) both; will-change:transform,opacity; }
.ic3-question-catalog-table-wrap { overscroll-behavior:contain; }
.ic3-question-card { backface-visibility:hidden; transform-style:preserve-3d; }
.ic3-question-card.is-page-turn-forward { transform-origin:left center; animation:ic3-page-flip-forward .42s cubic-bezier(.22,.61,.36,1) both !important; }
.ic3-question-card.is-page-turn-backward { transform-origin:right center; animation:ic3-page-flip-backward .42s cubic-bezier(.22,.61,.36,1) both !important; }
@keyframes ic3-catalog-backdrop-in { from { opacity:0; } to { opacity:1; } }
@keyframes ic3-catalog-card-in { from { opacity:0; transform:translate3d(0,12px,0) scale(.985); } to { opacity:1; transform:translate3d(0,0,0) scale(1); } }
@keyframes ic3-checkbox-spark { 0% { opacity:0; transform:translate3d(0,8px,0) scale(.5) rotate(-14deg); } 35% { opacity:1; transform:translate3d(0,-8px,0) scale(1.2) rotate(9deg); } 100% { opacity:0; transform:translate3d(0,-25px,0) scale(.9) rotate(16deg); } }
@keyframes ic3-page-flip-forward { 0% { opacity:.96; transform:rotateY(-14deg) translate3d(4px,0,0); } 70% { opacity:1; transform:rotateY(2deg) translate3d(-1px,0,0); } 100% { opacity:1; transform:rotateY(0) translate3d(0,0,0); } }
@keyframes ic3-page-flip-backward { 0% { opacity:.96; transform:rotateY(14deg) translate3d(-4px,0,0); } 70% { opacity:1; transform:rotateY(-2deg) translate3d(1px,0,0); } 100% { opacity:1; transform:rotateY(0) translate3d(0,0,0); } }
@media(max-height:760px) and (min-width:721px) {
  .ic3-exam-active .ic3-page { margin-top:4px; margin-bottom:0; }
  .ic3-exam-active .ic3-header { padding-top:10px; padding-bottom:10px; }
  .ic3-exam-active .ic3-header h1 { margin-top:5px; font-size:25px; }
  .ic3-exam-active .ic3-panel { padding:12px 16px; }
  .ic3-exam-active .ic3-question-list { margin:9px 0 11px; }
}
@media(max-width:600px) {
  .ic3-confirm-check { align-items:flex-start; }
  .ic3-confirm-check-copy { padding-left:44px; }
  .ic3-exam-active .ic3-page { margin-top:6px; margin-bottom:12px; }
  .ic3-exam-active .ic3-header { padding:12px 15px; }
  .ic3-exam-active .ic3-panel { padding:12px; }
  .ic3-exam-active .ic3-question-controls { gap:6px; }
  .ic3-exam-active .ic3-question-controls .ic3-button { min-height:40px; padding:8px 10px; }
}
.ic3-training-dialog { padding:clamp(8px,2vh,16px); }
.ic3-training-dialog-card { grid-template-rows:auto auto auto minmax(0,1fr) auto; gap:7px; width:min(960px,100%); max-height:min(96vh,980px); max-height:min(96dvh,980px); overflow:hidden; padding:clamp(14px,3vw,24px); }
.ic3-training-dialog-review { min-width:0; min-height:0; max-height:min(74vh,720px); max-height:min(74dvh,720px); overflow:auto; overscroll-behavior:contain; }
.ic3-training-dialog-review .ic3-review-item { margin:5px 0; padding:9px 11px; }
.ic3-training-dialog-review .ic3-review-detail { padding-top:6px; }
.ic3-training-dialog-review .ic3-review-options { gap:5px; margin-top:7px; }
.ic3-training-dialog-review .ic3-review-option,.ic3-training-dialog-review .ic3-review-single-correct,.ic3-training-dialog-review .ic3-review-single-wrong { padding:6px 9px; }
.ic3-training-dialog-review .ic3-review-truth-table { margin-top:7px; }
.ic3-training-dialog-review .ic3-review-truth-table > strong,.ic3-training-dialog-review .ic3-review-truth-table > span { min-height:34px; padding:6px; }
.ic3-training-dialog-actions { position:relative; z-index:1; padding-top:8px; background:#fff; }
@media (max-height:620px) {
  .ic3-training-dialog-card { gap:5px; padding:12px 16px; }
  .ic3-training-dialog-review { max-height:min(28vh,190px); max-height:min(28dvh,190px); }
}
.ic3-training-dialog-review img,.ic3-training-dialog-review video { display:block; width:auto; max-width:100%; max-height:min(48vh,460px); max-height:min(48dvh,460px); margin-inline:auto; object-fit:contain; }
.ic3-training-dialog-review .ic3-review-hotspot-image { position:relative; display:block; width:fit-content; max-width:100%; max-height:min(48vh,460px); max-height:min(48dvh,460px); margin:8px auto 0; }
.ic3-training-dialog-review .ic3-review-hotspot-image img { display:block; width:auto; height:auto; max-width:100%; max-height:min(48vh,460px); max-height:min(48dvh,460px); margin:0; }
.ic3-training-dialog:not(.is-correct) .ic3-training-dialog-card { border-color:#f1b5b8; border-top-color:#dc3545; background:linear-gradient(180deg,#fff7f7,#fff 38%); }
.ic3-training-dialog:not(.is-correct) .ic3-training-dialog-card h2 { color:#c6283d; }
.ic3-training-dialog:not(.is-correct) .ic3-training-dialog-icon { color:#b42332; background:#ffe4e6; }
.ic3-training-dialog-icon { font-size:30px; font-weight:900; }
.ic3-training-dialog.is-correct .ic3-training-dialog-icon { color:#fff; background:linear-gradient(145deg,#22a06b,#13834f); box-shadow:0 5px 14px #16835335; }
.ic3-training-dialog:not(.is-correct) .ic3-training-dialog-icon { color:#fff; background:linear-gradient(145deg,#ef5964,#c6283d); box-shadow:0 5px 14px #c6283d35; }
.ic3-hotspot-image { display:grid; place-items:center; width:fit-content; max-width:100%; max-height:min(52vh,500px); max-height:min(52dvh,500px); }
.ic3-hotspot-image img { width:auto; max-width:100%; max-height:min(52vh,500px); max-height:min(52dvh,500px); margin:auto; object-fit:contain; }
.ic3-sequence-media { max-height:min(52vh,500px); max-height:min(52dvh,500px); }
.ic3-sequence-media img,.ic3-sequence-media video { width:auto; max-width:100%; max-height:min(52vh,500px); max-height:min(52dvh,500px); margin:auto; }
.ic3-question-navigator:not([hidden]) { padding:clamp(10px,2vw,24px); }
.ic3-question-catalog-dialog { width:min(1180px,100%); max-height:min(90vh,880px); max-height:min(90dvh,880px); border-color:#d8e4f4; border-radius:22px; }
.ic3-question-catalog-legend { display:none; }
.ic3-question-catalog-heading { padding:18px clamp(16px,3vw,28px); background:linear-gradient(115deg,#e5f2ff 0%,#f0ecff 55%,#faefff 100%); }
.ic3-question-catalog-heading h2 { color:#263f72; letter-spacing:.01em; }
.ic3-question-catalog-dialog .ic3-question-catalog-table-wrap { max-height:calc(min(90vh,880px) - 76px); max-height:calc(min(90dvh,880px) - 76px); }
.ic3-question-catalog-table { table-layout:fixed; }
.ic3-question-catalog-table th:first-child,.ic3-question-catalog-table td:first-child { width:10%; }
.ic3-question-catalog-table th:nth-last-child(2),.ic3-question-catalog-table td:nth-last-child(2) { width:15%; }
.ic3-question-catalog-table th:last-child,.ic3-question-catalog-table td:last-child { width:9%; }
.ic3-question-catalog-prompt { display:-webkit-box; min-width:0; overflow:hidden; color:#34445e; font-size:14px; line-height:1.45; overflow-wrap:anywhere; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.ic3-question-catalog-table tbody tr { transition:background .16s ease; }
.ic3-question-catalog-table tbody tr:hover { background:#f1f6ff; }
.ic3-question-catalog-table tbody tr.is-current { box-shadow:inset 4px 0 #7655d7; }
.ic3-question-catalog-status { min-width:88px; padding:5px 10px; box-shadow:inset 0 0 0 1px #ffffff66; }
@media (max-width:600px) {
  .ic3-hotspot-image,.ic3-sequence-media { max-height:min(44vh,360px); max-height:min(44dvh,360px); }
  .ic3-hotspot-image img,.ic3-sequence-media img,.ic3-sequence-media video { max-height:min(44vh,360px); max-height:min(44dvh,360px); }
  .ic3-question-catalog-dialog { width:100%; max-height:92vh; max-height:92dvh; border-radius:16px; }
  .ic3-question-catalog-dialog .ic3-question-catalog-table-wrap { max-height:calc(92vh - 64px); max-height:calc(92dvh - 64px); }
  .ic3-question-catalog-table { min-width:680px; }
}
.ic3-hotspot-zoom-button { position:absolute; z-index:5; top:8px; right:8px; padding:8px 11px; border:1px solid #ffffffb8; border-radius:10px; color:#163452; background:#ffffffed; box-shadow:0 4px 14px #10233d30; font-size:12px; font-weight:800; white-space:nowrap; cursor:pointer; }
.ic3-hotspot-zoom-button:hover,.ic3-hotspot-zoom-button:focus-visible { border-color:#72a9f4; background:#fff; outline:3px solid #5d96e533; }
.ic3-hotspot-zoom-overlay { position:fixed; z-index:1300; inset:0; display:grid; place-items:center; padding:5vh 3vw; background:#08172ddd; backdrop-filter:blur(5px); }
.ic3-hotspot-zoom-overlay .ic3-hotspot-image { width:fit-content; max-width:94vw; max-height:88vh; max-height:88dvh; overflow:visible; border:1px solid #ffffff45; border-radius:14px; box-shadow:0 24px 80px #0008; }
.ic3-hotspot-zoom-overlay .ic3-hotspot-image img { max-width:94vw; max-height:88vh; max-height:88dvh; border-radius:13px; }
.ic3-hotspot-zoom-close { position:absolute; z-index:2; top:max(12px,env(safe-area-inset-top)); right:max(12px,env(safe-area-inset-right)); min-height:42px; padding:9px 15px; border:1px solid #ffffff70; border-radius:11px; color:#17324d; background:#fff; box-shadow:0 6px 20px #0004; font-weight:800; cursor:pointer; }
.ic3-hotspot-zoom-close:focus-visible { outline:3px solid #93c5fd; outline-offset:3px; }
html.ic3-hotspot-zoom-open { overflow:hidden; }
.ic3-review-image-wrap { position:relative; display:inline-grid; max-width:100%; vertical-align:middle; }
.ic3-review-image-zoom-button { position:absolute; z-index:4; top:7px; right:7px; padding:6px 9px; border:1px solid #ffffffc9; border-radius:9px; color:#17324d; background:#fffffff0; box-shadow:0 3px 10px #10233d30; font-size:11px; font-weight:800; cursor:pointer; }
.ic3-review-image-zoom-button:hover,.ic3-review-image-zoom-button:focus-visible { border-color:#72a9f4; outline:3px solid #5d96e533; }
.ic3-review-image-zoom-overlay { position:fixed; z-index:1400; inset:0; display:grid; place-items:center; padding:5vh 3vw; background:#08172ddd; backdrop-filter:blur(5px); }
.ic3-review-image-zoom-close { position:absolute; z-index:3; top:max(12px,env(safe-area-inset-top)); right:max(12px,env(safe-area-inset-right)); min-height:42px; padding:9px 15px; border:1px solid #ffffff70; border-radius:11px; color:#17324d; background:#fff; box-shadow:0 6px 20px #0004; font-weight:800; cursor:pointer; }
.ic3-review-image-zoom-overlay .ic3-review-image-wrap.is-zoomed { display:grid; place-items:center; width:fit-content; max-width:94vw; max-height:88vh; max-height:88dvh; padding:8px; border-radius:14px; background:#fff; box-shadow:0 24px 80px #0008; }
.ic3-review-image-zoom-overlay .ic3-review-image-wrap.is-zoomed img { display:block; width:auto; max-width:92vw; max-height:84vh; max-height:84dvh; object-fit:contain; }
.ic3-review-image-zoom-overlay .ic3-review-hotspot-image.is-zoomed { display:block; width:fit-content; max-width:94vw; max-height:88vh; max-height:88dvh; overflow:visible; border:1px solid #ffffff45; border-radius:14px; box-shadow:0 24px 80px #0008; }
.ic3-review-image-zoom-overlay .ic3-review-hotspot-image.is-zoomed img { display:block; width:auto; height:auto; max-width:92vw; max-height:84vh; max-height:84dvh; margin:0; object-fit:contain; }
html.ic3-review-image-zoom-open { overflow:hidden; }
.ic3-review-item > summary { gap:10px; }
.ic3-review-status-icon { display:inline-grid; flex:0 0 28px; place-items:center; width:28px; height:28px; border-radius:50%; font-size:17px; font-weight:900; }
.ic3-review-item.is-correct > summary .ic3-review-status-icon { color:#fff; background:#168353; box-shadow:0 3px 10px #16835335; }
.ic3-review-item.is-wrong > summary .ic3-review-status-icon { color:#fff; background:#c6283d; box-shadow:0 3px 10px #c6283d35; }
.ic3-review-item.is-correct { border-color:#b9e5cc; border-left:5px solid #168353; background:linear-gradient(110deg,#f0fbf4,#fff 72%); }
.ic3-review-item.is-wrong { border-color:#f0c2c6; border-left:5px solid #c6283d; background:linear-gradient(110deg,#fff2f3,#fff 72%); }
.ic3-attempt-history-heading,.ic3-latest-submissions-heading { margin:22px 0 10px; color:#294d76; }
.ic3-attempt-history,.ic3-latest-submissions { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.ic3-attempt-history-item,.ic3-latest-submissions li { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px 14px; padding:10px 13px; border:1px solid #dce7f3; border-radius:12px; background:linear-gradient(110deg,#f5f9ff,#fff); }
.ic3-attempt-history-item strong,.ic3-latest-submissions li strong { color:#294d76; white-space:nowrap; }
.ic3-attempt-history-item span,.ic3-latest-submissions li span { color:#52677f; font-size:13px; }
.ic3-latest-submissions li.is-current-student { border-color:#8db4f0; background:linear-gradient(110deg,#eaf3ff,#f7f2ff); box-shadow:inset 3px 0 #4c82cf; }
@media(max-width:600px) {
  .ic3-attempt-history-item,.ic3-latest-submissions li { align-items:flex-start; flex-direction:column; }
  .ic3-latest-submissions li span { overflow-wrap:anywhere; }
}
