    .ahp-wrap { max-width: 920px; margin: 0 auto; }
    .ahp-card {
        background: var(--bg-surface);
        border: 1px solid var(--rule-2);
        border-radius: var(--radius-3);
        padding: var(--space-8);
        box-shadow: var(--shadow-1);
    }
    .ahp-step { padding-top: var(--space-8); margin-top: var(--space-8); border-top: 1px solid var(--rule-1); }
    .ahp-step:first-child { padding-top: 0; margin-top: 0; border-top: 0; }
    .ahp-top-grid { display: grid; grid-template-columns: minmax(200px, 260px) 1fr; gap: var(--space-8); align-items: start; }
    .ahp-top-grid .ahp-step { padding-top: 0; margin-top: 0; border-top: 0; }
    .ahp-block-title {
        font-family: var(--font-sans); font-size: var(--text-xs); font-weight: 600;
        text-transform: uppercase; letter-spacing: var(--tracking-wider);
        color: var(--amber-700); margin: 0 0 var(--space-4) 0;
        display: flex; align-items: center; gap: var(--space-2);
    }
    .ahp-block-title .n {
        display: inline-flex; align-items: center; justify-content: center;
        width: 24px; height: 24px; border-radius: var(--radius-pill);
        background: var(--amber-50); color: var(--amber-700); border: 1px solid var(--amber-100);
        font-size: var(--text-sm); font-family: var(--font-serif); font-weight: 500;
    }

    /* Step 1: criteria editor */
    .ahp-crit-list { display: flex; flex-direction: column; gap: var(--space-2); margin-bottom: var(--space-3); }
    .ahp-crit-row { display: flex; align-items: center; gap: var(--space-2); }
    .ahp-crit-num { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--fg-3); width: 22px; text-align: right; flex: 0 0 auto; }
    .ahp-crit-row input[type="text"] {
        flex: 1 1 auto; font-family: var(--font-sans); font-size: var(--text-sm); color: var(--fg-1);
        background: var(--bg-page); border: 1px solid var(--rule-3); border-radius: var(--radius-1);
        padding: 9px 11px; min-width: 0;
    }
    .ahp-crit-row input[type="text"]:focus { outline: none; border-color: var(--navy-600); box-shadow: var(--shadow-focus); }
    .ahp-x {
        flex: 0 0 auto; width: 32px; height: 32px; border: 1px solid var(--rule-3);
        background: var(--bg-surface); color: var(--fg-3); border-radius: var(--radius-1);
        cursor: pointer; font-size: 17px; line-height: 1; transition: all var(--dur-fast) var(--ease-out);
    }
    .ahp-x:hover:not(:disabled) { color: var(--danger); border-color: var(--danger); }
    .ahp-x:disabled { opacity: .35; cursor: not-allowed; }
    .ahp-mini { font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500; color: var(--navy-600); background: none; border: 0; cursor: pointer; padding: 4px 0; }
    .ahp-mini:hover:not(:disabled) { color: var(--amber-600); }
    .ahp-mini:disabled { opacity: .4; cursor: not-allowed; }

    /* Mode toggle */
    .ahp-modebar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; margin-bottom: var(--space-5); }
    .ahp-modes { display: inline-flex; border: 1px solid var(--rule-3); border-radius: var(--radius-2); overflow: hidden; }
    .ahp-mode-btn {
        font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500; color: var(--fg-2);
        background: var(--bg-surface); border: 0; padding: 8px 16px; cursor: pointer; transition: all var(--dur-fast) var(--ease-out);
    }
    .ahp-mode-btn + .ahp-mode-btn { border-left: 1px solid var(--rule-3); }
    .ahp-mode-btn:not(.active):hover { background: var(--slate-50); color: var(--fg-1); }
    .ahp-mode-btn.active { background: var(--navy-900); color: var(--fg-on-dark); box-shadow: inset 0 0 0 1px var(--navy-900); }
    .ahp-scale {
        display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); font-family: var(--font-sans);
        font-size: var(--text-xs); color: var(--fg-3); margin-bottom: var(--space-5);
    }
    .ahp-scale b { color: var(--fg-2); font-family: var(--font-mono); font-weight: 600; }

    /* Guided mode */
    .ahp-comp { padding: var(--space-4) 0; border-top: 1px solid var(--rule-1); }
    .ahp-comp:first-child { border-top: 0; }
    .ahp-comp-heads { display: flex; justify-content: space-between; gap: var(--space-3); font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 600; color: var(--fg-1); margin-bottom: var(--space-2); }
    .ahp-comp-heads .right { text-align: right; }
    .ahp-comp input[type="range"] { width: 100%; accent-color: var(--amber-500); cursor: pointer; }
    .ahp-verdict { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--fg-2); text-align: center; margin-top: var(--space-2); min-height: 1.2em; }
    .ahp-verdict { font-weight: 500; }
    .ahp-verdict .mono { font-family: var(--font-mono); color: var(--amber-700); font-weight: 600; }
    .ahp-ruler { display: flex; justify-content: space-between; font-family: var(--font-mono); font-size: 10px; color: var(--fg-4); margin-top: 4px; padding: 0 2px; }
    .ahp-ruler .mid { color: var(--fg-2); font-weight: 600; }

    /* Matrix mode */
    .ahp-matrix-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    table.ahp-matrix { border-collapse: collapse; width: 100%; font-family: var(--font-sans); font-size: var(--text-sm); }
    table.ahp-matrix th, table.ahp-matrix td { border: 1px solid var(--rule-2); padding: 6px 8px; text-align: center; min-width: 76px; }
    table.ahp-matrix thead th { background: var(--bg-sunken); color: var(--fg-1); font-weight: 600; font-size: var(--text-xs); }
    table.ahp-matrix tbody th { background: var(--bg-sunken); color: var(--fg-1); font-weight: 600; font-size: var(--text-xs); text-align: left; position: sticky; left: 0; }
    table.ahp-matrix td.diag { background: var(--bg-sunken); color: var(--fg-3); font-family: var(--font-mono); }
    table.ahp-matrix td.recip { color: var(--fg-3); font-family: var(--font-mono); font-style: italic; background: var(--bg-sunken); }
    table.ahp-matrix tbody tr:hover td:not(.diag):not(.recip) { background: var(--amber-50); }
    table.ahp-matrix td.edit { padding: 3px; }
    .ahp-cell-sel {
        width: 100%; font-family: var(--font-mono); font-size: var(--text-sm); color: var(--fg-1);
        background-color: var(--bg-page); border: 1px solid var(--rule-1); border-radius: var(--radius-1);
        padding: 5px 18px 5px 6px; cursor: pointer;
        -webkit-appearance: none; -moz-appearance: none; appearance: none;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='6' viewBox='0 0 8 6'%3E%3Cpath fill='%236C7884' d='M0 0h8L4 6z'/%3E%3C/svg%3E");
        background-repeat: no-repeat; background-position: right 6px center;
    }
    .ahp-cell-sel:hover { border-color: var(--rule-3); background-color: var(--amber-50); }
    .ahp-cell-sel:focus { outline: none; border-color: var(--navy-600); box-shadow: var(--shadow-focus); }
    .ahp-matrix-hint { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--fg-3); margin-top: var(--space-3); }
    .ahp-cell-num { width: 100%; font-family: var(--font-mono); font-size: var(--text-sm); color: var(--fg-1); background-color: var(--bg-page); border: 1px solid var(--rule-1); border-radius: var(--radius-1); padding: 5px 6px; text-align: center; -moz-appearance: textfield; }
    .ahp-cell-num:hover { border-color: var(--rule-3); background-color: var(--amber-50); }
    .ahp-cell-num:focus { outline: none; border-color: var(--navy-600); box-shadow: var(--shadow-focus); }
    .ahp-rawtoggle { display: inline-flex; align-items: center; gap: var(--space-2); font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500; color: var(--fg-1); cursor: pointer; }
    .ahp-rawtoggle input { accent-color: var(--amber-600); }
    .ahp-rawnote { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--fg-3); margin: var(--space-2) 0 var(--space-4) 0; line-height: var(--lh-relaxed); max-width: 70ch; }

    /* Results */
    .ahp-weight-row { margin-bottom: var(--space-3); }
    .ahp-weight-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 5px; font-family: var(--font-sans); font-size: var(--text-sm); color: var(--fg-1); gap: var(--space-2); }
    .ahp-weight-top .nm { display: inline-flex; align-items: center; gap: var(--space-2); min-width: 0; }
    .ahp-weight-top .nm span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .ahp-top-tag { font-family: var(--font-sans); font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--amber-700); background: var(--amber-50); border-radius: var(--radius-pill); padding: 1px 8px; flex: 0 0 auto; }
    .ahp-weight-top .pct { font-family: var(--font-mono); color: var(--fg-1); font-weight: 600; font-size: var(--text-md); flex: 0 0 auto; }
    .ahp-weight-track { height: 12px; background: var(--slate-100); border-radius: var(--radius-1); overflow: hidden; }
    .ahp-weight-fill { height: 100%; background: var(--navy-600); border-radius: var(--radius-1); transition: width var(--dur-normal) var(--ease-out); }
    .ahp-weight-fill.top { background: var(--amber-500); box-shadow: inset 0 0 0 1px rgba(122,76,11,.25); }
    .ahp-cr { margin-top: var(--space-5); padding: var(--space-4) var(--space-5); border-radius: var(--radius-2); font-family: var(--font-sans); font-size: var(--text-sm); display: flex; align-items: baseline; gap: var(--space-3); flex-wrap: wrap; }
    .ahp-cr.ok { background: rgba(46,110,63,.08); border: 1px solid rgba(46,110,63,.3); color: var(--success); }
    .ahp-cr.bad { background: rgba(156,59,59,.08); border: 1px solid rgba(156,59,59,.3); color: var(--danger); }
    .ahp-cr.na { background: var(--bg-sunken); border: 1px solid var(--rule-2); color: var(--fg-2); }
    .ahp-cr .crv { font-family: var(--font-mono); font-weight: 600; font-size: var(--text-md); }
    .ahp-actions { display: flex; gap: var(--space-3); margin-top: var(--space-6); flex-wrap: wrap; }
    .ahp-actions .btn-secondary { font-size: var(--text-sm); }
    .ahp-copied { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--success); align-self: center; }
    .ahp-boundary {
        margin-top: var(--space-6); padding: var(--space-4) var(--space-5);
        background: var(--bg-sunken); border-left: 3px solid var(--amber-500);
        border-radius: 0 var(--radius-2) var(--radius-2) 0;
        font-family: var(--font-sans); font-size: var(--text-sm); color: var(--fg-2); line-height: var(--lh-relaxed);
    }
    .ahp-boundary strong { color: var(--fg-1); }
    .ahp-boundary a { color: var(--fg-link); }

    /* Behind the numbers (math transparency) */
    .ahp-math-details { margin-top: var(--space-2); }
    .ahp-math-details > summary { cursor: pointer; font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 600; color: var(--navy-600); padding: var(--space-2) 0; list-style: none; }
    .ahp-math-details > summary::-webkit-details-marker { display: none; }
    .ahp-math-details > summary::before { content: "\25B8\00A0"; color: var(--amber-600); }
    .ahp-math-details[open] > summary::before { content: "\25BE\00A0"; }
    .ahp-math-details > summary:hover { color: var(--amber-600); }
    .ahp-math { margin-top: var(--space-3); }
    .calc-step { padding: var(--space-4) 0; border-top: 1px dashed var(--rule-2); }
    .calc-step:first-child { border-top: 0; padding-top: 0; }
    .calc-step h4 { font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 600; color: var(--fg-1); margin: 0 0 var(--space-2) 0; }
    .calc-note { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--fg-3); margin: 0 0 var(--space-3) 0; line-height: var(--lh-relaxed); }
    .calc-formula { font-family: var(--font-mono); font-size: var(--text-sm); color: var(--navy-900); background: var(--bg-sunken); border: 1px solid var(--rule-1); border-radius: var(--radius-1); padding: var(--space-2) var(--space-3); margin: 0 0 var(--space-3) 0; display: inline-block; }
    .calc-line { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--fg-2); margin: var(--space-1) 0; line-height: var(--lh-relaxed); }
    .calc-line b { color: var(--fg-1); }
    .calc-ok { color: var(--success); font-family: var(--font-sans); font-weight: 600; }
    .calc-bad { color: var(--danger); font-family: var(--font-sans); font-weight: 600; }
    .calc-list { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--fg-2); margin: 0; padding-left: 1.4em; }
    .calc-list li { margin: 2px 0; }
    .calc-mat-wrap { overflow-x: auto; margin-bottom: var(--space-2); }
    table.calc-mat { border-collapse: collapse; font-family: var(--font-mono); font-size: var(--text-xs); }
    table.calc-mat th, table.calc-mat td { border: 1px solid var(--rule-2); padding: 3px 8px; text-align: center; color: var(--fg-2); }
    table.calc-mat thead th, table.calc-mat tbody th { background: var(--bg-sunken); color: var(--fg-1); font-weight: 600; }

    .ahp-cta-list { columns: 2; column-gap: var(--space-10); }

    .ahp-faq-item { border-top: 1px solid var(--rule-2); padding: var(--space-5) 0; }
    .ahp-faq-item:first-child { border-top: 0; }
    .ahp-faq-q { font-family: var(--font-serif); font-size: var(--text-lg); color: var(--navy-900); margin: 0 0 var(--space-2) 0; }
    .ahp-faq-a { font-family: var(--font-sans); font-size: var(--text-md); line-height: var(--lh-relaxed); color: var(--fg-2); margin: 0; max-width: 72ch; }

    @media (max-width: 880px) {
        .ahp-card { padding: var(--space-5); }
        .ahp-cta-list { columns: 1; }
        .ahp-top-grid { grid-template-columns: 1fr; gap: var(--space-6); }
    }
