/* Public plugin surfaces only; theme header/footer keep their own styles. */
.oq-portal { --oq-ink:#2d382f; --oq-green:#38543f; --oq-paper:#fcfbf7; --oq-line:#e1e4db; --oq-muted:#667167; box-sizing:border-box; width:100%; max-width:1100px; margin:24px auto; padding:clamp(18px,3vw,32px); border:1px solid var(--oq-line); border-radius:14px; background:var(--oq-paper); color:var(--oq-ink); font:16px/1.7 Verdana,system-ui,sans-serif; overflow-wrap:anywhere; }
.oq-portal *, .oq-portal *::before, .oq-portal *::after { box-sizing:border-box; }
.oq-portal h1 { font:400 clamp(28px,3.5vw,38px)/1.2 Georgia,serif; color:var(--oq-ink); margin:8px 0 14px; }
.oq-portal h2 { font:400 clamp(23px,3vw,28px)/1.3 Georgia,serif; color:var(--oq-ink); margin:24px 0 14px; }
.oq-portal h3,.oq-portal h4 { color:var(--oq-ink); line-height:1.4; margin:0 0 12px; }
.oq-portal h3 { font-size:1.18em; }
.oq-portal h4 { font-size:1.05em; }
.oq-portal p { margin:0 0 16px; }
.oq-portal a { color:var(--oq-green); text-underline-offset:3px; }
.oq-portal .oq-nav { display:flex; align-items:stretch; flex-wrap:wrap; gap:10px; padding:0 0 22px; border-bottom:1px solid var(--oq-line); margin:0 0 26px; }
.oq-portal .oq-nav a { display:flex; align-items:center; justify-content:center; padding:10px 15px; border:1px solid var(--oq-line); border-radius:7px; background:#fff; color:var(--oq-green); font:600 .9em/1.4 Verdana,system-ui,sans-serif; text-decoration:none; min-height:46px; }
.oq-portal .oq-nav a[aria-current] { background:#eaf0e5; border-color:#b9c8af; }
.oq-portal .oq-nav .oq-nav-ask { margin-left:auto; }
.oq-portal .oq-nav a:hover,.oq-portal .oq-theme-card:hover { border-color:#a5b397; background:#f2f5ed; }
.oq-portal .oq-page-header { display:block; padding:0; margin:0 0 24px; background:none; }
.oq-portal .oq-eyebrow,.oq-portal .oq-label { display:block; font-size:.76em; letter-spacing:.055em; font-weight:700; color:var(--oq-green); margin:0 0 8px; }
.oq-portal .oq-intro { max-width:72ch; color:var(--oq-muted); margin:0; }
.oq-portal .oq-filters { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) auto; align-items:end; gap:16px; padding:20px; margin:0 0 24px; border:1px solid var(--oq-line); border-radius:10px; background:#fff; }
.oq-portal .oq-filters label { display:grid; gap:7px; min-width:0; margin:0; font-size:.86em; font-weight:600; }
.oq-portal .oq-filters input,.oq-portal .oq-filters select { display:block; box-sizing:border-box; min-width:0; max-width:100%; width:100%; height:48px; margin:0; padding:10px 12px; border:1px solid #ccd3c6; border-radius:6px; background:#fff; color:var(--oq-ink); font:400 16px/1.4 Verdana,system-ui,sans-serif; }
.oq-portal .oq-filters button,.oq-portal .oq-button { display:inline-flex; justify-content:center; align-items:center; min-height:48px; margin:0; padding:11px 22px; border:1px solid var(--oq-green); border-radius:6px; background:var(--oq-green); color:#fff; font:600 .9em/1.4 Verdana,system-ui,sans-serif; text-decoration:none; cursor:pointer; }
.oq-portal .oq-results { color:var(--oq-muted); font-size:.88em; margin:0 0 12px; }
.oq-portal .oq-reading-table { width:100%; max-width:100%; margin:0; border-collapse:collapse; table-layout:fixed; font:inherit; background:#fff; }
.oq-portal .oq-reading-table th:first-child { width:155px; }
.oq-portal .oq-reading-table td,.oq-portal .oq-reading-table th { border:0; border-bottom:1px solid var(--oq-line); text-align:left; vertical-align:top; padding:24px 18px; }
.oq-portal .oq-reading-table thead th { padding:13px 18px; background:#edf1e8; font-size:.82em; font-weight:600; }
.oq-portal .oq-reading-table tbody th a { font-size:.88em; }
.oq-portal .oq-date { display:block; font-size:.78em; font-weight:400; color:var(--oq-muted); margin:7px 0 12px; }
.oq-portal .oq-original { max-width:100%; white-space:pre-wrap; overflow-wrap:anywhere; word-break:normal; }
.oq-portal .oq-original-html { white-space:normal; overflow-x:auto; }
.oq-portal .oq-original-html img,.oq-portal .oq-original-html video { max-width:100%; height:auto; }
.oq-portal .oq-answer { border-left:3px solid #b7c8ab; border-radius:0 8px 8px 0; background:#f5f7f0; padding:18px 20px; margin-top:24px; }
.oq-portal .oq-answer > :last-child { margin-bottom:0; }
.oq-portal .oq-priest,.oq-portal .oq-awaiting { font-size:.88em; color:var(--oq-muted); margin-top:16px; }
.oq-portal .oq-tags { display:flex; flex-wrap:wrap; gap:7px; margin:18px 0 0; }
.oq-portal .oq-tag { display:inline-block; max-width:100%; border:1px solid #d9dfd1; border-radius:16px; padding:4px 11px; background:#eef2e7; font-size:.76em; line-height:1.5; text-decoration:none; }
.oq-portal .oq-pagination { display:flex; flex-wrap:wrap; gap:12px; align-items:center; padding:24px 0 0; }
.oq-portal .oq-pagination span { font-size:.86em; margin-right:auto; color:var(--oq-muted); }
.oq-portal .oq-pagination a { padding:9px 14px; border:1px solid var(--oq-line); border-radius:6px; background:#fff; text-decoration:none; font-size:.86em; }
.oq-portal .oq-theme-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:18px; margin:24px 0; }
.oq-portal .oq-theme-card { display:flex; flex-direction:column; align-items:flex-start; gap:12px; text-decoration:none; border:1px solid var(--oq-line); background:#fff; padding:22px; border-radius:10px; }
.oq-portal .oq-theme-card h2,.oq-portal .oq-theme-card h3 { margin:0; font-size:20px; }
.oq-portal .oq-theme-card span { font-size:.82em; color:var(--oq-muted); margin-top:auto; }
.oq-portal .oq-library-source { margin:24px 0; padding:24px; border:1px solid var(--oq-line); border-radius:10px; background:#fff; scroll-margin-top:24px; }
.oq-portal .oq-source-number { display:inline-block; margin-bottom:18px; padding:4px 10px; border-radius:5px; background:#edf1e8; font-size:.82em; font-weight:600; text-decoration:none; }
.oq-portal .oq-breadcrumb { margin:0 0 24px; }
.oq-portal .oq-back { display:inline-flex; align-items:center; gap:8px; max-width:100%; font-size:.88em; font-weight:600; }
.oq-portal .oq-detail-content { padding:24px; border:1px solid var(--oq-line); border-radius:10px; background:#fff; }
.oq-portal .oq-detail-actions { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px; border-top:1px solid var(--oq-line); padding:24px 0 0; margin-top:24px; }
.oq-document { box-sizing:border-box; width:100%; max-width:1100px; margin:0 auto; padding:24px 16px; }
.oq-document .oq-portal { margin:0; }
.oq-portal .oq-empty { padding:20px; border:1px solid var(--oq-line); border-radius:8px; background:#fff; }
.oq-portal [id^="oq-question-"] { scroll-margin-top:24px; }
.oq-portal .oq-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.oq-portal :focus-visible { outline:3px solid #91763e; outline-offset:3px; }
@media(max-width:760px) {
 .oq-portal .oq-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
 .oq-portal .oq-nav a { padding:10px 8px; font-size:.8em; text-align:center; }
 .oq-portal .oq-nav .oq-nav-ask { margin-left:0; }
 .oq-portal .oq-filters { grid-template-columns:minmax(0,1fr); padding:16px; gap:14px; }
 .oq-portal .oq-filters button { width:100%; }
}
@media(max-width:600px) {
 .oq-portal { margin:16px auto; border-radius:10px; }
 .oq-portal .oq-reading-table,.oq-portal .oq-reading-table tbody,.oq-portal .oq-reading-table tr,.oq-portal .oq-reading-table td,.oq-portal .oq-reading-table th { display:block; width:auto; }
 .oq-portal .oq-reading-table thead { display:none; }
 .oq-portal .oq-reading-table tr { padding:18px 16px; border-bottom:1px solid var(--oq-line); }
 .oq-portal .oq-reading-table th:first-child { width:auto; border:0; padding:0 0 14px; }
 .oq-portal .oq-reading-table th .oq-date { display:inline; margin-left:10px; }
 .oq-portal .oq-reading-table td { border:0; padding:0; }
 .oq-portal .oq-library-source,.oq-portal .oq-detail-content { padding:18px; }
 .oq-portal .oq-answer { padding:14px; }
 .oq-portal .oq-detail-actions { align-items:stretch; flex-direction:column; }
 .oq-portal .oq-pagination { align-items:stretch; }
 .oq-portal .oq-pagination span { flex-basis:100%; }
}
