/* Phase 2A. Large labels and local expression scrolling, not page-wide overflow. */
.pki-matching{--mk-ink:#152d48;--mk-muted:#52667c;--mk-line:#d7e1ed;--mk-action:#4059b2;--mk-soft:#f1f4ff;--mk-good:#177449;--mk-bad:#a74432;--mk-font:16px;min-width:0;color:var(--mk-ink);font-size:var(--mk-font);line-height:1.55;container-type:inline-size}
.pki-matching *{box-sizing:border-box;min-width:0}
.pki-matching button{font-family:inherit;letter-spacing:normal;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.pki-matching button:disabled{cursor:default;opacity:.5}
.pki-matching button svg{width:20px;height:20px;flex:none;display:block}
.pki-matching button:focus-visible,.pki-matching summary:focus-visible,.pki-matching [role=region]:focus-visible{outline:3px solid #4059b2;outline-offset:3px}
.pki-matching button[aria-pressed=true]{border-color:var(--mk-action)}
.pki-matching .mk-top{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:0 0 12px}
.pki-matching .mk-kind{display:flex;align-items:center;gap:7px;color:#4059b2;font-size:11px;font-weight:800;letter-spacing:.09em}
.pki-matching .mk-kind svg{width:22px;height:22px}
.pki-matching .mk-switch{display:flex;gap:4px;background:#edf1f7;border:1px solid #e1e7f0;border-radius:12px;padding:3px}
.pki-matching .mk-switch button{min-height:44px;padding:8px 12px;border:0;background:transparent;font-size:14px;font-weight:700;color:#435c75;border-radius:9px;line-height:1.3}
.pki-matching .mk-switch button[aria-pressed=true]{background:#fff;color:#2d4599;box-shadow:0 2px 5px #10234216}
.pki-matching .mk-instruction{font-size:17px;font-weight:700;line-height:1.55;margin:0 0 6px;color:var(--mk-ink)}
.pki-matching .mk-rule{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 16px;color:var(--mk-muted);font-size:14px}
.pki-matching .mk-rule b{background:#edf3f9;color:#294665;padding:3px 9px;border-radius:7px;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.pki-matching .mk-board{position:relative;isolation:isolate}
.pki-matching .mk-board.is-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
.pki-matching .mk-column-title{font-size:12px;font-weight:800;letter-spacing:.045em;text-transform:uppercase;color:#566c85;padding:0 0 8px 2px}
.pki-matching .mk-sources,.pki-matching .mk-targets{display:grid;gap:10px;align-content:start;z-index:1;pointer-events:none}
.pki-matching .mk-sources>*,.pki-matching .mk-targets>*{pointer-events:auto}
.pki-matching .mk-source-card{display:grid;grid-template-columns:minmax(0,1fr) 44px;border:1.5px solid var(--mk-line);border-radius:13px;background:#fff;min-height:82px;box-shadow:0 3px 10px #152e4f06;position:relative}
.pki-matching .mk-source-card.is-selected{border:2px solid var(--mk-action);background:var(--mk-soft);box-shadow:0 0 0 3px #4059b218}
.pki-matching .mk-source-button{border:0;background:transparent;color:var(--mk-ink);text-align:left;padding:11px 8px 10px 12px;display:grid;grid-template-columns:23px minmax(0,1fr);gap:3px 7px;align-content:center;min-height:80px;border-radius:11px}
.pki-matching .mk-index{font-size:13px;line-height:24px;font-weight:800;text-align:center;color:#47627e;background:#eaf0f7;border-radius:6px;align-self:start;height:24px}
.pki-matching .mk-source-state{grid-column:2;display:block;font-size:12px;line-height:1.4;color:var(--mk-muted);margin-top:2px;font-weight:600}
.pki-matching .mk-label{display:block;text-align:left;font-size:var(--mk-font);line-height:1.55;min-width:0;max-width:100%;color:inherit;font-weight:600}
.pki-matching .mk-label.mk-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;white-space:pre;overflow-wrap:normal;word-break:normal;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:#879bb4 transparent;padding:2px 0 4px;font-size:16px;line-height:1.55;touch-action:pan-x pan-y pinch-zoom}
.pki-matching .mk-prose{white-space:normal;word-break:normal;overflow-wrap:break-word}
.pki-matching .mk-handle{border:0;border-left:1px solid #e1e8f0;color:#4059b2;background:#f6f8fc;border-radius:0 11px 11px 0;display:grid;place-items:center;min-width:44px;width:44px;min-height:80px;touch-action:none;cursor:crosshair;padding:0}
.pki-matching .mk-port{height:26px;width:26px;display:grid;place-items:center;border:1.5px solid #98aec8;border-radius:50%;background:#fff;color:#375884;flex-shrink:0;z-index:2}
.pki-matching .mk-port svg{width:17px;height:17px}
.pki-matching .mk-target{display:grid;grid-template-columns:28px minmax(0,1fr);gap:4px 10px;align-content:center;align-items:center;text-align:left;width:100%;min-height:82px;border:1.5px solid var(--mk-line);border-radius:13px;background:#fff;color:var(--mk-ink);padding:11px 12px 10px 10px;position:relative;box-shadow:0 3px 10px #152e4f06}
.pki-matching .mk-target-letter{font-size:13px;font-weight:800;background:#f5f8fc}
.pki-matching .mk-target-sources{display:flex;gap:4px;flex-wrap:wrap;grid-column:2}
.pki-matching .mk-target-sources:empty{display:none}
.pki-matching .mk-target-sources>span{min-width:20px;height:20px;line-height:20px;text-align:center;font-size:11px;border:1px solid currentColor;border-radius:6px;background:#f7f9fd;color:var(--mk-wire,#4059b2)}
.pki-matching .mk-target.is-current-link{border-color:#7793c4;background:#f4f7ff}
.pki-matching .mk-target.is-target{outline:3px solid #4059b2;outline-offset:2px;background:#edf2ff}
.pki-matching .mk-wires{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;overflow:visible}
.pki-matching [data-tone="0"]{--mk-wire:#4059b2}.pki-matching [data-tone="1"]{--mk-wire:#147d83}.pki-matching [data-tone="2"]{--mk-wire:#805ba4}.pki-matching [data-tone="3"]{--mk-wire:#9b672a}.pki-matching [data-tone="4"]{--mk-wire:#b05178}.pki-matching [data-tone="5"]{--mk-wire:#406d95}
.pki-matching [data-tone=correct]{--mk-wire:var(--mk-good)}.pki-matching [data-tone=wrong]{--mk-wire:var(--mk-bad)}
.pki-matching .is-linked .mk-index{color:var(--mk-wire)}
.pki-matching .mk-wires path[data-wire]{stroke:var(--mk-wire,#4059b2);fill:none;stroke-width:2.5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.pki-matching .mk-wires marker path{fill:var(--mk-wire,#4059b2);stroke:none}
.pki-matching .mk-wires path[data-result=wrong]{stroke-dasharray:5 4}
.pki-matching .mk-wires path.is-preview{stroke-dasharray:5 4;opacity:.8}
.pki-matching [data-result=correct].mk-source-card{border-color:#7bb59b;background:#effaf4}
.pki-matching [data-result=wrong].mk-source-card{border-color:#d39a8d;background:#fff5f0}
.pki-matching [data-result=correct] .mk-source-state{color:var(--mk-good)}.pki-matching [data-result=wrong] .mk-source-state{color:var(--mk-bad)}
.pki-matching .mk-step-nav{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:0 0 10px;padding:0 2px;font-size:14px;color:#405976}
.pki-matching .mk-step-nav button{border:1px solid #d4dfec;display:grid;place-items:center;width:44px;min-height:44px;background:#fff;border-radius:11px;font-size:21px;color:#284566;padding:0}
.pki-matching .mk-board.is-guided{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;padding-left:22px}
.pki-matching .is-guided .mk-source-card{grid-template-columns:44px minmax(0,1fr);border-color:#bcc8e2;background:#f5f7ff}
.pki-matching .is-guided .mk-handle{grid-column:1;grid-row:1;border:0;border-right:1px solid #dce4f3;border-radius:11px 0 0 11px;background:#eaf0ff}
.pki-matching .is-guided .mk-source-button{grid-column:2;grid-row:1;padding-left:8px;grid-template-columns:22px minmax(0,1fr);gap:4px 6px}
.pki-matching .is-guided .mk-target{min-height:66px}
.pki-matching .is-guided .mk-targets{gap:8px}
.pki-matching .mk-announcement{font-size:14px;line-height:1.6;color:#405a74;margin:14px 0 10px;padding:10px 12px;border-left:3px solid #99acce;background:#f4f7fc;border-radius:0 9px 9px 0;overflow-wrap:break-word}
.pki-matching .mk-tools{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}
.pki-matching .mk-tools button{border:1px solid #d7e1ed;min-width:44px;min-height:44px;border-radius:10px;background:#fff;color:#38516d;display:inline-flex;gap:5px;align-items:center;justify-content:center;padding:8px 10px;font-size:13px;line-height:1.35;font-weight:700}
.pki-matching .mk-tools button:last-child{margin-left:auto;border-color:transparent;color:#695561}
.pki-matching .mk-summary{border:1px solid #d7e1ed;border-radius:12px;overflow:hidden;background:white}
.pki-matching .mk-summary>summary,.pki-matching .mk-help>summary{padding:12px;min-height:46px;cursor:pointer;font-size:14px;font-weight:700;color:#334e70}
.pki-matching .mk-summary>summary b{float:right;font-size:12px;color:#566e89}
.pki-matching .mk-summary ol{list-style:none;margin:0;padding:0 10px 6px}
.pki-matching .mk-summary li{display:grid;grid-template-columns:23px minmax(0,1fr) auto;gap:6px 9px;align-items:start;padding:13px 0;border-top:1px solid #e3eaf3}
.pki-matching .mk-pair-index{display:grid;place-items:center;width:23px;height:25px;font-size:12px;font-weight:800;border-radius:6px;border:1px solid currentColor;color:var(--mk-wire,#4059b2);margin-top:3px}
.pki-matching .mk-pair{display:grid;gap:4px}
.pki-matching .mk-pair-arrow{font-size:12px;font-weight:700;color:var(--mk-wire,#4059b2)}
.pki-matching .mk-empty{color:#6f8094;font-size:14px}
.pki-matching .mk-pair-actions{display:flex;gap:4px;flex-direction:column}
.pki-matching .mk-pair-actions button{display:grid;place-items:center;border:1px solid #d7e1ed;border-radius:10px;background:#fff;color:#38516d;width:44px;height:44px;padding:0}
.pki-matching .mk-help{margin-top:6px;color:#536b82}
.pki-matching .mk-help>summary{font-size:13px;color:#5c7086;padding-left:2px}
.pki-matching .mk-help p{font-size:14px;line-height:1.7;padding:0 4px 12px;margin:0}
.pki-matching.qc-solution .mk-source-card,.pki-matching.qc-solution .mk-target.is-solution-target{background:#effaf4;border-color:#8cbfa3}
.pki-matching.qc-solution button:disabled{opacity:1;color:var(--mk-ink)}
.pki-matching.qc-solution .mk-source-state{color:var(--mk-good)}
@container (max-width: 480px){
 .pki-matching .mk-top{gap:8px}.pki-matching .mk-kind{display:none}
 .pki-matching .mk-switch{width:100%}.pki-matching .mk-switch button{flex:1;font-size:14px}
 .pki-matching .mk-board.is-overview{gap:44px}
 .pki-matching .is-overview .mk-source-card{grid-template-columns:minmax(0,1fr);padding-right:0}
 .pki-matching .is-overview .mk-source-button{grid-template-columns:minmax(0,1fr);gap:5px;padding:9px 7px 8px;min-height:100px}
 .pki-matching .is-overview .mk-source-state{grid-column:1;font-size:11px;padding-right:6px}
 .pki-matching .is-overview .mk-handle{position:absolute;right:-22px;top:calc(50% - 22px);background:transparent;min-height:44px;height:44px;width:44px;min-width:44px;border:0}
 .pki-matching .is-overview .mk-index{font-size:11px;width:22px;height:22px;line-height:22px}
 .pki-matching .is-overview .mk-target{grid-template-columns:minmax(0,1fr);padding:9px 7px 8px;min-height:100px;gap:5px}
 .pki-matching .is-overview .mk-target-letter{position:absolute;left:-13px;top:calc(50% - 13px);width:24px;height:24px;font-size:11px}
 .pki-matching .is-overview .mk-target-sources{grid-column:1}
 .pki-matching .mk-rule{font-size:13px}
 .pki-matching .mk-tools button{font-size:12px;padding:8px}.pki-matching .mk-tools button:last-child{margin-left:0}
}
@media(prefers-reduced-motion:reduce){.pki-matching *{scroll-behavior:auto;animation:none!important;transition:none!important}}
@media(forced-colors:active){.pki-matching .mk-wires path[data-wire]{stroke:CanvasText}.pki-matching .mk-wires marker path{fill:CanvasText}.pki-matching .mk-source-card.is-selected,.pki-matching .mk-target.is-current-link{outline:2px solid Highlight}.pki-matching .mk-source-state{color:CanvasText}}
@media print{.pki-matching .mk-top,.pki-matching .mk-step-nav,.pki-matching .mk-tools,.pki-matching .mk-help,.pki-matching .mk-board,.pki-matching .mk-announcement{display:none!important}.pki-matching .mk-summary{border:0}.pki-matching .mk-summary>ol{display:block!important}.pki-matching .mk-pair-actions{display:none}.pki-matching .mk-summary li{break-inside:avoid}.pki-matching .mk-label.mk-code{white-space:pre-wrap;overflow:visible;font-size:10pt}.pki-matching .mk-summary>summary{display:none}}

.pki-matching .is-guided .mk-source-button{grid-template-columns:minmax(0,1fr)}
.pki-matching .is-guided .mk-index{display:none}
.pki-matching .is-guided .mk-source-state{grid-column:1}

.pki-matching .mk-scroll-tip{font-size:12px;line-height:1.5;margin:9px 0 0;color:#546b86}
.pki-matching .mk-code.can-scroll{box-shadow:inset -3px 0 #c2cfea}

.pki-matching.mk-has-selection .mk-wires path[data-wire]:not(.is-emphasis):not(.is-preview){opacity:.35}
.pki-matching .mk-wires path.is-emphasis{stroke-width:3.5}
