/* ===== BSW-style skin: katalog materi + detail topik (lapisan tambahan) ===== */

/* ---- Katalog ---- */
#pane-katalog{background:var(--bg)}
.bk-wrap{max-width:1180px;margin:0 auto;padding:2.25rem 1.75rem 4.5rem;font-family:var(--font-sans);color:var(--text)}
.bk-head h1{font-size:clamp(1.7rem,3.2vw,2.5rem);line-height:1.12;font-weight:700;letter-spacing:-.015em;margin:0 0 .55rem}
.bk-head p{color:var(--text2);font-size:14px;line-height:1.7;max-width:62ch;margin:0}
.bk-bar{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;margin:1.4rem 0 1.5rem}
.bk-stats{display:flex;flex-wrap:wrap;gap:4px 18px;color:var(--text2);font-size:12.5px}
.bk-stats strong{color:var(--text);font-weight:600}
.bk-search{flex:1;min-width:220px;max-width:380px;margin-left:auto;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r);color:var(--text);font:13px var(--font-sans);padding:9px 12px}
.bk-search::placeholder{color:var(--text3)}
.bk-list{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
@media(min-width:1200px){.bk-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.bk-card{display:grid;grid-template-columns:112px minmax(0,1fr);background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r2);overflow:hidden}
.bk-card[hidden]{display:none}
.bk-cover{background:color-mix(in srgb,var(--ac) 15%,var(--bg2));border-right:1px solid color-mix(in srgb,var(--ac) 28%,var(--border));color:var(--ac);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:12px 6px;text-align:center}
.bk-cover b{font-size:46px;line-height:1;font-weight:700;letter-spacing:-.02em}
.bk-cover span{font-size:11px;color:var(--text2)}
.bk-body{padding:16px 18px 14px;min-width:0;display:flex;flex-direction:column;gap:10px}
.bk-top{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}
.bk-title{font-size:17px;line-height:1.3;font-weight:650;margin:0}
.bk-lv{flex-shrink:0;font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px;border:1px solid currentColor;white-space:nowrap}
.bk-lv.easy{color:var(--teal)}.bk-lv.medium{color:var(--amber)}.bk-lv.hard{color:var(--coral)}
.bk-desc{margin:0;font-size:13px;line-height:1.65;color:var(--text2);max-width:64ch}
.bk-facts{display:flex;flex-wrap:wrap;gap:2px 16px;font-size:12px;color:var(--text2)}
.bk-facts span:first-child{color:var(--text);font-weight:600}
.bk-prog{display:flex;align-items:center;gap:10px;font-size:11.5px;color:var(--text3)}
.bk-prog i{flex:1;max-width:220px;height:4px;border-radius:3px;background:var(--border2);overflow:hidden}
.bk-prog i b{display:block;height:100%;background:var(--ac)}
.bk-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.bk-chips em{font-style:normal;font-size:12px;color:var(--text3);margin-right:2px}
.bk-chip{font-size:11.5px;padding:2px 9px;border-radius:20px;border:1px solid var(--border2);color:var(--text2);background:var(--bg3)}
.bk-act{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:2px}
.bk-go,.bk-tog{font:600 12.5px var(--font-sans);border-radius:var(--r);padding:8px 14px;cursor:pointer;border:1px solid var(--border3)}
.bk-go{background:var(--ac);border-color:var(--ac);color:#06090d}
.bk-go:hover{filter:brightness(1.1)}
.bk-tog{color:var(--text2);background:transparent}
.bk-tog:hover{color:var(--text);border-color:var(--text3)}
.bk-tog[aria-expanded="true"]{color:var(--text);background:var(--bg3)}
.bk-groups[hidden]{display:none}
.bk-groups{margin-top:6px;border-top:1px solid var(--border);padding-top:10px;display:grid;gap:14px}
.bk-groups h3{font-size:12.5px;font-weight:600;color:var(--text);margin:0 0 4px}
.bk-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--border);color:var(--text2);font:12.5px var(--font-sans);padding:7px 2px;cursor:pointer}
.bk-row:hover{color:var(--text);background:var(--bg3)}
.bk-row span:first-child{flex:1;min-width:0}
.bk-row .d{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.bk-row .d.easy{background:var(--teal)}.bk-row .d.medium{background:var(--amber)}.bk-row .d.hard{background:var(--coral)}
.bk-row .h{font-size:11px;color:var(--text3);white-space:nowrap}
.bk-empty{padding:3rem 0;color:var(--text3);font-size:13px}
.bk-wrap :focus-visible,.bsw-modal :focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media(max-width:640px){
  .bk-wrap{padding:1.5rem 1rem 3rem}
  .bk-card{grid-template-columns:1fr}
  .bk-cover{flex-direction:row;justify-content:flex-start;gap:10px;padding:10px 16px;border-right:0;border-bottom:1px solid color-mix(in srgb,var(--ac) 28%,var(--border))}
  .bk-cover b{font-size:28px}
  .bk-top{flex-direction:column;gap:6px}
}

/* ---- Detail topik (modal) ---- */
.bsw-modal{max-width:860px;max-height:92vh;border-radius:14px;font-family:var(--font-sans)}
.bsw-modal .modal-head{padding:22px 28px 18px;align-items:flex-start}
.bsw-modal .modal-title{font-size:clamp(1.25rem,2.4vw,1.65rem);line-height:1.25;font-weight:700;letter-spacing:-.01em;margin-bottom:6px}
.bsw-modal .modal-sub{font-size:13px;line-height:1.6;color:var(--text2);max-width:62ch}
.bsw-modal .modal-body{padding:22px 28px 28px;display:flex;flex-direction:column;gap:20px}
.bsw-crumb{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-size:12px;color:var(--text3);margin-bottom:8px}
.bsw-crumb button{background:none;border:0;padding:0;color:var(--text2);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.bsw-crumb button:hover{color:var(--text)}
.bsw-lead{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:space-between;padding:14px 0;border-top:1px solid var(--border2);border-bottom:1px solid var(--border2)}
.bsw-facts{display:flex;flex-wrap:wrap;gap:10px 30px;margin:0}
.bsw-facts div{display:flex;flex-direction:column;gap:1px}
.bsw-facts dt{font-size:11.5px;color:var(--text3)}
.bsw-facts dd{margin:0;font-size:14px;font-weight:600;color:var(--text)}
.bsw-facts dd.easy{color:var(--teal)}.bsw-facts dd.medium{color:var(--amber)}.bsw-facts dd.hard{color:var(--coral)}
.bsw-cta{font:600 13px var(--font-sans);background:var(--blue);border:1px solid var(--blue);color:#06090d;border-radius:var(--r);padding:9px 16px;cursor:pointer}
.bsw-cta:hover{filter:brightness(1.1)}
/* blok bawaan dibuat polos: garis tepi kiri, tanpa warna isian */
.bsw-modal .modal-meta-row{display:none}
.bsw-modal .obj-section,.bsw-modal .why-section,.bsw-modal .conn-section,.bsw-modal .pitfall-section{background:none;border:0;border-left:2px solid var(--border3);border-radius:0;padding:2px 0 2px 16px;margin:0}
.bsw-modal .obj-section-title,.bsw-modal .why-section-title,.bsw-modal .conn-section-title,.bsw-modal .pitfall-section-title{font-size:14px;font-weight:650;letter-spacing:0;text-transform:none;color:var(--text);margin-bottom:6px}
.bsw-modal .obj-section-sub{font-style:normal;font-size:12.5px;color:var(--text2)}
.bsw-modal .obj-list li,.bsw-modal .why-section-text{font-size:13.5px;line-height:1.7;color:var(--text2)}
.bsw-modal .obj-num{background:none;border:1px solid var(--border3);color:var(--text2)}
#m-body > div[style*="border-left:3px solid #4d9eff"]{background:none!important;border:0!important;border-left:2px solid var(--blue)!important;border-radius:0!important;padding:2px 0 2px 16px!important}
.bsw-modal .ref-section-title{font-size:14px;font-weight:650;letter-spacing:0;text-transform:none;color:var(--text);margin:0 0 8px}
.bsw-modal .ref-item{background:none;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:11px 2px;margin:0}
.bsw-modal .ref-item:hover{background:var(--bg3)}
.bsw-pager{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;padding-top:16px;border-top:1px solid var(--border2)}
.bsw-pager button{flex:1 1 240px;max-width:48%;text-align:left;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r);padding:10px 14px;color:var(--text);font:600 13px var(--font-sans);cursor:pointer}
.bsw-pager button:hover{border-color:var(--text3)}
.bsw-pager button small{display:block;font:400 11.5px var(--font-sans);color:var(--text3);margin-bottom:2px}
.bsw-pager .nx{text-align:right;margin-left:auto}
@media(max-width:640px){
  .bsw-modal .modal-head,.bsw-modal .modal-body{padding-left:18px;padding-right:18px}
  .bsw-pager button{max-width:none}
}

.bk-row.static{cursor:default}.bk-row.static:hover{background:none;color:var(--text2)}
