/* Библиотека учителя: шапка с разделами и источником, панель над списком, сетка плашек. */
#app:has(> .cab-tabs) { max-width:1120px }
.cab-tabs { margin-bottom:16px }
.cab-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; margin-bottom:12px }
.cab-head h1 { margin:0; font-size:25px; letter-spacing:-.01em }
.cab-scope { display:inline-flex; max-width:100%; overflow-x:auto; padding:3px; border-radius:11px; background:#e9ecf3 }
.cab-scope a { padding:6px 13px; border-radius:9px; color:var(--muted); font-size:14px; text-decoration:none; white-space:nowrap }
.cab-scope a:hover { color:var(--ink) }
.cab-scope a.on { background:#fff; color:var(--ink); font-weight:600; box-shadow:0 1px 2px rgba(20,30,60,.12) }
.cab-tabs nav { display:flex; gap:2px; overflow-x:auto; border-bottom:1px solid var(--line) }
.cab-tabs nav a { display:inline-flex; align-items:center; gap:7px; margin:0 0 -1px; padding:9px 12px; border-bottom:2px solid transparent; color:var(--muted); font-size:15px; text-decoration:none; white-space:nowrap }
.cab-tabs nav a:hover { color:var(--ink) }
.cab-tabs nav a.on { border-color:var(--brand); color:var(--brand); font-weight:600 }
.cab-host > .card:first-child > h1, .cab-host > .lib-card > h1 { display:none }
.cab-host > .card:first-child > h1 + p { margin-top:0 }
.cab-host .tabs { display:inline-flex; gap:0; padding:3px; margin-bottom:12px; border-radius:11px; background:#e9ecf3 }
.cab-host .tabs[hidden] { display:none }
.cab-host .tabs button { flex:none; padding:6px 14px; border:0; border-radius:9px; background:none; color:var(--muted); font-size:14px }
.cab-host .tabs button.on { background:#fff; color:var(--ink); box-shadow:0 1px 2px rgba(20,30,60,.12) }
.lib-bar { display:flex; align-items:center; gap:10px; margin-bottom:14px }
.lib-bar input { flex:1; min-width:0; padding:9px 12px }
.lib-note { flex:1; min-width:0 }
.lib-note + .lib-add { margin-left:0 }
.lib-add { display:inline-flex; align-items:center; gap:6px; flex:none; margin:0 0 0 auto; padding:9px 15px; border:0; border-radius:10px; background:var(--brand); color:#fff; font:inherit; font-size:15px; font-weight:600; text-decoration:none; cursor:pointer }
.lib-add:hover { filter:brightness(1.07) }
.lib-add.alt { margin-left:0; background:#eef2ff; color:var(--brand) }
.lib-empty { display:flex; flex-direction:column; align-items:center; gap:4px; padding:44px 16px; border:1px dashed #cdd5e5; border-radius:14px; color:var(--muted); font-size:14px; text-align:center }
.lib-empty .icon { margin-bottom:4px; color:#9fb4e6 }
.lib-empty b { color:var(--ink); font-size:16px }
.lib-empty a { margin-top:6px; color:var(--brand); text-decoration:none }
.p-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:14px; align-items:start }
.p-grid .p-card { display:block; margin:0; padding:0; overflow:hidden; border-radius:14px; transition:box-shadow .12s ease, border-color .12s ease }
.p-grid .p-card:hover { border-color:#c4d2f0; box-shadow:0 6px 18px rgba(20,40,90,.09) }
.p-grid .p-card[hidden] { display:none }
.p-grid .p-thumb { display:block; border-radius:0; outline:0; border-bottom:1px solid var(--line) }
.p-b, .p-grid .pb-body { padding:12px 14px 14px }
.p-grid h2 { margin:0; font-size:15.5px; line-height:1.3 }
.p-grid h2 a { color:var(--ink); text-decoration:none }
.p-grid h2 a:hover { color:var(--brand) }
.p-grid .p-b > p, .p-grid .pb-body > p { margin:3px 0 0; font-size:13px }
.p-acts { display:flex; gap:6px; margin-top:10px }
.p-main, .p-btn { flex:1; padding:7px 10px; border-radius:9px; font:inherit; font-size:14px; font-weight:600; text-align:center; text-decoration:none; cursor:pointer }
.p-main { border:0; background:#eef2ff; color:var(--brand) }
.p-btn { border:1px solid var(--line); background:#fff; color:var(--ink) }
.p-btn.on { border-color:var(--brand); color:var(--brand) }
.p-grid .links { gap:2px 12px; margin-top:9px; font-size:12.5px }
.p-grid .links a { color:var(--muted) }
.p-grid .links a:hover { color:var(--brand) }
.p-send { margin-top:10px; padding-top:10px; border-top:1px solid var(--line) }
.p-send[hidden] { display:none }
.p-send .btn { margin-top:8px; padding:8px }
.p-send label { margin-top:8px }
.p-send .ok { margin-top:6px }
.cab-host .lb-hero { padding:0; border-radius:0; background:none; color:var(--ink); box-shadow:none }
.cab-host .lb-hero::before, .cab-host .lb-hero::after { display:none }
.cab-host .lb-hero h2 { display:none }
.cab-host .lb-hero p { color:var(--muted) }
.cab-host .lb-hero input { padding:10px 12px; border:1px solid var(--line); box-shadow:none; font-size:15px }
.cab-host .lb-new { background:var(--brand); color:#fff }
.lb-own .lb-secs, .lb-own .lb-branch, .lb-own #lb-pills { display:none }
.rc-pub, .wb-pub { font-size:13px; color:var(--muted) }
.rc-pub a, .wb-pub a { color:var(--brand); cursor:pointer }
.wb-pub { margin-top:6px }
@media (max-width:640px) {
  .cab-head h1 { font-size:22px }
  .lib-bar { flex-wrap:wrap }
}
