/* Phase 2B. Scoped to question controls; no global clipping or reduced code size. */
.pki-interaction{--ic-ink:#1d304b;--ic-muted:#53667f;--ic-blue:#3f51a7;--ic-soft:#f2f4ff;--ic-line:#ced9ea;--ic-good:#176c49;--ic-bad:#a33c27;min-width:0;margin:16px 0;color:var(--ic-ink);font-size:18px;line-height:1.6}
.pki-interaction *{box-sizing:border-box}.pki-interaction button{font-family:inherit;cursor:pointer;touch-action:manipulation}.pki-interaction button:disabled{cursor:default}.pki-interaction svg{width:20px;height:20px;flex:0 0 20px;display:block}
.pki-interaction :is(button,input,textarea,select):focus-visible{outline:3px solid var(--ic-blue);outline-offset:3px}.pki-interaction .ic-type{font-size:13px;font-weight:800;letter-spacing:.04em;color:var(--ic-blue);margin:0 0 10px}.pki-interaction .ic-help{font-size:15px;line-height:1.65;color:var(--ic-muted);margin:7px 0 14px}.pki-interaction .ic-live{font-size:14px;line-height:1.6;color:var(--ic-muted);min-height:22px;margin:12px 0 8px}
.pki-interaction .ic-prose{display:block;white-space:normal;overflow-wrap:normal;word-break:normal}.pki-interaction .ic-expression{display:block;max-width:100%;min-width:0;white-space:pre!important;overflow-x:auto;overflow-y:hidden;overflow-wrap:normal!important;word-break:normal!important;text-overflow:clip!important;font:500 16px/1.9 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;scrollbar-width:thin;overscroll-behavior-inline:contain;touch-action:pan-x pan-y}
.pki-interaction .ic-code-scroll{display:block;max-width:100%;overflow:auto;white-space:pre;overflow-wrap:normal;word-break:normal;font:500 16px/1.9 ui-monospace,Consolas,"Liberation Mono",monospace;scrollbar-width:thin;overscroll-behavior-inline:contain}.pki-interaction .ic-overflow{border-bottom:2px solid #9eaed5}.pki-interaction .ic-overflow:focus-visible{outline:2px solid var(--ic-blue);outline-offset:2px}
.pki-interaction .ic-tools{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 0}.pki-interaction .ic-tools button,.pki-interaction .ic-confirm{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;min-width:44px;border:1px solid var(--ic-line);border-radius:10px;padding:8px 12px;font-size:14px;font-weight:650;background:white;color:var(--ic-ink)}.pki-interaction .ic-tools button:disabled{opacity:.5}.pki-interaction .ic-confirm{background:var(--ic-blue);border-color:var(--ic-blue);color:white}.pki-interaction .ic-grip,.pki-interaction .ic-remove{width:44px;min-width:44px;height:44px;min-height:44px;border:1px solid var(--ic-line);border-radius:9px;display:inline-grid;place-items:center;padding:10px;background:white;color:var(--ic-muted);flex:0 0 44px}.pki-interaction .ic-grip{touch-action:none;cursor:grab}.pki-interaction .ic-grip:active{cursor:grabbing}
.pki-interaction .ic-fieldset{padding:0;margin:0;min-width:0;border:0;width:100%}.pki-interaction .ic-fieldset legend{padding:0}.pki-interaction .qc-choices{display:grid;gap:10px}.pki-interaction .qc-choice.ic-choice{display:flex;align-items:center;gap:10px;width:100%;min-width:0;min-height:60px;padding:12px 14px;border:1px solid var(--ic-line);border-radius:14px;background:white;font-size:18px;box-shadow:none;color:var(--ic-ink);cursor:pointer}.pki-interaction .qc-choice.ic-choice:has(input:checked){background:var(--ic-soft);border-color:#7b89c7;box-shadow:inset 3px 0 var(--ic-blue)}.pki-interaction .qc-choice input{height:22px;width:22px;min-width:22px;margin:0;accent-color:var(--ic-blue);flex:0 0 22px}.pki-interaction .qc-choice .qc-letter{font-size:12px;min-width:25px;width:25px;height:25px;display:grid;place-items:center;background:#edf1f8;color:var(--ic-muted);border-radius:7px;flex:0 0 25px}.pki-interaction .ic-choice-content{flex:1;min-width:0}.pki-interaction [data-choice-state]{display:block;font-size:12px;line-height:1.5;margin-top:3px;color:var(--ic-muted)}.pki-interaction [data-choice-state]:empty{display:none}
.pki-interaction.qc-solution .qc-choice.ic-choice{background:white;border-color:var(--ic-line);box-shadow:none;color:var(--ic-ink)}.pki-interaction .qc-choice.ic-choice[data-result=correct]{background:#edf8f1;border-color:#6ba58c;box-shadow:inset 3px 0 var(--ic-good)}.pki-interaction .qc-choice.ic-choice[data-result=wrong]{background:#fff3ef;border-color:#cb927f;box-shadow:inset 3px 0 var(--ic-bad)}.pki-interaction .ic-choice[data-result=correct] [data-choice-state]{color:var(--ic-good)}.pki-interaction .ic-choice[data-result=wrong] [data-choice-state]{color:var(--ic-bad)}
.pki-interaction .qc-order.ic-order{list-style:none;display:grid;gap:12px;padding:0;margin:12px 0}.pki-interaction .qc-order.ic-order>li{display:block;min-width:0;padding:12px;border:1px solid var(--ic-line);border-radius:13px;background:white}.pki-interaction .ic-order-line{display:flex;gap:12px;align-items:center;min-width:0}.pki-interaction .ic-order-line code{flex:1;min-width:0}.pki-interaction .ic-position{font-size:13px;font-weight:800;background:#edf1fb;color:var(--ic-blue);border-radius:8px;width:30px;height:30px;display:grid;place-items:center;flex:0 0 30px}.pki-interaction .ic-row-tools{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:9px}.pki-interaction .ic-place{flex:1;text-align:center;min-width:0}.pki-interaction .ic-place button{padding:7px 10px;min-height:44px;border:1px solid #8396cb;background:var(--ic-soft);border-radius:9px;font-size:14px;color:var(--ic-blue)}.pki-interaction .qc-arrows{display:flex;flex-direction:row!important;gap:6px}.pki-interaction .qc-arrows button{display:grid;place-items:center;min-width:44px;min-height:44px;height:44px;border:1px solid var(--ic-line);border-radius:9px;padding:10px;background:#f6f8fd;color:var(--ic-ink)}.pki-interaction .qc-arrows button:disabled{opacity:.4}.pki-interaction .ic-order>li.ic-selected{border:2px solid var(--ic-blue);padding:11px;background:#f7f8ff}.pki-interaction .ic-order-bottom{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap}.pki-interaction .ic-order-bottom .ic-tools{margin:0}.pki-interaction .ic-order[data-result=correct]>li{border-color:#6ba58c;background:#f1faf5}.pki-interaction .ic-order[data-result=wrong]{border-left:3px solid var(--ic-bad);padding-left:8px}
.pki-interaction .ic-sort-group{min-width:0;border:1px solid var(--ic-line);border-radius:14px;background:#fbfcff;padding:12px;margin:0}.pki-interaction .ic-pool{background:#f4f6fb;margin-bottom:12px}.pki-interaction .ic-sort-heading{display:flex;align-items:center;gap:10px;margin:0 0 10px}.pki-interaction .ic-sort-heading h4{font-size:16px;line-height:1.5;flex:1}.pki-interaction .ic-sort-heading h4>span,.pki-interaction .ic-category-count{font-size:13px;border-radius:8px;background:#edf1fa;padding:3px 8px;font-weight:700;margin-left:8px}.pki-interaction .ic-sort-heading>button{display:flex;align-items:center;gap:6px;flex:1;text-align:left;min-height:48px;border:1px solid #afbedc;border-radius:10px;background:#eef2ff;color:var(--ic-blue);padding:10px;font-size:17px;min-width:0}.pki-interaction .ic-sort-heading button strong{flex:1;overflow-wrap:normal}.pki-interaction .ic-category-arrow{font-size:19px}.pki-interaction .qc-sort-pool,.pki-interaction .ic-sort-items{display:grid;gap:8px}.pki-interaction .qc-sort-zones{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pki-interaction .ic-chip{display:flex;align-items:center;gap:5px;padding:5px;border:1px solid var(--ic-line);border-radius:11px;background:white;min-width:0}.pki-interaction .ic-chip-select{border:0!important;background:transparent!important;box-shadow:none!important;border-radius:7px;min-height:44px;min-width:0;flex:1;display:block;text-align:left;padding:6px!important;font-size:18px!important;line-height:1.6}.pki-interaction .ic-chip:has([aria-pressed=true]){outline:2px solid var(--ic-blue);background:var(--ic-soft)}.pki-interaction .ic-chip-select .ic-expression{font-size:16px}.pki-interaction .ic-sort-group .ic-grip,.pki-interaction .ic-sort-group .ic-remove{padding:10px;min-height:44px}.pki-interaction .ic-result-text{display:block;font-size:12px;color:var(--ic-muted);margin-top:3px}.pki-interaction .ic-chip[data-result=correct]{background:#eff8f3;border-color:#7daf97}.pki-interaction .ic-chip[data-result=wrong]{background:#fff4ef;border-color:#cc9784}.pki-interaction .ic-empty{font-size:14px;color:var(--ic-muted);margin:5px}
