/* Shared entrance and article library. Scoped to avoid changing reading pages. */
/* Native modal keeps focus and Escape behavior inside reading-data management. */
.reads-dialog{width:min(720px,calc(100% - 32px));max-height:calc(100dvh - 40px);margin:auto;padding:30px;border:1px solid #2a4561;border-radius:22px;background:#0d1a2d;color:#e7effb;box-shadow:0 30px 120px #0008;overflow:auto;color-scheme:dark}
.reads-dialog:not([open]){display:none}
.reads-dialog::backdrop{background:#020813bb;backdrop-filter:blur(6px)}
.reads-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.reads-kicker{color:#78c8f0;font-size:11px;letter-spacing:1px}
.reads-heading h2{margin:10px 0 0;font-size:27px;line-height:1.5;color:#e7effb;font-weight:700}
.reads-close{width:44px;height:44px;flex:none;border:1px solid #2a4561;border-radius:11px;background:#102139;color:#a3b3cb;font:23px system-ui;cursor:pointer}
.reads-intro{font-size:13px;line-height:1.9;color:#a3b3cb;margin:16px 0}
.reads-stat{padding:13px 16px;border-radius:10px;background:#122d45;color:#a9ddf6;font-size:13px}
.reads-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}
.reads-options section{display:flex;flex-direction:column;align-items:flex-start;padding:20px;border:1px solid #223853;border-radius:14px;background:#102139}
.reads-step{font-size:11px;color:#78c8f0}
.reads-options h3,.reads-preview h3{font-size:17px;font-weight:650;margin:12px 0 8px;color:#e7effb}
.reads-options p,.reads-preview p{font-size:12px;line-height:1.9;color:#a3b3cb;margin:0 0 18px}
.reads-options .reads-button{margin-top:auto}
.reads-button{min-height:44px;border:1px solid #365675;border-radius:9px;background:#0d1a2d;color:#a9ddf6;padding:10px 15px;font:inherit;font-size:12px;cursor:pointer}
.reads-button:hover,.reads-close:hover{border-color:#78c8f0;color:#d3efff}
.reads-button:disabled{opacity:.5;cursor:default}
.reads-primary{background:#8ad6f4;color:#08263d;border-color:#8ad6f4}
.reads-primary:hover{color:#08263d;background:#b1e6fc}
.reads-preview{margin-top:18px;border:1px solid #47738f;background:#122d45;border-radius:14px;padding:18px}
.reads-preview[hidden]{display:none!important}
.reads-preview h3{margin-top:0}.reads-preview>div{display:flex;gap:10px;flex-wrap:wrap}
.reads-feedback{font-size:13px;line-height:1.8;color:#a9ddf6;min-height:0;margin-top:16px;overflow-wrap:anywhere}.reads-feedback:empty{display:none}.reads-feedback.is-error{color:#ffb6aa}
.reads-footer{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;border-top:1px solid #223853;padding-top:18px;margin-top:22px;font-size:11px;line-height:1.8;color:#a3b3cb}.reads-footer a{color:#78c8f0}
.reads-dialog :is(button,a):focus-visible{outline:2px solid #8ad6f4;outline-offset:3px}
@media(max-width:600px){.reads-dialog{padding:22px 18px;border-radius:17px;max-height:calc(100dvh - 24px)}.reads-heading h2{font-size:22px}.reads-options{grid-template-columns:1fr}.reads-options section{padding:17px}.reads-options h3{margin:8px 0}.reads-options p{margin-bottom:12px}.reads-footer{gap:9px}}
@media(max-width:420px){.library-page .brand-name{display:none}.library-page .topbar .t-wrap{gap:8px}.library-page .top-nav{gap:0}.library-page .top-nav a{padding:8px 6px}}
.library-page{--lb-bg:#f4f7fb;--lb-panel:#fff;--lb-panel-soft:#f8faff;--lb-text:#14233b;--lb-muted:#5f718a;--lb-line:#dce5ef;--lb-accent:#176cad;--lb-accent-soft:#eaf4ff;--lb-shadow:0 12px 40px rgba(30,60,100,.05);background:var(--lb-bg);color:var(--lb-text)}
html[data-theme="dark"] .library-page,.home-library{--lb-bg:#07101f;--lb-panel:#0d1a2d;--lb-panel-soft:#102139;--lb-text:#e7effb;--lb-muted:#a3b3cb;--lb-line:#223853;--lb-accent:#78c8f0;--lb-accent-soft:#122d45;--lb-shadow:0 12px 40px rgba(0,0,0,.12)}
.library-page .topbar{background:var(--lb-bg);border-color:var(--lb-line)}
.library-page .topbar .t-wrap{max-width:1220px;margin:auto;gap:22px;height:70px}
.library-page .brand-name{color:var(--lb-text)}
.library-page .top-nav a{color:var(--lb-muted)}
.library-page .icon-btn{width:42px;height:42px;border-color:var(--lb-line);background:var(--lb-panel);color:var(--lb-text)}
.library-shell{max-width:1220px;margin:0 auto;padding:44px 20px 60px}
.library-kicker{display:flex;align-items:center;gap:9px;color:var(--lb-accent);font-size:12px;letter-spacing:1px;font-weight:650}
.library-kicker>span{width:6px;height:6px;border-radius:50%;background:var(--lb-accent)}
.library-heading{display:flex;align-items:baseline;gap:20px;flex-wrap:wrap;margin-top:16px}
.library-heading h1{font-size:36px;line-height:1.3;letter-spacing:-.8px;font-weight:750;color:var(--lb-text);overflow-wrap:anywhere}
.library-total{color:var(--lb-muted);font-size:13px}
.library-intro{color:var(--lb-muted);font-size:15px;margin-top:12px;line-height:1.8}
.library-controls{display:grid;grid-template-columns:minmax(260px,1fr) 176px 164px;align-items:end;gap:14px;margin-top:28px}
.library-search{display:flex;align-items:center;gap:12px;height:54px;padding:0 17px;border:1px solid var(--lb-line);background:var(--lb-panel);border-radius:12px;box-shadow:var(--lb-shadow)}
.library-search svg{width:20px;height:20px;fill:none;stroke:var(--lb-accent);stroke-width:1.8;flex:none}
.library-search input,.home-library input{width:100%;min-width:0;border:0;outline:none;background:transparent;color:var(--lb-text);font:inherit;font-size:15px}
.library-search input::placeholder,.home-library input::placeholder{color:var(--lb-muted);opacity:.9}
.library-search kbd{font:12px system-ui;color:var(--lb-muted);border:1px solid var(--lb-line);border-radius:5px;padding:1px 7px}
.library-search:focus-within,.home-library .home-library-form:focus-within{border-color:var(--lb-accent);box-shadow:0 0 0 3px var(--lb-accent-soft)}
.library-select{display:grid;gap:7px;color:var(--lb-muted);font-size:12px}
.library-select select{height:54px;max-width:100%;border:1px solid var(--lb-line);border-radius:12px;padding:0 12px;background:var(--lb-panel);color:var(--lb-text);font:inherit;font-size:14px;cursor:pointer;color-scheme:light}
html[data-theme="dark"] .library-select select{color-scheme:dark}
.library-categories{margin-top:18px;border:1px solid var(--lb-line);border-radius:12px;background:var(--lb-panel)}
.library-categories summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:52px;padding:12px 17px;cursor:pointer;color:var(--lb-muted);font-size:13px}
.library-categories summary::-webkit-details-marker{display:none}
.category-symbol{font-size:21px;color:var(--lb-accent)}
.library-categories summary strong{color:var(--lb-text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.category-chevron{margin-left:auto;font-size:19px;transition:transform .15s}
.library-categories[open] .category-chevron{transform:rotate(180deg)}
.category-body{padding:0 17px 18px;border-top:1px solid var(--lb-line)}
.category-search{display:flex;align-items:center;gap:14px;color:var(--lb-muted);font-size:12px;margin-top:16px}
.category-search input{width:260px;max-width:75%;min-height:40px;border:1px solid var(--lb-line);border-radius:8px;background:var(--lb-panel-soft);padding:8px 12px;font:inherit;color:var(--lb-text)}
.library-page .cat-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.library-page .cat-chip{display:flex;gap:8px;align-items:center;min-height:38px;border:1px solid var(--lb-line);border-radius:8px;background:var(--lb-panel-soft);padding:7px 12px;color:var(--lb-muted);font:inherit;font-size:12px;cursor:pointer}
.library-page .cat-chip[hidden]{display:none}
.library-page .cat-chip span{font-size:11px;opacity:.8}
.library-page .cat-chip.active{border-color:var(--lb-accent);background:var(--lb-accent-soft);color:var(--lb-accent)}
.library-results{margin-top:34px;scroll-margin-top:90px}
.results-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.results-heading>div{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.results-heading h2{font-size:18px;font-weight:650;color:var(--lb-text);overflow-wrap:anywhere}
.results-heading #catCount{font-size:12px;color:var(--lb-muted);white-space:nowrap}
.library-text-btn{border:0;background:transparent;color:var(--lb-accent);font:inherit;font-size:13px;cursor:pointer;min-height:40px;flex:none}
.library-read-summary{font-size:12px;color:var(--lb-muted);margin-top:9px;line-height:1.6}
.library-page .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:21px}
.library-page .library-card{position:relative;border:1px solid var(--lb-line);border-radius:16px;background:var(--lb-panel);min-width:0;box-shadow:var(--lb-shadow);transition:border-color .18s,background .18s}
.library-page .library-card:hover{border-color:var(--lb-accent);background:var(--lb-panel-soft)}
.library-page .card{display:block;position:relative;width:100%;height:100%;min-height:200px;padding:22px 66px 20px 22px;border:0;border-radius:16px;background:none;box-shadow:none;transform:none;color:var(--lb-text)}
.library-page .card:hover{box-shadow:none;transform:none}
.library-page .card-category{display:block;font-size:11px;letter-spacing:.4px;color:var(--lb-accent);margin-bottom:10px;line-height:1.4;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.library-page .card-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;font-size:17px;line-height:1.55;font-weight:650;color:var(--lb-text);margin:0}
.library-page .card-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.85;color:var(--lb-muted);margin-top:10px}
.library-page .card-meta{display:flex;gap:12px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--lb-muted);margin-top:17px;line-height:1.5}
.library-page .read-state{margin-left:auto}
.library-page .is-read .read-state{color:var(--lb-accent)}
.library-page .card-mark{position:absolute;top:16px;right:14px;width:44px;height:44px;border:1px solid var(--lb-line);border-radius:10px;opacity:1;background:var(--lb-panel-soft);color:var(--lb-muted);font-size:19px;display:grid;place-items:center;cursor:pointer;transform:none}
.library-page .card-mark.on{color:var(--lb-accent);border-color:var(--lb-accent);background:var(--lb-accent-soft)}
.library-page .card-mark:hover{color:var(--lb-accent);border-color:var(--lb-accent)}
.library-pagination{display:flex;flex-direction:column;align-items:center;gap:13px;padding-top:30px}
.library-pagination p{color:var(--lb-muted);font-size:12px}
.library-button{min-height:44px;padding:11px 24px;border:1px solid var(--lb-line);border-radius:10px;background:var(--lb-panel);color:var(--lb-accent);font:inherit;font-size:13px;cursor:pointer;transition:border-color .15s}
.library-button:hover{border-color:var(--lb-accent)}
.library-empty{padding:58px 20px;text-align:center;background:var(--lb-panel);border:1px dashed var(--lb-line);border-radius:16px;margin-top:20px}
.library-empty>span{font-size:40px;color:var(--lb-accent)}
.library-empty h3{font-size:18px;margin:12px 0;color:var(--lb-text)}
.library-empty p{color:var(--lb-muted);font-size:14px;margin-bottom:22px;line-height:1.8}
.library-loading{padding:40px;text-align:center;color:var(--lb-muted)}
.library-page .site-footer{border-color:var(--lb-line);background:var(--lb-bg);color:var(--lb-muted);font-size:12px}
.library-page .site-footer .t-wrap{max-width:1220px;margin:auto;display:flex;gap:14px;justify-content:space-between;flex-wrap:wrap;padding:24px 20px}
.library-skip,.library-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}
.library-skip:focus{position:fixed;top:10px;left:12px;z-index:100;clip:auto;width:auto;height:auto;margin:0;padding:12px 18px;border-radius:8px;background:var(--lb-panel);color:var(--lb-accent)}
.library-page :is(button,a,input,select,summary):focus-visible{outline:2px solid var(--lb-accent);outline-offset:3px}
.library-page [hidden]{display:none!important}
/* A useful entry before the existing statistics dashboard. */
.library-scope{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:9px;min-height:30px}
.library-scope p{font-size:12px;color:var(--lb-muted);line-height:1.7}
.library-scope .library-text-btn{min-height:32px}
.library-search #clearSearch{flex:none;width:36px;height:40px;border:0;border-radius:7px;background:transparent;color:var(--lb-muted);font:22px system-ui;cursor:pointer}
.library-search #clearSearch:hover{background:var(--lb-accent-soft);color:var(--lb-accent)}
.library-search input::-webkit-search-cancel-button{display:none}
.results-heading .results-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.library-view{display:flex;padding:3px;border:1px solid var(--lb-line);border-radius:10px;background:var(--lb-panel)}
.library-view button{min-width:54px;min-height:38px;border:0;border-radius:7px;padding:6px 12px;background:transparent;color:var(--lb-muted);font:inherit;font-size:12px;cursor:pointer}
.library-view button[aria-pressed="true"]{color:var(--lb-accent);background:var(--lb-accent-soft);font-weight:650}
.library-page mark{background:#ffe29a;color:#443000;border-radius:3px;padding:0 .05em;box-decoration-break:clone}
html[data-theme="dark"] .library-page mark{background:#5c4920;color:#fff0bb}
.matched-tags{display:block;font-size:11px;color:var(--lb-accent);margin-top:3px}
.library-page .grid.is-list{grid-template-columns:1fr;gap:10px}
.library-page .is-list .card{display:grid;grid-template-columns:140px minmax(0,1fr) 180px;gap:8px 22px;align-items:center;min-height:110px;padding:20px 76px 20px 22px}
.library-page .is-list .card-category{grid-column:1;grid-row:1/3;margin:0;white-space:normal;line-height:1.7}
.library-page .is-list .card-title{grid-column:2;grid-row:1;font-size:16px}
.library-page .is-list .card-desc{grid-column:2;grid-row:2;margin:0;-webkit-line-clamp:1}
.library-page .is-list .card-meta{grid-column:3;grid-row:1/3;margin:0;justify-content:flex-end;gap:8px 14px}
.library-page .is-list .read-state{width:100%;text-align:right;margin:0}
.library-page .is-list .card-mark{top:50%;transform:translateY(-50%)}
@media(max-width:900px){.library-page .is-list .card{grid-template-columns:110px minmax(0,1fr)}.library-page .is-list .card-meta{grid-column:2;grid-row:3;justify-content:flex-start}.library-page .is-list .read-state{width:auto;text-align:left}}
@media(max-width:720px){
 .results-heading{align-items:flex-start;flex-wrap:wrap;gap:10px}.results-heading .results-actions{margin-left:auto;gap:8px}.library-view button{min-height:38px;min-width:48px;padding:6px 10px}
 .library-page .is-list .card{display:block;min-height:0;padding:17px 68px 17px 17px}.library-page .is-list .card-category{margin-bottom:7px;font-size:10px}.library-page .is-list .card-desc{display:none}.library-page .is-list .card-title{-webkit-line-clamp:3;font-size:15px}.library-page .is-list .card-meta{display:flex;margin-top:10px;font-size:10px;gap:8px}
 .library-search #clearSearch{height:44px;width:36px}.library-search:has(#clearSearch:not([hidden])) kbd{display:none}
}
.home-library{width:calc(100% - 40px);max-width:1740px;margin:20px auto 24px;padding:27px 30px 22px;border:1px solid var(--lb-line);border-radius:18px;background:radial-gradient(ellipse at 95% 0%,rgba(39,133,180,.13),transparent 65%),var(--lb-panel);color:var(--lb-text);display:grid;grid-template-columns:minmax(260px,.9fr) minmax(320px,1.1fr);gap:20px 36px;align-items:center}
.home-library h2{font-size:27px;line-height:1.3;letter-spacing:.2px;color:var(--lb-text);font-weight:700}
.home-library p{font-size:13px;line-height:1.8;color:var(--lb-muted);margin-top:9px}
.home-library-form{display:flex;align-items:center;gap:12px;background:#091526;border:1px solid var(--lb-line);border-radius:12px;padding:6px 6px 6px 18px;min-height:54px}
.home-library-form input{font-size:14px}
.home-library-form button{background:#8ad6f4;color:#08263d;border:0;border-radius:8px;padding:12px 20px;white-space:nowrap;font:inherit;font-size:13px;font-weight:650;cursor:pointer}
.home-library-topics{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.home-library-topics>span{font-size:11px;color:var(--lb-muted);margin-right:5px}
.home-library-topics a{font-size:11px;color:var(--lb-muted);border:1px solid var(--lb-line);border-radius:7px;padding:6px 10px;transition:color .15s,border-color .15s}
.home-library-topics a:hover{color:var(--lb-accent);border-color:var(--lb-accent)}
.home-library :is(input,button,a):focus-visible{outline:2px solid var(--lb-accent);outline-offset:3px}
@media(max-width:720px){
 .library-shell{padding-top:28px}.library-heading{gap:10px}.library-heading h1{font-size:28px}.library-total{font-size:12px}.library-intro{font-size:13px}
 .library-controls{grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.library-search{grid-column:1/-1}.library-select select{height:46px}
 .library-page .topbar .t-wrap{height:62px;gap:12px}.library-page .top-nav{display:flex;justify-content:flex-end}.library-page .top-nav a{font-size:12px;padding:7px 9px}
 .library-page .grid{grid-template-columns:1fr;gap:12px}.library-page .card{min-height:178px;padding:20px 66px 20px 20px}.library-page .card-title{font-size:16px}.library-page .card-mark{width:44px;height:44px;right:12px}
 .library-categories summary{gap:9px}.results-heading h2{font-size:16px}.library-results{margin-top:27px}.category-search{flex-wrap:wrap}.category-search input{width:100%;max-width:100%}
 .home-library{width:calc(100% - 28px);grid-template-columns:1fr;margin-top:14px;padding:22px 20px;gap:18px}.home-library h2{font-size:24px}.home-library-topics{gap:7px}.home-library-topics>span{width:100%}.home-library-form{padding-left:12px}.home-library-form button{padding:12px 14px}
}
@media(prefers-reduced-motion:reduce){.library-page *, .home-library *{scroll-behavior:auto!important;transition:none!important}}



@media(max-width:720px){.library-page .top-nav a{min-height:44px;display:flex;align-items:center}}
