:root{color-scheme:light dark;--bg:#f8f8f6;--surface:#fff;--text:#20201d;--muted:#6b6b63;--border:#d9d9d2;--accent:#315cbd;--danger:#a72b2b;--focus:#e28b00;--radius:6px;--s1:.4rem;--s2:.75rem;--s3:1.25rem;--s4:2rem}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 system-ui,-apple-system,sans-serif}a{color:var(--accent);overflow-wrap:anywhere}button,input,textarea,select{font:inherit;color:inherit}input,textarea,select{width:100%;padding:.55rem .65rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}textarea{resize:vertical}button,.button{display:inline-block;width:auto;padding:.5rem .8rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-decoration:none;cursor:pointer}.primary{color:white;background:var(--accent);border-color:var(--accent)}.danger{color:var(--danger)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.topbar{min-height:60px;display:flex;align-items:center;gap:var(--s2);padding:var(--s2) max(var(--s2),calc((100vw - 1320px)/2));border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:2}.brand{color:var(--text);font-weight:700;text-decoration:none;white-space:nowrap}.top-search{flex:1;max-width:560px;margin-left:auto}.link-button{border:0;background:transparent;padding:.4rem;color:var(--accent)}main{max-width:1320px;margin:auto}.catalog-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:var(--s4);padding:var(--s4) var(--s3)}.filters summary{font-weight:700;margin-bottom:var(--s2)}.stack{display:grid;gap:var(--s3)}.stack.compact{gap:var(--s2)}label{display:grid;gap:var(--s1);font-weight:600}.check{display:flex;align-items:center}.check input{width:auto}.section-heading,.card-heading,.detail-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3)}h1{font-size:1.7rem;margin-top:0}h2{font-size:1.15rem}.card-list{display:grid;gap:var(--s2)}.card{padding:var(--s3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.card h2{margin:0}.summary{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}.chips,.card-meta,.actions,.inline-fields{display:flex;align-items:center;gap:var(--s1);flex-wrap:wrap}.chip{padding:.15rem .45rem;border:1px solid var(--border);border-radius:999px;color:var(--text);font-size:.85rem;text-decoration:none}.tag{color:var(--accent)}.card-meta{margin-top:var(--s2);color:var(--muted);font-size:.9rem}.status{font-weight:650}.failed,.needs_review{color:var(--danger)}.reading-width,.narrow{max-width:820px;margin:0 auto;padding:var(--s4) var(--s3)}.narrow{max-width:460px}.auth-card{margin-top:8vh}.muted{color:var(--muted)}.processing,.source{padding:var(--s2);border-left:3px solid var(--border);background:var(--surface)}.source-text{white-space:pre-wrap;overflow-wrap:anywhere}.resource-list{padding-left:1.2rem}.resource-list li{margin:.5rem 0;overflow-wrap:anywhere}.inline{display:inline}.inline button{border:0;background:none;color:var(--danger);padding:.15rem}.inline-fields input{flex:1 1 280px}.inline-fields select{width:auto}.actions{padding-top:var(--s3);border-top:1px solid var(--border)}.actions h2{width:100%}.flash-wrap{max-width:820px;margin:var(--s2) auto}.flash{padding:var(--s2);border:1px solid var(--border);background:var(--surface)}.flash.error{border-color:var(--danger)}.pagination{display:flex;justify-content:space-between;padding:var(--s3)}.empty{padding:var(--s4);text-align:center;border:1px dashed var(--border)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-color-scheme:dark){:root{--bg:#141513;--surface:#1d1e1b;--text:#ebebe5;--muted:#aaa99e;--border:#41413b;--accent:#91b2ff;--danger:#ff9b9b;--focus:#ffc35b}.primary{color:#111;background:#91b2ff}}@media(max-width:700px){.topbar{position:static;padding:var(--s2)}.top-search{display:none}.catalog-layout{grid-template-columns:1fr;padding:var(--s3);gap:var(--s3)}.filters details:not([open]){padding-bottom:0}.section-heading{align-items:center}.detail-heading{display:block}.reading-width{padding:var(--s3)}.card{padding:var(--s2)}.inline-fields{align-items:stretch}.inline-fields select,.inline-fields button{width:100%}}

