.iapa-tool-matrix { width:100%; color:var(--ink); font-family:var(--fb); overflow-wrap:break-word; }
.iapa-tool-matrix *, .tm-types * { box-sizing:border-box; }
.iapa-tool-matrix [hidden] { display:none !important; }
.iapa-tool-matrix h2 { margin:0 0 16px; }
.iapa-tool-matrix h3 { font-family:var(--fh); font-size:1.25rem; line-height:1.3; margin:0 0 6px; color:var(--head); }
.iapa-tool-matrix h4 { font-family:var(--fb); font-size:.82rem; font-weight:600; margin:0 0 8px; }
.iapa-tool-matrix p { font-size:.92rem; line-height:1.65; margin:0 0 12px; }
.iapa-tool-matrix .tm-note { font-size:.82rem; line-height:1.65; color:var(--muted); }
.tm-heading { margin-bottom:28px; }
.tm-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 20px; }
.tm-filters label { font-size:.85rem; font-weight:500; }
.tm-filters input, .tm-filters select { display:block; width:100%; min-height:46px; margin-top:7px; padding:10px 12px; border:1px solid var(--line); border-radius:0; background:var(--card); color:var(--ink); font:inherit; font-weight:400; }
.tm-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:18px 0 8px; }
.tm-actions .tm-results { margin:0 auto 0 0; font-size:.84rem; }
.iapa-tool-matrix button { font:inherit; font-size:.84rem; color:var(--head); padding:9px 12px; min-height:44px; border:1px solid var(--line); border-radius:0; background:var(--card); cursor:pointer; }
.iapa-tool-matrix button:hover:not(:disabled) { border-color:var(--acc); }
.iapa-tool-matrix .tm-compare { color:var(--on-acc); background:var(--acc); border-color:var(--acc); }
.iapa-tool-matrix button:disabled { opacity:.55; cursor:default; }
.iapa-tool-matrix input:focus-visible, .iapa-tool-matrix select:focus-visible, .iapa-tool-matrix button:focus-visible, .iapa-tool-matrix a:focus-visible, .iapa-tool-matrix summary:focus-visible, .tm-scroll:focus-visible { outline:2px solid var(--acc); outline-offset:3px; }
.iapa-tool-matrix .tm-feedback { font-size:.82rem; color:var(--muted); margin:0 0 12px; min-height:1.4em; }
.tm-catalogue { list-style:none; padding:0 !important; margin:20px 0 0 !important; }
.tm-entry { list-style:none; padding:24px 0 !important; margin:0 !important; border-top:1px solid var(--line); scroll-margin-top:110px; }
.tm-entry:last-child { border-bottom:1px solid var(--line); }
.tm-entry-summary { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,.8fr); gap:24px; }
.tm-entry-main .tm-category-label { font-size:.78rem; margin-bottom:12px; color:var(--muted); }
.tm-entry a, .tm-comparison a { color:var(--acc); text-decoration:underline; text-underline-offset:3px; font-size:.85rem; }
.tm-select-label { display:flex; align-items:center; gap:8px; font-size:.84rem; min-height:44px; cursor:pointer; }
.tm-select { width:18px; height:18px; margin:0; accent-color:var(--acc); }
.tm-select:disabled { cursor:default; }
.tm-details { margin-top:16px; }
.tm-details summary { width:fit-content; padding:8px 0; min-height:44px; cursor:pointer; color:var(--head); font-size:.86rem; font-weight:500; }
.tm-details dl { margin:12px 0 0; padding:0; }
.tm-field { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2.6fr); gap:20px; border-top:1px solid var(--line2); padding:14px 0; font-size:.85rem; line-height:1.65; }
.tm-field dt { font-weight:500; text-align:left; }
.tm-field dd { margin:0; text-align:justify; text-align-last:left; }
.tm-field a { overflow-wrap:anywhere; }
.tm-comparison { margin:24px 0 32px; padding:24px 0; border-top:2px solid var(--acc); border-bottom:1px solid var(--line); }
.tm-comparison-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.tm-scroll { width:100%; max-width:100%; contain:layout paint; overflow-x:auto; overscroll-behavior-inline:contain; }
.tm-comparison-table { border-collapse:collapse; width:100%; min-width:720px; table-layout:fixed; font-size:.84rem; line-height:1.65; }
.tm-comparison-table caption { text-align:left; padding:0 0 12px; font-size:.85rem; }
.tm-comparison-table th, .tm-comparison-table td { padding:14px; border:1px solid var(--line); vertical-align:top; overflow-wrap:anywhere; }
.tm-comparison-table th { font-weight:600; text-align:left; color:var(--head); background:var(--surface); }
.tm-comparison-table th:first-child { width:150px; }
.tm-comparison-table td { text-align:justify; text-align-last:left; }
.tm-empty { padding:24px 0; border-top:1px solid var(--line); }
.tm-types { margin:24px 0; }
.tm-types div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2.3fr); gap:20px; border-top:1px solid var(--line); padding:18px 0; }
.tm-types dt { font-weight:600; text-align:left; }
.tm-types dd { margin:0; text-align:justify; text-align-last:left; }
@media(max-width:600px) {
    .tm-filters { grid-template-columns:minmax(0,1fr); gap:14px; }
    .tm-entry-summary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
    .tm-entry-main { grid-column:1 / -1; }
    .tm-field, .tm-types div { grid-template-columns:minmax(0,1fr); gap:8px; }
    .tm-comparison-heading { align-items:flex-start; }
    .iapa-tool-matrix .tm-actions { gap:8px; }
    .tm-actions .tm-results { flex-basis:100%; }
    .tm-comparison-table { min-width:780px; }
}
.iapa-tool-matrix .screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.tm-select-label, .tm-actions, .tm-feedback, .tm-results { text-align:left; }
