/* Catalogue inherits the assistant's colour, typography and navigation tokens. */
.ks-main { min-width:0; height:100dvh; overflow:auto; overscroll-behavior:contain; }
.ks-top { height:64px; display:flex; align-items:center; gap:12px; padding:0 28px; color:var(--k-muted); border-bottom:1px solid var(--k-line); font-size:13px; }
.ks-crumb { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ks-theme { margin-left:auto; }
.ks-content { max-width:1440px; margin:auto; padding:40px 40px 28px; }
.ks-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:32px; }
.ks-trust { margin:0 0 24px; border-block:1px solid var(--k-line); font-size:13px; }
.ks-trust summary { cursor:pointer; padding:14px 0; color:var(--k-text); }
.ks-trust-body { max-width:780px; padding:2px 0 18px; line-height:1.75; }
.ks-trust-body p + h2 { margin-top:24px; }
.ks-trust-body h2 { font-size:15px; margin-bottom:10px; }
.ks-trust-body p + p { margin-top:12px; }
.ks-trust-body ul { color:var(--k-muted); margin:0 0 16px; padding-left:20px; }
.ks-trust-body li + li { margin-top:6px; }
.ks-trust-body a { text-decoration:underline; text-underline-offset:3px; }
.ks-rights-warning { margin-top:24px !important; font-size:13px; }
.ks-brand-section { font-weight:400; }
.ks-attribution { margin-top:18px; font-size:13px; }
.ks-attribution summary { cursor:pointer; margin-bottom:12px; }
.ks-attribution textarea { display:block; width:100%; padding:12px; margin-bottom:12px; color:var(--k-text); background:var(--k-code); border:1px solid var(--k-line-2); border-radius:8px; resize:vertical; font-size:13px; line-height:1.6; }
.ks-content h1 { margin:0 0 10px; font-size:clamp(26px, 2.4vw, 34px); font-weight:600; line-height:1.2; letter-spacing:-.8px; text-wrap:balance; }
.ks-content p { color:var(--k-muted); margin:0; }
.ks-total { text-align:right; font-size:28px; font-weight:500; font-variant-numeric:tabular-nums; white-space:nowrap; }
.ks-total small { display:block; color:var(--k-muted); font-size:12px; font-weight:400; }
.ks-tabs { display:flex; gap:24px; border-bottom:1px solid var(--k-line); margin-bottom:24px; }
.ks-tabs a { padding:12px 0; border-bottom:2px solid transparent; color:var(--k-muted); font-size:14px; }
.ks-tabs a[aria-current] { border-color:var(--k-text); color:var(--k-text); }
.ks-tabs span { padding:2px 6px; border-radius:5px; background:var(--k-hover); font-size:12px; margin-left:4px; }
.ks-filters { display:flex; align-items:flex-start; flex-wrap:wrap; gap:10px; }
.ks-search { min-width:200px; flex:1; display:flex; align-items:center; gap:10px; height:42px; padding:0 12px; border:1px solid var(--k-line-2); border-radius:8px; }
.ks-search svg { flex-shrink:0; color:var(--k-muted); }
.ks-search input { min-width:0; width:100%; border:0; background:none; outline:none; font-size:14px; }
.ks-search:focus-within { outline:2px solid var(--k-accent); outline-offset:2px; }
.ks-select select,.ks-more-filters select { height:42px; max-width:100%; border:1px solid var(--k-line-2); border-radius:8px; background:var(--k-bg); padding:0 30px 0 12px; font-size:13px; }
.ks-filters > .kai-btn { min-height:42px; }
.ks-more-filters { flex-basis:100%; font-size:13px; }
.ks-more-filters summary { cursor:pointer; display:inline-flex; align-items:center; gap:6px; color:var(--k-muted); min-height:36px; }
.ks-more-filters summary::-webkit-details-marker { display:none; }
.ks-more-filters > div { display:flex; flex-wrap:wrap; align-items:end; gap:14px; padding:10px 0; }
.ks-more-filters label { display:grid; gap:5px; color:var(--k-muted); }
.ks-result-line { display:flex; justify-content:space-between; gap:16px; color:var(--k-muted); font-size:12px; margin:20px 0 12px; }
.ks-table { width:100%; border-collapse:collapse; text-align:left; font-size:13px; table-layout:fixed; }
.ks-table th { color:var(--k-muted); font-weight:400; padding:12px; border-block:1px solid var(--k-line); background:var(--k-side); font-size:12px; }
.ks-table th:first-child { width:44%; }
.ks-table th:nth-child(2) { width:14%; }
.ks-table th:nth-child(3) { width:18%; }
.ks-table th:nth-child(4) { width:12%; }
.ks-table th:nth-child(5) { width:12%; }
.ks-table td { padding:17px 12px; vertical-align:middle; border-bottom:1px solid var(--k-line); overflow-wrap:anywhere; }
.ks-table tr:hover td { background:var(--k-side); }
.ks-name { display:inline-block; font-size:15px; font-weight:500; line-height:1.45; }
.ks-name:hover { text-decoration:underline; text-underline-offset:3px; }
.ks-description { font-size:12px; line-height:1.55; margin-top:5px !important; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ks-category { color:var(--k-muted); }
.ks-status { font-size:12px; line-height:1.4; color:var(--k-muted); }
.ks-status--instructions { color:var(--k-ok); }
.ks-repo > span { display:flex; align-items:center; gap:5px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.ks-repo svg { width:13px; height:13px; color:var(--k-muted); }
.ks-repo small { display:block; color:var(--k-muted); margin-top:3px; font-size:11px; }
.ks-action .kai-btn { border-color:transparent; background:transparent; gap:5px; padding:6px; font-size:12px; }
.ks-action .kai-btn:hover { background:var(--k-hover); }
.ks-action svg { width:15px; height:15px; }
.ks-pagination { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 0; font-size:12px; color:var(--k-muted); }
.ks-pagination > div { display:flex; gap:16px; align-items:center; }
.ks-footer { margin-top:24px; padding-top:20px; border-top:1px solid var(--k-line); font-size:12px; color:var(--k-muted); line-height:1.8; overflow-wrap:anywhere; }
.ks-footer a,.ks-facts a { text-decoration:underline; text-underline-offset:3px; }
.ks-empty { padding:64px 24px; text-align:center; }
.ks-empty h2 { font-size:22px; font-weight:500; margin:0 0 12px; }
.ks-empty p { max-width:460px; margin:0 auto 24px; font-size:14px; }
.ks-notice { margin-bottom:24px; border:1px solid var(--k-line-2); border-radius:8px; background:var(--k-side); padding:12px 16px; font-size:14px; }
.ks-notice--error { border-color:var(--k-danger); }
.ks-back { display:inline-block; color:var(--k-muted) !important; font-size:13px; margin-bottom:32px; }
.ks-detail-heading { max-width:820px; margin-bottom:36px; }
.ks-detail-heading h1 { margin-top:10px; }
.ks-eyebrow { color:var(--k-muted); font-size:12px; }
.ks-detail-heading p { font-size:16px; line-height:1.7; }
.ks-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:48px; align-items:start; }
.ks-content h2 { font-size:18px; line-height:1.4; font-weight:500; margin:0 0 16px; }
.ks-about p { font-size:14px; line-height:1.8; margin-bottom:14px; }
.ks-facts { margin:28px 0; font-size:13px; }
.ks-facts > div { display:grid; grid-template-columns:160px minmax(0,1fr); gap:12px; padding:10px 0; border-bottom:1px solid var(--k-line); }
.ks-facts dt { color:var(--k-muted); }
.ks-facts dd { margin:0; overflow-wrap:anywhere; }
.ks-limitations { border-left:2px solid var(--k-line-2); padding-left:16px; font-size:13px; color:var(--k-muted); }
.ks-limitations h3 { font-size:13px; font-weight:500; margin:0 0 8px; }
.ks-limitations ul { margin:0; padding-left:16px; }
.ks-limitations li + li { margin-top:8px; }
.ks-connect { padding:24px; background:var(--k-side); border:1px solid var(--k-line); border-radius:12px; }
.ks-connect p { font-size:13px; line-height:1.7; margin-bottom:20px; }
.ks-connect .kai-btn { width:100%; font-size:13px; height:auto; min-height:42px; white-space:normal; text-align:center; }
.ks-consent { display:flex; align-items:start; gap:10px; font-size:12px; line-height:1.6; margin-bottom:20px; color:var(--k-muted); cursor:pointer; }
.ks-consent input { flex-shrink:0; margin-top:4px; accent-color:var(--k-accent); width:16px; height:16px; }
.ks-installed { display:flex; gap:8px; align-items:center; font-size:12px; color:var(--k-ok); margin-bottom:18px; }
.ks-text-button { border:0; background:none; text-decoration:underline; text-underline-offset:3px; color:var(--k-muted); font-size:12px; padding:16px 0 0; }
.ks-source { margin-top:36px; border-block:1px solid var(--k-line); }
.ks-source summary { padding:18px 0; cursor:pointer; font-size:14px; }
.ks-source summary span { float:right; color:var(--k-muted); font-size:12px; }
.ks-source pre { max-height:540px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; background:var(--k-code); padding:20px; font-size:12px; line-height:1.7; border-radius:8px; }
.ks-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.kai-catalog .kai-pop__meter { display:none; }
.kai.kai-catalog--public, html[data-kai-side] .kai.kai-catalog--public { grid-template-columns:minmax(0,1fr); }
.kai-catalog--public .ks-content { max-width:1280px; }
.kai-catalog--public .ks-top { padding-inline:max(24px, calc((100% - 1200px) / 2)); }
.ks-brand { display:flex; align-items:center; gap:10px; color:var(--k-text) !important; font-size:16px; font-weight:600; white-space:nowrap; }
.ks-brand-light { font-weight:400; color:var(--k-muted); }
.ks-assistant-link { margin-left:auto; font-size:13px; }
.kai-catalog--public .ks-theme { margin-left:12px; }
.ks-guide { padding:36px 0 12px; border-top:1px solid var(--k-line); margin-top:20px; }
.ks-guide > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin:24px 0; }
.ks-guide h3 { font-size:14px; font-weight:500; margin:0 0 10px; }
.ks-guide p { font-size:13px; line-height:1.8; }
.ks-guide details { padding:14px 0; border-top:1px solid var(--k-line); font-size:14px; }
.ks-guide summary { cursor:pointer; }
.ks-guide details p { margin-top:12px; max-width:780px; }
.ks-use { margin:36px 0; padding-top:28px; border-top:1px solid var(--k-line); }
.ks-use-heading { display:flex; gap:16px; align-items:baseline; }
.ks-use-heading > span { font-size:12px; color:var(--k-muted); }
.ks-use-tabs { display:flex; gap:4px; border-bottom:1px solid var(--k-line); }
.ks-use-tabs button { background:none; border:0; border-bottom:2px solid transparent; padding:12px 16px; font-size:13px; color:var(--k-muted); }
.ks-use-tabs button[aria-selected="true"] { border-bottom-color:var(--k-text); color:var(--k-text); }
.ks-use-tabs button:hover { background:var(--k-side); }
.ks-use-panel { padding-top:18px; }
.ks-use-panel p { font-size:13px; max-width:820px; margin-bottom:14px; }
.ks-use-panel a,.ks-use-credit a { text-decoration:underline; text-underline-offset:3px; }
.ks-use-panel textarea { display:block; width:100%; max-height:420px; resize:vertical; padding:16px; border:1px solid var(--k-line-2); border-radius:8px; background:var(--k-code); color:var(--k-text); font-family:ui-monospace,Consolas,monospace; font-size:12px; line-height:1.7; margin-bottom:12px; }
.ks-use-caution { margin:14px 0 0 !important; }
.ks-download-row { display:flex; align-items:center; flex-wrap:wrap; gap:16px; margin:16px 0; }
.ks-download-row .ks-text-button { padding:6px 0; }
.ks-copy-status { font-size:12px; color:var(--k-muted); overflow-wrap:anywhere; }
.ks-use-credit { font-size:12px; }
@media (max-width:1150px) { .ks-content { padding:28px 24px; } .ks-table th:first-child { width:46%; } .ks-table th:nth-child(2),.ks-category { display:none; } .ks-table th:nth-child(3) { width:23%; } .ks-table th:nth-child(4) { width:15%; } .ks-table th:nth-child(5) { width:16%; } .ks-detail-grid { gap:24px; grid-template-columns:minmax(0,1fr) 280px; } }
@media (max-width:680px) {
    .ks-top { height:56px; padding:0 16px; } .ks-content { padding:28px 18px; }
    .ks-tabs { gap:16px; overflow-x:auto; } .ks-tabs a { font-size:12px; white-space:nowrap; }
    .ks-heading { gap:12px; align-items:start; margin-bottom:24px; } .ks-heading p { font-size:13px; } .ks-heading p br { display:none; } .ks-total { font-size:20px; }
    .ks-search { flex-basis:100%; height:44px; } .ks-search input { font-size:16px; } .ks-select { flex:1; } .ks-select select { width:100%; height:44px; } .ks-filters > .kai-btn { min-height:44px; }
    .ks-result-line { display:block; } .ks-result-line span { display:block; } .ks-result-line span + span { font-size:11px; margin-top:4px; }
    .ks-table,.ks-table tbody { display:block; } .ks-table thead { display:none; } .ks-table tr { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 12px; padding:18px 0; border-top:1px solid var(--k-line); }
    .ks-table td { padding:0; border:0; } .ks-table td:first-child { grid-column:1/-1; } .ks-table .ks-category { display:none; } .ks-repo { display:none; } .ks-compat { align-self:center; } .ks-table tr:hover td { background:none; }
    .ks-action .kai-btn { min-height:44px; padding:6px 10px; background:var(--k-side); }
    .ks-pagination { flex-direction:column; gap:12px; } .ks-pagination > div { width:100%; justify-content:space-between; }
    .ks-detail-grid { grid-template-columns:1fr; } .ks-connect { grid-row:1; } .ks-detail-heading { margin-bottom:24px; } .ks-facts > div { grid-template-columns:110px minmax(0,1fr); } .ks-source summary span { float:none; display:block; margin:6px 0 0 18px; }
    .ks-guide > div { grid-template-columns:1fr; gap:20px; }
    .kai-catalog--public .ks-top { padding-inline:16px; }
    .ks-brand { font-size:13px; gap:7px; } .ks-brand-light { display:none; } .ks-brand .kai-logo__mark { width:26px; height:26px; font-size:15px; }
    .ks-brand-section { display:block; font-size:11px; }
    .ks-assistant-link { font-size:11px; } .kai-catalog--public .ks-theme { margin-left:2px; }
    .ks-use-tabs button { padding:12px 10px; font-size:12px; }
    .ks-use-panel textarea { font-size:16px; }
}
