.jm-details { min-width: 0; }
.jm-trigger { cursor: pointer; list-style: none; position: relative; }
.jm-trigger::-webkit-details-marker { display: none; }
.jm-trigger::marker { content: ""; }
.jm-trigger:hover { box-shadow: inset 0 0 0 1px var(--color-line-strong); }
.jm-trigger:focus-visible, .jm-close:focus-visible { outline: 3px solid var(--color-gold); outline-offset: 3px; }
.jm-trigger-copy { min-width: 0; display: grid; gap: 3px; }
.jm-trigger-link { color: var(--color-blue); font-size: .75rem; font-weight: 700; }
.jm-content { background: var(--color-surface, #fff); color: var(--color-text, #26354b); font-size: .875rem; line-height: 1.55; border-radius: 18px; overflow: hidden; }
.jm-details[open] > .jm-content { margin-top: 12px; border: 1px solid var(--color-line); }
.jm-dialog { width: min(640px, calc(100vw - 40px)); max-width: none; max-height: min(90dvh, 900px); padding: 0; border: 0; border-radius: 22px; color: inherit; background: var(--color-surface, #fff); box-shadow: 0 28px 100px #071c3e55; overflow: hidden; }
.jm-dialog::backdrop { background: #071c3e99; backdrop-filter: blur(4px); }
.jm-dialog .jm-content { display: flex; flex-direction: column; max-height: min(90dvh, 900px); }
.jm-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 26px 18px; border-top: 4px solid var(--color-gold, #e5b729); border-bottom: 1px solid var(--color-line, #e1e7ee); }
.jm-eyebrow { color: var(--color-blue, #225b94); text-transform: uppercase; letter-spacing: .12em; font-size: .65rem; font-weight: 700; }
.jm-header h2 { margin: 3px 0 0; color: var(--color-navy, #0b2857); font-size: 1.35rem; line-height: 1.25; }
.jm-header .jm-job-title { margin: 5px 0 0; color: var(--color-muted); font-size: .75rem; }
.jm-close { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--color-line); border-radius: 50%; background: var(--color-soft, #f4f7fa); color: var(--color-navy); font: inherit; font-size: 1.5rem; cursor: pointer; }
.jm-close[hidden] { display: none; }
.jm-scroll { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 22px 26px; scrollbar-gutter: stable; }
.jm-overview { --ring: var(--color-blue, #225b94); display: flex; align-items: center; gap: 20px; padding: 18px; border-radius: 15px; background: linear-gradient(135deg, #f0f5fb, #fafbfe); }
.jm-overview.is-high { --ring: var(--color-success, #187b52); }
.jm-overview.is-mid { --ring: var(--color-gold-deep, #a77715); }
.jm-overview .jm-large-ring { width: 88px; height: 88px; }
.jm-overview .jm-large-ring b { width: 72px; height: 72px; font-size: 1.3rem; }
.jm-overview strong { color: var(--color-navy); font-size: 1rem; }
.jm-overview p { margin: 5px 0; color: var(--color-muted); font-size: .8125rem; }
.jm-coverage { display: inline-block; color: var(--color-blue); font-size: .75rem; font-weight: 600; }
.jm-notice, .jm-potential { margin: 14px 0 0; padding: 12px 14px; border: 1px solid #e9d699; border-radius: 12px; background: #fff9e9; color: #745510; font-size: .8125rem; }
.jm-potential { background: #f4f8fd; border-color: #d7e4f3; color: var(--color-navy); }
.jm-potential span { display: block; margin-top: 3px; font-size: .75rem; color: var(--color-muted); }
.jm-criteria { display: grid; gap: 12px; margin-top: 20px; }
.jm-criterion { border: 1px solid var(--color-line, #e1e7ee); border-radius: 14px; padding: 16px; }
.jm-criterion-heading { display: flex; align-items: center; gap: 9px; }
.jm-criterion-icon { display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 9px; background: var(--color-soft, #f0f4f8); color: var(--color-blue); font-size: 1.15rem; }
.is-matched .jm-criterion-icon { color: #187b52; background: #e9f6ef; }
.is-partial .jm-criterion-icon { color: #947017; background: #fff5d7; }
.is-mismatch .jm-criterion-icon { color: #a13e3e; background: #fbeeee; }
.jm-criterion h3 { flex: 1; margin: 0; color: var(--color-navy); font-size: .9375rem; }
.jm-points { max-width: 45%; color: var(--color-navy); font-size: .8125rem; font-weight: 700; text-align: end; }
.jm-status { display: block; margin: 4px 0 9px 37px; color: var(--color-muted); font-size: .6875rem; font-weight: 600; }
.is-matched .jm-status { color: #187b52; }
.is-mismatch .jm-status { color: #a13e3e; }
.jm-component-bar { display: flex; height: 4px; background: #edf1f6; border-radius: 9px; overflow: hidden; margin-block: 9px 13px; }
.jm-component-bar > span { background: #2e8b6a; }
.jm-component-bar > i { background: repeating-linear-gradient(120deg, #b1c5de 0 3px, #e3edf9 3px 6px); }
.jm-evidence { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 0; }
.jm-evidence dt { font-size: .6875rem; color: var(--color-muted); margin-bottom: 3px; }
.jm-evidence dd { margin: 0; font-size: .8125rem; overflow-wrap: anywhere; }
.jm-reason, .jm-items { margin: 10px 0 0; font-size: .75rem; color: var(--color-muted); }
.jm-items strong { color: var(--color-text); font-weight: 600; }
.jm-edit { display: inline-block; margin-top: 9px; color: var(--color-blue); font-size: .75rem; font-weight: 600; }
.jm-edit:hover { text-decoration: underline; }
.jm-calculation { margin-top: 18px; border-top: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); padding: 12px 0; font-size: .75rem; }
.jm-calculation summary { cursor: pointer; color: var(--color-navy); font-weight: 700; }
.jm-calculation summary span { float: right; }
.jm-calculation p { margin: 8px 0 0; }
.jm-limitations, .jm-apply-note { color: var(--color-muted); font-size: .6875rem; margin: 14px 0 0; }
.jm-apply-note { margin-top: 7px; }
.jm-footer { display: flex; align-items: center; gap: 14px; padding: 16px 26px; border-top: 1px solid var(--color-line); background: #fafbfd; }
.jm-footer .jb-btn { flex: none; font-size: .8125rem; }
.jm-footer > span { font-size: .6875rem; color: var(--color-muted); }
.jm-is-open { overflow: hidden; }
.jb-match-warning { display: block; padding: 7px 10px; border-radius: 8px; background: #fff8e5; color: #745510; font-size: .75rem; line-height: 1.5; margin: 10px 0 0; }
@media (max-width: 639px) {
    .jm-dialog { width: 100%; max-height: 92dvh; margin: auto 0 0; border-radius: 22px 22px 0 0; }
    .jm-dialog .jm-content { max-height: 92dvh; }
    .jm-header { padding: 18px 18px 14px; }
    .jm-scroll { padding: 16px 18px; }
    .jm-overview { gap: 14px; padding: 14px; }
    .jm-evidence { grid-template-columns: 1fr; gap: 8px; }
    .jm-footer { padding: 14px 18px max(14px, env(safe-area-inset-bottom)); flex-wrap: wrap; }
    .jm-footer .jb-btn { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: no-preference) { .jm-dialog[open] { animation: jm-enter .18s ease-out; } @keyframes jm-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } } }
