/* Shared article reading and access styles. */
.article-access-panel{padding:1.25rem;border:1px solid var(--border,#d7e0e7);border-radius:20px;background:var(--surface,#fff);margin-block:1rem 1.8rem;min-width:0}
.article-access-panel p{line-height:2}
.article-labels{display:flex;flex-wrap:wrap;gap:.4rem;margin-block:.6rem}
.article-labels span:empty{display:none}
.article-labels span{font-size:.78rem;padding:.2rem .65rem;border-radius:99px;background:var(--surface-soft,var(--surface-subtle,#edf3f7));color:var(--text,#1b2420)}
.article-labels .article-free{color:#0d684f;background:#e3f5ed}
.article-labels .article-paid{color:#835300;background:#fff1ca}
.article-detail,.article-reading,.article-body-content,.book-study-variant{min-width:0;overflow-wrap:anywhere}
.article-body-content img,.article-body-content video{max-width:100%;height:auto}
.article-body-content table{display:block;max-width:100%;overflow-x:auto}
.article-reading .article-board-widget,.article-reading .book-study-layout{min-width:0}
.article-reading .move-list{overflow-y:auto;overscroll-behavior-y:auto;touch-action:pan-y}
@media(max-width:640px){.article-reading{padding-inline:12px}.article-reading .article-board-widget,.article-reading .book-study-layout{grid-template-columns:minmax(0,1fr)}.article-reading .article-board-side{width:100%}.article-body-content pre{max-width:100%;overflow:auto}}

/* Compact catalog. All catalog overrides are scoped away from article readers. */
.article-catalog{padding-block:36px 56px;min-width:0}
.article-catalog [hidden],.article-filter-dialog [hidden]{display:none!important}
.article-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}
.article-catalog-heading{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-block:8px 28px}
.article-catalog-heading .eyebrow{color:var(--link);font-size:.76rem;letter-spacing:0}
.article-catalog-heading h1{margin:8px 0;font-size:clamp(1.45rem,2.8vw,2.15rem);line-height:1.7;letter-spacing:-.05em}
.article-catalog-heading p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.9}
.article-library-note{display:flex;align-items:center;gap:12px;flex-shrink:0;padding:14px 18px;border:1px solid var(--brand-border,var(--border));border-radius:16px;background:var(--brand-soft);color:var(--text);font-size:.78rem}
.article-library-note>span:first-child{font-size:2.1rem;color:var(--link);line-height:1}
.article-library-note>span:last-child{margin-inline-start:8px;color:var(--link)}
.article-library-note small{display:block;margin-top:3px;color:var(--muted);font-size:.68rem}
.article-filter-panel{padding:12px;border:1px solid var(--border);border-radius:18px;background:var(--surface);margin:0;box-shadow:0 3px 16px rgb(0 0 0 / .025);min-width:0}
.article-toolbar{display:grid;grid-template-columns:minmax(190px,1fr) minmax(145px,.45fr) minmax(155px,.45fr) auto;align-items:center;gap:10px}
.article-catalog input,.article-catalog select{font:inherit;color:var(--text);box-sizing:border-box;max-width:100%;min-width:0;box-shadow:none}
.article-search{display:flex;align-items:center;gap:9px;min-width:0;height:52px;padding-inline:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-subtle)}
.article-search svg{width:21px;height:21px;flex:none;color:var(--muted)}
.article-search input{width:100%;height:100%;min-height:0;padding:0;border:0;background:transparent;font-size:.85rem;outline:none}
.article-search:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.article-quick-filter{display:grid;gap:0;min-width:0;height:52px;padding:6px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.article-quick-filter>span{font-size:.62rem;line-height:1.4;color:var(--muted)}
.article-quick-filter select{width:100%;height:28px;min-height:0;padding:0;padding-inline-end:16px;border:0;background-color:transparent;font-size:.78rem;line-height:1.5}
.article-quick-filter:focus-within{border-color:var(--brand)}
.article-advanced-toggle{display:flex;align-items:center;justify-content:center;gap:7px;min-height:52px;padding:0 15px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);font:inherit;font-size:.78rem;cursor:pointer;white-space:nowrap}
.article-advanced-toggle svg{width:20px;height:20px;flex:none}
.article-advanced-toggle:hover,.article-advanced-toggle.has-filters{border-color:var(--brand-border);background:var(--brand-soft)}
.article-advanced-toggle b{display:grid;place-items:center;min-width:20px;height:20px;padding-inline:4px;border-radius:6px;background:var(--brand);color:var(--brand-ink);font-size:.65rem}
.article-catalog[data-enhanced] .article-search-submit{display:none}
.article-catalog:not([data-enhanced]) .article-toolbar{grid-template-columns:minmax(170px,1fr) minmax(130px,.5fr) minmax(140px,.5fr) auto}
.article-server-errors.validation-summary-valid{display:none}
.article-active-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-block:14px 0}
.article-filter-chip{display:inline-flex;align-items:center;gap:9px;max-width:100%;padding:6px 10px;border:1px solid var(--brand-border,var(--border));border-radius:8px;background:var(--brand-soft);color:var(--text);font:inherit;font-size:.71rem;line-height:1.8;cursor:pointer}
.article-filter-chip>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.article-filter-chip>span:last-child{font-size:1rem;line-height:1}
.article-text-button{border:0;background:transparent;color:var(--link);font:inherit;font-size:.75rem;min-height:40px;padding:5px 8px;cursor:pointer}
.article-results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:24px 16px}
.article-results-toolbar h2{display:flex;align-items:center;gap:10px;margin:0;font-size:1rem}
.article-results-toolbar h2 span{padding:3px 9px;border-radius:6px;background:var(--surface-subtle);color:var(--muted-strong);font-size:.68rem;font-weight:400}
.article-sort select{min-height:40px;max-width:165px;padding:4px 10px;border:0;border-radius:8px;background:var(--surface);font-size:.75rem}
.article-catalog-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0}
.article-request-error{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding:12px 16px;border:1px solid var(--brand-border);border-radius:12px;background:var(--brand-soft);font-size:.8rem;line-height:1.8}
.article-loading-bar{height:3px;overflow:hidden;border-radius:4px;background:var(--surface-strong);margin-block:-3px 0}
.article-loading-bar span{display:block;width:35%;height:100%;border-radius:inherit;background:var(--brand);animation:article-load 1.2s ease-in-out infinite}
@keyframes article-load{0%{transform:translateX(110%)}100%{transform:translateX(-300%)}}
.article-catalog .article-public-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;transition:opacity .15s}
.article-catalog.is-filtering .article-public-grid{opacity:.48}
.article-catalog .article-public-card{display:grid;grid-template-columns:104px minmax(0,1fr);align-items:stretch;gap:14px;min-width:0;min-height:190px;padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:none;translate:none;color:var(--text);transition:border-color .18s,box-shadow .18s}
.article-catalog .article-public-card:hover{border-color:var(--brand-border);box-shadow:0 7px 24px rgb(0 0 0 / .045);translate:none}
.article-catalog .article-card-cover{position:relative;width:104px;min-height:138px;height:100%;max-height:170px;aspect-ratio:auto;align-self:center;border-radius:10px;background:linear-gradient(145deg,var(--surface-subtle),var(--brand-soft));font-size:2.6rem;isolation:isolate}
.article-catalog .article-card-cover::before{content:"♞";position:absolute;inset:0;display:grid;place-items:center;color:var(--brand);z-index:-1}
.article-catalog .article-card-cover img{width:100%;height:100%;object-fit:cover;min-height:138px;max-height:170px;border-radius:inherit}
.article-cover-placeholder{display:grid;justify-items:center;gap:5px;line-height:1.4}
.article-cover-placeholder>span{font-size:2.7rem;color:var(--brand)}
.article-cover-placeholder small{font-size:.62rem;color:var(--muted);font-weight:400}
.article-catalog .article-card-body{display:flex;flex-direction:column;min-width:0;min-height:0;padding:0}
.article-catalog .article-card-body .article-labels{display:flex;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:5px;margin:0 0 7px;min-height:23px}
.article-catalog .article-labels span{display:inline-flex;align-items:center;gap:3px;min-width:0;max-width:100%;padding:2px 6px;border-radius:5px;font-size:.59rem;line-height:1.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.article-catalog .article-labels svg{width:11px;height:11px;flex:none}
.article-catalog .article-card-topic{background:var(--surface-subtle);color:var(--muted-strong)}
.article-catalog .article-card-body h2{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:0 0 5px;font-size:.9rem;font-weight:700;line-height:1.8;overflow-wrap:anywhere}
.article-catalog .article-card-body>.article-card-summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:0;margin:0 0 8px;font-size:.72rem;line-height:1.8;color:var(--muted);overflow-wrap:anywhere}
.article-catalog .article-card-author{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-block-start:auto;font-size:.64rem;color:var(--muted);line-height:1.8}
.article-card-author>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.article-catalog .article-card-body footer{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-block-start:7px;padding-block-start:7px;border-block-start:1px solid var(--border);font-size:.62rem;line-height:1.8;color:var(--muted-strong)}
.article-card-arrow{font-size:1rem;line-height:1;color:var(--link)}
.article-catalog-empty{padding:44px 18px;text-align:center;border:1px dashed var(--border);border-radius:18px}
.article-catalog-empty>span{font-size:2.7rem;color:var(--brand)}
.article-catalog-empty h3{margin:10px 0;font-size:1rem}
.article-catalog-empty p{font-size:.82rem;color:var(--muted);margin:0 0 16px;line-height:1.9}
.article-catalog-pagination{padding-top:18px;text-align:center}
.article-catalog-pagination p{color:var(--muted);font-size:.73rem}
.article-pagination{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.article-pagination .button{min-height:44px;padding:8px 20px;font-size:.78rem;border-radius:10px}
.article-pagination:empty{display:none}
.article-catalog button:focus-visible,.article-catalog a:focus-visible,.article-catalog select:focus-visible{outline:2px solid var(--brand);outline-offset:3px}

/* Native modal: keyboard focus, Escape and inert background are browser-managed. */
.article-dialog-open{overflow:hidden}
.article-filter-dialog{width:min(560px,calc(100vw - 36px));max-height:min(85dvh,760px);padding:0;border:1px solid var(--border);border-radius:22px;background:var(--surface);color:var(--text);box-shadow:0 24px 100px rgb(0 0 0 / .2);overflow:hidden}
.article-filter-dialog[open]{display:flex;flex-direction:column}
.article-filter-dialog::backdrop{background:rgb(10 18 14 / .5);backdrop-filter:blur(3px)}
.article-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 24px 18px;border-bottom:1px solid var(--border)}
.article-dialog-header .eyebrow{font-size:.68rem;color:var(--link);letter-spacing:0}
.article-dialog-header h2{margin:4px 0 0;font-size:1.15rem}
.article-icon-button{display:grid;place-items:center;flex:none;width:40px;height:40px;border:1px solid var(--border);border-radius:50%;background:var(--surface-subtle);color:var(--text);font:inherit;font-size:1.4rem;line-height:1;cursor:pointer}
.article-dialog-body{overflow-y:auto;overscroll-behavior:contain;padding:18px 24px 24px;min-height:0}
.article-dialog-body>p{margin:0 0 18px;color:var(--muted);font-size:.77rem;line-height:1.9}
.article-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.article-filter-grid>label:last-child{grid-column:1/-1}
.article-filter-dialog label{display:grid;gap:7px;font-size:.78rem;min-width:0}
.article-filter-dialog select,.article-filter-dialog input{width:100%;min-height:46px;padding:9px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle);color:var(--text);font:inherit;font-size:.82rem;box-sizing:border-box}
.article-rating-filter{padding:20px 0 0;border:0;border-top:1px solid var(--border);margin:24px 0 0}
.article-rating-filter legend{float:inline-start;width:100%;margin:0 0 12px;font-size:.82rem;font-weight:700}
.article-rating-filter>label{clear:both}
.article-rating-inputs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.article-rating-inputs input{direction:ltr;text-align:start}
.article-filter-help{margin:10px 0 0;color:var(--muted);font-size:.68rem;line-height:1.9}
.article-dialog-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex:none;padding:16px 24px;border-top:1px solid var(--border);background:var(--surface)}
.article-dialog-footer .button{min-height:46px;border-radius:10px;font-size:.82rem;padding:8px 25px}
.article-sheet-handle{display:none}
.article-catalog:not([data-enhanced]) .article-filter-dialog{display:block;position:static;width:100%;max-height:none;margin-top:14px;box-shadow:none;border-radius:12px}
.article-catalog:not([data-enhanced]) .article-dialog-footer,.article-catalog:not([data-enhanced]) [data-close-filters]{display:none}
@media(max-width:1100px){.article-catalog .article-public-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.article-catalog-heading{gap:18px}.article-library-note{padding:12px}.article-toolbar{grid-template-columns:minmax(170px,1fr) minmax(125px,.6fr) minmax(135px,.6fr) auto}.article-advanced-toggle{padding-inline:12px}.article-advanced-toggle>span{font-size:.72rem}}
@media(max-width:800px){.article-catalog-heading{display:block}.article-library-note{display:none}.article-toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.article-search{grid-column:1/-1}.article-catalog:not([data-enhanced]) .article-toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.article-advanced-toggle{min-width:50px;padding-inline:12px}.article-advanced-toggle>span{display:none}.article-catalog{padding-block:24px 40px}.article-catalog-heading{padding-block:0 20px}}
@media(max-width:600px){
 .article-catalog.container{padding-inline:16px}
 .article-catalog-heading .eyebrow{font-size:.68rem}
 .article-catalog-heading h1{font-size:1.28rem;letter-spacing:-.035em;margin-block:5px}
 .article-catalog-heading p{font-size:.74rem;max-width:280px}
 .article-filter-panel{padding:9px;border-radius:15px}
 .article-toolbar{gap:7px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
 .article-search{height:46px;padding-inline:11px}.article-search input{font-size:.78rem}
 .article-quick-filter{height:48px;padding:5px 9px}.article-quick-filter select{font-size:.69rem}.article-quick-filter>span{font-size:.57rem}
 .article-advanced-toggle{min-height:48px;padding-inline:10px;gap:3px}.article-advanced-toggle svg{width:19px;height:19px}
 .article-active-filters{gap:5px;margin-block-start:10px}.article-filter-chip{padding:4px 8px;font-size:.64rem}.article-filter-chip>span:first-child{max-width:200px}
 .article-results-toolbar{padding-block:18px 8px;gap:8px}.article-results-toolbar h2{font-size:.88rem;gap:6px}.article-results-toolbar h2 span{font-size:.59rem;padding:3px 6px}.article-sort select{font-size:.69rem;max-width:135px;background:transparent}
 .article-catalog .article-public-grid{grid-template-columns:minmax(0,1fr);gap:10px}
 .article-catalog .article-public-card{grid-template-columns:84px minmax(0,1fr);min-height:136px;gap:12px;padding:11px;border-radius:13px}
 .article-catalog .article-card-cover{width:84px;min-height:112px;height:112px;border-radius:8px}
 .article-catalog .article-card-cover img{min-height:112px;height:112px}
 .article-cover-placeholder>span{font-size:2.2rem}.article-cover-placeholder small{font-size:.56rem}
 .article-catalog .article-card-body .article-labels{margin-block-end:4px;min-height:20px}
 .article-catalog .article-labels span{font-size:.55rem;padding:1px 5px}
 .article-catalog .article-card-body h2{font-size:.8rem;line-height:1.8;margin-block-end:5px}
 .article-catalog .article-card-body>.article-card-summary{display:none}
 .article-catalog .article-card-author{font-size:.61rem}
 .article-catalog .article-card-body footer{font-size:.59rem;margin-block-start:5px;padding-block-start:5px}
 .article-filter-dialog{position:fixed;inset:auto 0 0;width:100%;max-width:none;max-height:90dvh;margin:0;border-radius:22px 22px 0 0;border-bottom:0;box-sizing:border-box}
 .article-sheet-handle{display:block;width:36px;height:4px;flex:none;border-radius:4px;background:var(--border);margin:10px auto 0}
 .article-dialog-header{padding:14px 18px}.article-dialog-header h2{font-size:1rem}
 .article-dialog-body{padding:16px 18px 20px}.article-filter-grid{gap:14px}
 .article-dialog-footer{padding:14px 18px calc(14px + env(safe-area-inset-bottom,0px))}.article-dialog-footer .button{padding-inline:22px}
 .article-request-error{padding:10px;font-size:.72rem}
}
@media(prefers-reduced-motion:reduce){.article-catalog *{scroll-behavior:auto!important;transition:none!important;animation:none!important}.article-loading-bar span{width:100%;opacity:.65}}
