.nb-library { margin:24px auto; padding:24px; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--surface); color:var(--text); }
.nb-library h2 { margin:0 0 12px; font-size:1.35rem; }
.nb-library summary { min-height:44px; padding:10px 0; cursor:pointer; font-weight:600; }
.nb-library details[open] summary { margin-bottom:12px; }
.nb-library h3 { margin:18px 0 8px; font-size:1rem; }
.nb-library p { color:var(--text-2); margin:8px 0 16px; }
.nb-actions,.nb-links { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.nb-library button,.nb-library .nb-link { min-height:44px; padding:10px 14px; border:1px solid var(--border); border-radius:10px; background:var(--surface-2); color:var(--text); font:inherit; cursor:pointer; text-decoration:none; }
.nb-library button:hover,.nb-library .nb-link:hover { border-color:var(--brand); }
.nb-library :focus-visible { outline:3px solid var(--brand); outline-offset:3px; }
.nb-library button[aria-pressed="true"],.nb-library .nb-primary { background:var(--brand); color:#fff; }
.nb-library input[type=text] { width:min(100%,320px); padding:12px; border:1px solid var(--border); border-radius:10px; background:var(--surface); color:var(--text); }
.nb-library label { display:block; margin:10px 0; }
.nb-plan { padding:16px 0; border-top:1px solid var(--border); }
.nb-plan small { display:block; color:var(--text-2); margin-bottom:8px; }
.nb-compare { overflow:auto; max-width:100%; }
.nb-compare table { min-width:540px; width:100%; border-collapse:collapse; }
.nb-compare th,.nb-compare td { padding:12px; border-bottom:1px solid var(--border); text-align:left; vertical-align:top; }
.nb-compare caption { text-align:left; padding:12px 0; font-weight:600; }
.nb-status { min-height:1.5em; }
.nb-library [hidden] { display:none!important; }
.nb-task-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.nb-task-grid a { display:block; padding:18px; border:1px solid var(--border); border-radius:12px; color:var(--text); text-decoration:none; background:var(--surface-2); }
.nb-task-grid strong,.nb-task-grid span { display:block; }
.nb-task-grid span { margin-top:8px; color:var(--text-2); }
@media(max-width:640px) { .nb-library { padding:18px; } .nb-task-grid { grid-template-columns:1fr; } .nb-actions { align-items:stretch; } }
