/* IBM Plex is loaded via <link rel="preconnect"> + <link rel="stylesheet"> in each page head. */
:root{--ink:#17201d;--muted:#66736c;--line:#dfe4da;--paper:#fff;--soft:#f7f8f4;--deep:#111827}.insight-page{background:var(--paper);color:var(--ink)}.insight-page .site-header{display:block!important;max-width:1380px;padding:24px 40px 0!important;border-bottom:0!important}.insight-page footer,.insight-shell{max-width:1380px;margin:auto}.insight-shell{padding:0 40px 88px}.insight-nav{display:flex;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}.insight-nav a{color:var(--muted);font:11px 'IBM Plex Mono',monospace;text-decoration:none}.insight-nav a.active{color:var(--ink);font-weight:500}.insight-intro{padding:40px 0 28px}.insight-intro h1{margin:0 0 12px;font-size:36px;line-height:1;letter-spacing:-.04em}.insight-intro>p{max-width:720px;margin:0;color:#6b7280;font-size:15px;line-height:1.5}.insight-note{display:grid;grid-template-columns:130px 1fr;gap:16px;margin-bottom:25px;padding:14px 16px;border:1px solid #c9dfb9;background:#f5faef;font-size:12px;line-height:1.5}.insight-note strong{font:500 11px 'IBM Plex Mono',monospace}.insight-note code{font:11px 'IBM Plex Mono',monospace}.insight-controls{display:flex;align-items:center;gap:10px;margin-bottom:14px}.insight-controls label{display:flex;align-items:center;gap:9px;padding:0 11px;border:1px solid var(--line)}.insight-controls label span{color:var(--muted);font:11px 'IBM Plex Mono',monospace}.insight-controls input{width:250px;padding:11px 0;border:0;outline:0;font:13px 'IBM Plex Sans',sans-serif}.insight-controls select{height:40px;padding:0 30px 0 10px;border:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);font:12px 'IBM Plex Sans',sans-serif}.insight-controls>p{margin:0 0 0 auto;color:var(--muted);font:11px 'IBM Plex Mono',monospace}.insight-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:7px}.insight-table{width:100%;min-width:820px;border-collapse:collapse;font-size:12px}.insight-table th,.insight-table td{padding:12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.insight-table th{background:var(--soft);color:var(--muted);font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.02em;text-transform:uppercase;cursor:pointer;user-select:none}.insight-table th:hover{color:var(--ink)}.insight-table th.sorted{color:var(--ink);font-weight:600}.insight-table tbody tr:last-child td{border-bottom:0}.insight-table tbody tr:hover{background:#fbfcf9}.insight-table td>a{display:grid;gap:4px;color:var(--ink);text-decoration:none}.insight-table td>a:hover strong{text-decoration:underline}.insight-table td>a.insight-model-link{display:flex;align-items:center;gap:8px;min-height:42px}.insight-model-link img{display:block;width:20px;height:20px;flex:none;object-fit:contain}.insight-provider-name{color:var(--muted);font:10px 'IBM Plex Mono',monospace}.status{display:inline-flex;align-items:center;justify-content:center;min-width:30px;padding:3px 5px;border-radius:3px;font:10px 'IBM Plex Mono',monospace}.status.yes,.status.supported{color:#315d13;background:#e9f5df}.status.no,.status.unsupported{color:#6d7370;background:#f0f1ed}.status.varies{color:#8b5a00;background:#fff2d6}.status.undocumented{color:var(--muted);background:#f0f1ed}.scope-list{color:#315d13;font:10px 'IBM Plex Mono',monospace}.profile-ids{display:grid;gap:5px;justify-items:start}.profile-ids code{padding:3px 5px;background:var(--soft);font:10px 'IBM Plex Mono',monospace;overflow-wrap:anywhere}.muted{color:var(--muted)}.capabilities-controls{align-items:flex-start}.capability-filters{display:flex;max-width:700px;flex-wrap:wrap;gap:6px}.capability-filters button{padding:7px 9px;border:1px solid var(--line);border-radius:15px;background:#fff;color:var(--ink);font:600 11px 'IBM Plex Sans',sans-serif;cursor:pointer}.capability-filters button.active{border-color:var(--deep);background:var(--deep);color:#fff}.capability-table{min-width:1160px}.capability-table td:not(:first-child),.capability-table th:not(:first-child){text-align:center}.lifecycle-summary{display:grid;grid-template-columns:repeat(3,1fr);max-width:540px;margin-bottom:32px;border:1px solid var(--line)}.lifecycle-summary div{display:grid;gap:3px;padding:14px;border-right:1px solid var(--line)}.lifecycle-summary div:last-child{border-right:0}.lifecycle-summary strong{font-size:25px;line-height:1}.lifecycle-summary span{color:var(--muted);font:10px 'IBM Plex Mono',monospace}.lifecycle-state{display:inline-flex;padding:4px 6px;border-radius:3px;font:10px 'IBM Plex Mono',monospace}.lifecycle-state.active{color:#315d13;background:#e9f5df}.lifecycle-state.legacy{color:#8b5a00;background:#fff2d6}.lifecycle-state.eol{color:#9a3b28;background:#fce8e4}.lifecycle-past-eol{margin-left:5px;font-size:13px;cursor:help;position:relative}.lifecycle-past-eol:hover::after{content:'EOL date passed (AWS not yet declared)';position:absolute;left:100%;top:50%;transform:translateY(-50%);background:#17201d;color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap;z-index:10;pointer-events:none}.eol-no-sooner{color:#9ca3af;font-style:italic;cursor:help;position:relative}.eol-no-sooner:hover::after{content:'Earliest possible EOL date (not confirmed)';position:absolute;left:0;top:100%;background:#17201d;color:#fff;padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap;z-index:10;pointer-events:none;margin-top:4px}.insight-empty{padding:22px;margin:0;color:var(--muted)}.insight-footnote{margin:14px 0 0;color:var(--muted);font:10px/1.5 'IBM Plex Mono',monospace}.insight-page footer{display:flex!important;justify-content:flex-end!important;padding:28px 0!important;border-top:1px solid var(--line)!important}.insight-page footer a{display:flex;gap:5px;align-items:center;color:var(--ink);font-size:11px;text-decoration:none}.external-icon{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.harness-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-bottom:25px}.harness-summary article{border:1px solid var(--line);border-radius:7px;background:var(--soft);overflow:hidden}.harness-summary article.selected{border-color:var(--deep);box-shadow:0 0 0 1px var(--deep)}.harness-summary-select{display:block;width:100%;padding:16px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.harness-summary-select:hover{background:#fbfcf9}.harness-summary-select:focus-visible{outline:3px solid #93c5fd;outline-offset:-3px}.harness-summary h2{margin:0 0 16px;font-size:18px;letter-spacing:-.03em}.harness-summary dl{display:grid;gap:11px;margin:0}.harness-summary dd{margin-top:3px;line-height:1.4}.harness-summary-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid var(--line);color:var(--muted);font:10px 'IBM Plex Mono',monospace}.harness-source{display:inline-flex;align-items:center;gap:4px;color:var(--ink);font:10px 'IBM Plex Mono',monospace;text-decoration:none}.harness-source:hover{text-decoration:underline}.harness-table{min-width:820px}.harness-table code{font:10px 'IBM Plex Mono',monospace}.harness-table td:last-child{max-width:320px;white-space:normal;line-height:1.45}@media(max-width:720px){.insight-page .site-header{padding:18px 20px 0!important}.insight-page .header-main{flex-wrap:wrap;padding-bottom:18px}.insight-page .catalog-nav{order:2;width:100%;margin:0;overflow-x:auto}.insight-page .catalog-nav a{flex:none;padding:7px 9px!important}.insight-page .source-link{display:none}}@media(max-width:820px){.insight-shell{padding:0 20px 65px}.insight-intro{padding:24px 0 28px}.insight-note{grid-template-columns:1fr}.insight-controls{flex-wrap:wrap}.insight-controls input{width:210px}.insight-controls>p{margin-left:auto}.capabilities-controls>p{width:100%;text-align:right}.lifecycle-summary{max-width:none}.insight-page footer{margin:0 20px!important}.insight-nav{gap:13px}}
.compatibility-matrix{min-width:720px}.compatibility-matrix th:not(:first-child),.compatibility-matrix td:not(:first-child){width:112px;text-align:center}.compatibility-matrix th:first-child,.compatibility-matrix td:first-child{position:sticky;left:0;z-index:1;min-width:220px;background:var(--paper)}.compatibility-matrix th:first-child{z-index:2;background:var(--soft)}.compatibility-matrix tbody tr:hover td:first-child{background:#fbfcf9}.compatibility-cell{display:inline-grid;width:32px;height:28px;place-items:center;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--muted);font:600 15px 'IBM Plex Mono',monospace;cursor:pointer}.compatibility-cell:hover{border-color:var(--line);background:var(--soft)}.compatibility-cell:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}.compatibility-cell.verified{color:#315d13;background:#e9f5df}.compatibility-cell.unsupported{color:#6d7370;background:#f0f1ed}.compatibility-cell.not_tested,.compatibility-cell.unknown{color:#8b5a00;background:#fff2d6}.harness-detail{margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:7px;background:var(--soft);font-size:12px;line-height:1.5}.harness-detail>p{margin:0}.harness-detail .eyebrow{margin:0 0 6px}.harness-detail h2{margin:0 0 15px;font-size:18px}.harness-detail dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}.harness-detail dd{overflow-wrap:anywhere}@media(max-width:720px){.harness-detail dl{grid-template-columns:1fr}.harness-summary-footer{align-items:flex-start;flex-direction:column}}
.harness-endpoints{display:grid;gap:4px}.harness-endpoints>span{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px}.harness-endpoints code{padding:2px 4px;background:#ecefe8;font:10px 'IBM Plex Mono',monospace}.harness-endpoints small{color:var(--muted);font:10px/1.35 'IBM Plex Mono',monospace}.harness-name{display:inline-flex;align-items:center;gap:7px}.harness-name img{width:18px;height:18px;object-fit:contain}.compatibility-matrix th .harness-name{justify-content:center}.compatibility-matrix th .harness-name img{width:16px;height:16px}.harness-summary .harness-card{display:flex;flex-direction:column;background:var(--paper)}.harness-card header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 14px;border-bottom:1px solid var(--line);background:var(--soft)}.harness-card h2{margin:0}.harness-observation-count{flex:none;padding:4px 6px;border-radius:3px;background:#dcfce7;color:#166534;font:10px 'IBM Plex Mono',monospace;white-space:nowrap}.harness-observation-count.unobserved{background:#f3f4f6;color:#9ca3af}.harness-card-body{display:grid;gap:16px;padding:16px}.harness-card-body section{display:grid;gap:8px}.harness-card-body h3{margin:0;color:var(--muted);font:500 10px 'IBM Plex Mono',monospace;letter-spacing:.04em;text-transform:uppercase}.harness-endpoints{display:flex;flex-wrap:wrap;gap:6px}.harness-endpoints>span{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px}.harness-endpoints code{border:1px solid var(--line);border-radius:3px;background:#fff}.harness-authentication{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.harness-authentication li{padding:4px 6px;border:1px solid var(--line);border-radius:3px;background:#fff;font:10px 'IBM Plex Mono',monospace}.harness-card .harness-summary-footer{margin-top:auto;background:var(--soft)}@media(max-width:720px){.harness-card header{align-items:flex-start;flex-direction:column}.harness-card .harness-summary-footer{align-items:flex-start;flex-direction:column}}
.harness-summary{display:grid;grid-template-columns:1fr;gap:28px}.harness-group{display:grid;gap:10px}.harness-group>h2{margin:0;color:var(--muted);font:500 11px 'IBM Plex Mono',monospace;letter-spacing:.05em;text-transform:uppercase}.harness-card-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:stretch}.harness-card-grid .harness-card{height:100%;min-height:300px}.harness-card header{min-height:61px}.harness-support-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.harness-support-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;padding:8px 16px;border-bottom:1px solid var(--line);font:11px 'IBM Plex Mono',monospace}.harness-support-list li:last-child{border-bottom:0}.harness-support{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:3px}.harness-support img{display:block}.harness-support.supported{background:#dcfce7}.harness-support.unsupported{background:#f3f4f6}@media(max-width:1240px){.harness-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:900px){.harness-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.harness-card-grid{grid-template-columns:1fr}}

/* Shared visual palette: Cost and Regions are the reference for all insight views. */
:root { --ink: #111827; --muted: #6b7280; --line: #e5e7eb; --paper: #fff; --soft: #f9fafb; --deep: #111827; }
.insight-page { background: #f9fafb; color: #111827; }
.insight-page .site-header, .insight-page footer { background: #f9fafb; border-color: #e5e7eb; }
.insight-intro > p, .insight-controls label span, .insight-controls > p, .insight-footnote, .insight-provider-name, .scope-list, .muted { color: #6b7280; }
.insight-note { border-color: #bfdbfe; background: #eff6ff; color: #374151; }
.insight-note strong { color: #1e40af; }
.insight-controls label, .insight-controls select { border-color: #e5e7eb; border-radius: 6px; background: #fff; }
.insight-controls label:focus-within { border-color: #2563eb; box-shadow: 0 0 0 2px #dbeafe; }
.insight-controls select:focus { outline: 2px solid #2563eb; outline-offset: -1px; }
.insight-table-wrap { border-color: #e5e7eb; border-radius: 8px; background: #fff; box-shadow: 0 1px 2px rgba(17,24,39,.04); }
.insight-table th, .insight-table td { border-color: #e5e7eb; }
.insight-table th { background: #f9fafb; color: #6b7280; border-bottom: 2px solid #e5e7eb; font-weight: 600; }
.insight-table th:hover, .insight-table th.sorted { color: #111827; }
.insight-table tbody tr:hover { background: #eff6ff; }
.insight-table td > a, .harness-source { color: #2563eb; }
.insight-table td > a:hover strong, .harness-source:hover { text-decoration: underline; }
.status.yes, .status.supported, .lifecycle-state.active, .compatibility-cell.verified, .harness-observation-count { color: #166534; background: #dcfce7; }
.status.no, .status.unsupported, .compatibility-cell.unsupported { color: #9ca3af; background: #f3f4f6; }
.status.varies, .compatibility-cell.not_tested, .compatibility-cell.unknown { color: #92400e; background: #fef3c7; }
.status.undocumented { color: #9ca3af; background: #f3f4f6; }
.profile-ids code, .harness-endpoints code, .harness-authentication li { border-color: #e5e7eb; background: #f9fafb; }
.capability-filters button { border-color: #e5e7eb; background: #fff; color: #374151; }
.capability-filters button.active { border-color: #111827; background: #111827; color: #fff; }
.lifecycle-summary { border-color: #e5e7eb; background: #fff; }
.lifecycle-summary div { border-color: #e5e7eb; }
.lifecycle-state.legacy { color: #92400e; background: #fef3c7; }
.lifecycle-state.eol { color: #b91c1c; background: #fee2e2; }
.compatibility-matrix th:first-child { background: #f9fafb; }
.compatibility-matrix th:first-child, .compatibility-matrix td:first-child { background: #fff; }
.compatibility-matrix tbody tr:hover td:first-child, .compatibility-cell:hover { background: #eff6ff; }
.compatibility-cell:hover { border-color: #bfdbfe; }
.compatibility-cell:focus-visible, .harness-summary-select:focus-visible { outline-color: #2563eb; }
.harness-summary article, .harness-detail { border-color: #e5e7eb; background: #fff; }
.harness-summary article.selected { border-color: #2563eb; box-shadow: 0 0 0 1px #2563eb; }
.harness-summary-select:hover { background: #eff6ff; }
.harness-card header, .harness-card .harness-summary-footer { border-color: #e5e7eb; background: #f9fafb; }
.harness-support-list li, .harness-summary-footer { border-color: #e5e7eb; }
.harness-support.supported { background: #dcfce7; }
.harness-support.unsupported { background: #f3f4f6; }
.harness-observation-count.unobserved { color: #9ca3af; background: #f3f4f6; }
