/* Resource browser consumes existing theme tokens; no site palette selection. */
.ktp-resource-trigger{display:inline-flex!important;align-items:center;justify-content:center;gap:8px;min-height:44px;font-family:inherit;font-size:16px;line-height:1.5;font-weight:650;color:inherit;background:transparent;cursor:pointer;text-decoration:none;white-space:nowrap}
.ktp-resource-trigger[hidden],.ktp-resource-browser[hidden]{display:none!important}
.ktp-resource-trigger-top{border:1px solid var(--line,var(--hm-line,#dce4ec));border-radius:8px;padding:6px 12px}
.ktp-resource-trigger-side{width:100%;margin-bottom:16px;border:1px solid var(--line,#dce4ec);border-radius:8px;padding:9px 12px}
.ktp-resource-trigger:focus-visible{outline:3px solid var(--teal,#067276);outline-offset:3px}
.ktp-resource-browser{--rn-ink:var(--ink,var(--hm-ink,#18334f));--rn-muted:var(--muted,var(--hm-text,#53657b));--rn-accent:var(--teal,var(--hm-ink,#067276));--rn-line:var(--line,var(--hm-line,#dce4ec));--rn-paper:var(--paper,var(--hm-cream,#f4f7fa));--rn-white:var(--white,#fff);box-sizing:border-box;inset:var(--rn-header-height,0px) 0 0;width:100%;max-width:none;height:calc(100dvh - var(--rn-header-height,0px));max-height:calc(100dvh - var(--rn-header-height,0px));margin:0;border:0;padding:0;background:var(--rn-white);color:var(--rn-ink);font:16px/1.6 "Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;overflow:hidden;overscroll-behavior:contain}
dialog.ktp-resource-browser:not([open]){display:none}
/* The one real header remains visible above the modal; native dialog keeps it inert. */
.ktp-resource-browser::backdrop{background:transparent}
.ktp-resource-browser *,.ktp-resource-browser *::before,.ktp-resource-browser *::after{box-sizing:border-box}
.ktp-resource-browser [hidden]{display:none!important}
.ktp-resource-browser button,.ktp-resource-browser a{font:inherit;color:inherit;touch-action:manipulation}
.ktp-resource-browser button{border:0;background:transparent;cursor:pointer}
.ktp-resource-browser a{text-decoration:none}
.ktp-resource-browser :is(a,button):focus-visible{outline:3px solid var(--rn-accent);outline-offset:-3px}
.ktp-resource-browser button:disabled{opacity:1;color:var(--rn-muted);cursor:default}
.ktp-resource-shell{height:100%;display:flex;flex-direction:column;min-width:0;min-height:0}
.ktp-resource-bar{display:flex;align-items:center;gap:20px;padding:12px max(24px,calc((100vw - 1424px)/2));border-bottom:1px solid var(--rn-line);background:var(--rn-white);flex:none}
.ktp-resource-bar button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;min-height:44px;padding:8px 12px;border:1px solid var(--rn-line);border-radius:6px}
.ktp-resource-heading{flex:1;min-width:0}
.ktp-resource-heading h2{font-size:20px;line-height:1.4;letter-spacing:0;margin:0;font-weight:750}
.ktp-resource-path{display:flex;align-items:center;flex-wrap:wrap;gap:2px;color:var(--rn-muted);font-size:14px;line-height:1.4}
.ktp-resource-path button{font-size:14px;border:0;padding:0;justify-content:flex-start}
.ktp-resource-path>span{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px}
.ktp-resource-close{flex:none}
.ktp-resource-body{display:grid;grid-template-columns:280px minmax(0,1fr);width:min(1472px,100%);margin:0 auto;min-height:0;flex:1;overflow:hidden}
.ktp-resource-subjects{padding:24px 22px;overflow:auto;overscroll-behavior:contain;border-right:1px solid var(--rn-line);background:var(--rn-paper)}
.ktp-resource-subjects button{width:100%;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:10px 14px;border-radius:6px;white-space:normal}
.ktp-resource-all{font-weight:700!important;margin-bottom:20px}
.ktp-resource-system{margin-bottom:28px}
.ktp-resource-system h3{font-size:18px;line-height:1.5;margin:0 0 8px}
.ktp-resource-system h3 button{font-weight:750}
.ktp-resource-group-list{display:grid;gap:5px}
.ktp-resource-group-list button{font-size:16px}
.ktp-resource-subjects button:hover,.ktp-resource-subjects button[aria-pressed=true]{color:var(--rn-accent);background:var(--rn-white);box-shadow:inset 3px 0 var(--rn-accent)}
.ktp-resource-results{min-width:0;padding:28px 36px 40px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.ktp-resource-intro,.ktp-resource-permission{color:var(--rn-muted);font-size:16px;margin:0 0 22px;max-width:none}
.ktp-resource-permission{margin:28px 0 0;border-top:1px solid var(--rn-line);padding-top:20px}
.ktp-resource-course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.ktp-resource-browser[data-level=course] .ktp-resource-course-grid{grid-template-columns:minmax(0,1fr);max-width:760px}
.ktp-resource-course{min-width:0;border:1px solid var(--rn-line);border-radius:10px;overflow:hidden;align-self:start}
.ktp-resource-course-system{font-size:14px;color:var(--rn-muted);margin:0;padding:15px 20px 0;background:var(--rn-paper)}
.ktp-resource-course h3{margin:0;padding:7px 20px 14px;min-height:52px;font-size:20px;font-weight:750;line-height:1.5;background:var(--rn-paper)}
.ktp-resource-course ul{list-style:none;padding:0;margin:0}
.ktp-resource-course li+li{border-top:1px solid var(--rn-line)}
.ktp-resource-course li>a,.ktp-resource-unavailable{display:block;padding:14px 20px;min-height:76px}
.ktp-resource-course a:hover{background:var(--rn-paper);color:var(--rn-accent)}
.ktp-resource-category{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:650}
.ktp-resource-status{display:block;font-size:14px;color:var(--rn-muted);margin-top:3px;line-height:1.6;overflow-wrap:anywhere}
.ktp-resource-unavailable{background:var(--rn-paper);color:var(--rn-muted)}
.ktp-resource-course a[aria-current=page]{box-shadow:inset 4px 0 var(--rn-accent)}
.ktp-resource-course-overview{margin:0;border-top:1px solid var(--rn-line)}
.ktp-resource-course-overview a{display:flex;align-items:center;min-height:44px;padding:10px 20px;font-size:14px}
@media(min-width:1000px){.ktp-has-resource-navigation .ktp-primary-nav{gap:20px}.ktp-resource-trigger-top{font-size:15px}}
@media(max-width:999px){.ktp-resource-bar{padding:12px 20px}.ktp-resource-body{grid-template-columns:230px minmax(0,1fr)}.ktp-resource-course-grid{grid-template-columns:1fr}.ktp-resource-results{padding:24px}.ktp-resource-subjects{padding:24px 14px}}
@media(max-width:700px){
  .ktp-resource-bar{gap:8px;padding:8px 12px}
  .ktp-resource-heading h2{font-size:18px}
  .ktp-resource-back{padding:8px!important}
  .ktp-resource-back span{display:none}
  .ktp-resource-close{padding:8px!important}
  .ktp-resource-close span{font-size:14px}
  .ktp-resource-path,.ktp-resource-path button{font-size:13px}
  .ktp-resource-path button{min-height:44px;padding:0}
  .ktp-resource-path span{overflow-wrap:anywhere}
  .ktp-resource-body{display:block;width:100%;overflow:hidden}
  .ktp-resource-subjects,.ktp-resource-results{height:100%;padding:20px 16px;border:0;overflow-y:auto;overflow-x:hidden}
  .ktp-resource-browser[data-level=exam] .ktp-resource-group-list,.ktp-resource-browser[data-level=exam] .ktp-resource-all{display:none}
  .ktp-resource-browser[data-level=subject] .ktp-resource-system h3{display:none}
  .ktp-resource-browser[data-level=subject] .ktp-resource-all{margin-bottom:16px}
  .ktp-resource-system{margin-bottom:16px}
  .ktp-resource-system h3 button,.ktp-resource-group-list button{min-height:56px;border:1px solid var(--rn-line);background:var(--rn-white);padding:12px 18px}
  .ktp-resource-group-list{gap:14px}
  .ktp-resource-course-grid{gap:20px}
  .ktp-resource-course li>a,.ktp-resource-unavailable{padding:14px 18px}
  .ktp-resource-trigger-top{font-size:14px;padding:5px 9px}
  .ktp-resource-course h3{font-size:19px}
}
@media(prefers-reduced-motion:reduce){.ktp-resource-browser,.ktp-resource-browser *{scroll-behavior:auto!important}}
@media(max-width:760px){.ktp-has-resource-navigation .ktp-primary-nav{flex-wrap:wrap;gap:6px 18px}.ktp-has-resource-navigation .ktp-primary-nav .ktp-resource-trigger{min-height:44px}}
@media(max-width:700px){.frame>.sidebar:has(>.ktp-resource-trigger-side){display:block;padding-top:0;margin-bottom:18px}.frame>.sidebar>.side-label,.frame>.sidebar>.side-nav,.frame>.sidebar>.side-note{display:none}.frame>.sidebar>.ktp-resource-trigger-side{margin:0;justify-content:space-between}}
@media(max-width:1100px){.ktp-global-header.ktp-has-resource-navigation .ktp-header-inner{flex-wrap:wrap}.ktp-global-header.ktp-has-resource-navigation .ktp-primary-nav{order:3;width:100%;flex-wrap:wrap;gap:6px 18px;border-top:1px solid var(--line,#dce4ec);padding-top:6px}.ktp-global-header.ktp-has-resource-navigation .ktp-user-navigation{margin-left:auto}}
@media(max-width:900px){.frame>.sidebar:has(>.ktp-resource-trigger-side){display:block;padding-top:0;margin-bottom:18px}.frame>.sidebar>.side-label,.frame>.sidebar>.side-nav,.frame>.sidebar>.side-note{display:none}.frame>.sidebar>.ktp-resource-trigger-side{margin:0;justify-content:space-between}}
.ktp-resource-fallback{position:relative;inset:auto;width:100%;height:auto;max-height:none;margin:24px auto;overflow:visible}
.ktp-resource-fallback>h2{padding:20px 24px;font-size:22px}
.ktp-resource-fallback .ktp-resource-results{height:auto;overflow:visible}

/* Native workbench owns the viewport in every mode; ordinary site resource navigation remains available. */
body.workbench-page .frame>.sidebar:has(>.ktp-resource-trigger-side){display:none}
