/* Reading tools extend the existing OKSi palette and article components. */
.oksi-article-tools { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:-4px 0 20px; }
.oksi-reading-button { appearance:none; min-height:40px; padding:8px 12px; border:1px solid var(--oksi-border); border-radius:5px; background:#fff; color:var(--oksi-burgundy-dark); font:inherit; font-size:14px; line-height:1.35; cursor:pointer; }
.oksi-reading-button:hover { border-color:var(--oksi-burgundy); background:var(--oksi-burgundy-soft); }
.oksi-reading-button:active { transform:translateY(1px); }
.oksi-reading-button[aria-pressed="true"] { border-color:var(--oksi-burgundy); background:var(--oksi-burgundy-soft); color:var(--oksi-burgundy-dark); box-shadow:inset 0 -2px var(--oksi-burgundy); }
.markdown-section .oksi-callout > p:first-child > strong:first-child { color:var(--oksi-burgundy-dark); }
.markdown-section .oksi-callout > p:last-child { margin-bottom:0; }
.oksi-article-feedback { position:relative; min-width:0; margin:32px 0; padding:20px 24px; border:1px solid var(--oksi-border); border-radius:7px; background:var(--oksi-surface); }
.oksi-article-feedback legend { max-width:100%; padding:0 8px; color:inherit; font-weight:650; font-size:20px; line-height:1.4; }
.markdown-section .oksi-feedback-hint { color:var(--oksi-muted); font-size:14px; }
.oksi-feedback-controls { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.oksi-feedback-controls > button:not(.oksi-feedback-reset) { min-width:84px; }
.oksi-feedback-reset { margin-left:auto; }
.markdown-section .oksi-feedback-status { min-height:1.6em; margin:12px 0 0; color:var(--oksi-muted); font-size:14px; }
.oksi-feedback-toast { position:absolute; z-index:12; left:24px; bottom:calc(100% - 12px); width:310px; max-width:calc(100% - 48px); padding:16px 18px; border:1px solid var(--oksi-border); border-left:3px solid var(--oksi-burgundy); border-radius:7px; background:#fff; color:inherit; box-shadow:0 6px 18px rgba(50,30,30,.12); }
.oksi-feedback-toast strong { display:block; font-size:18px; margin-bottom:4px; }
.markdown-section .oksi-feedback-toast p { margin:0 0 10px; font-size:15px; }
.oksi-feedback-toast-close { padding:4px 10px; min-height:32px; font-size:13px; }
.oksi-reading-exit { position:fixed; z-index:45; top:14px; right:20px; background:#fff; }
.oksi-reading-exit[hidden] { display:none; }
body.oksi-reading-mode .sidebar, body.oksi-reading-mode .sidebar-toggle, body.oksi-reading-mode .app-nav, body.oksi-reading-mode #oksi-page-toc { display:none; }
body.oksi-reading-mode .content, body.oksi-reading-mode.close .content, body.oksi-reading-mode .content.oksi-has-toc { left:0; right:0; margin-left:0; padding-top:62px; padding-right:0; transform:none; }
body.oksi-reading-mode .markdown-section { max-width:860px; margin:0 auto; padding-left:32px; padding-right:32px; }
body.oksi-reading-mode .oksi-inline-toc { display:block; }
.oksi-reading-button:focus-visible, .oksi-walkthrough section:focus-visible, .oksi-settings-filter input:focus-visible, .oksi-link-fallback:focus-visible { outline:2px solid var(--oksi-burgundy); outline-offset:3px; }
.oksi-tool-status { color:var(--oksi-muted); font-size:13px; }
.oksi-link-fallback { flex-basis:100%; min-width:0; width:100%; padding:8px; font:inherit; font-size:16px; }
.markdown-section .oksi-article-terms { margin:-8px 0 22px; background:var(--oksi-surface); }
.markdown-section .oksi-article-terms summary { padding-top:10px; padding-bottom:10px; font-size:14px; }
.oksi-article-terms dl { display:grid; grid-template-columns:minmax(70px,auto) 1fr; gap:9px 16px; font-size:14px; }
.oksi-article-terms dt { font-weight:600; color:var(--oksi-burgundy-dark); }
.oksi-article-terms dd { margin:0; }
.oksi-article-terms a { font-size:14px; }
.oksi-reading-progress { position:fixed; z-index:35; top:0; right:0; left:0; height:3px; background:transparent; pointer-events:none; }
.oksi-reading-progress span { display:block; height:100%; background:var(--oksi-burgundy); transform:scaleX(0); transform-origin:left; }
.oksi-page-toc a.oksi-section-current, .oksi-inline-toc a.oksi-section-current { color:var(--oksi-burgundy); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.markdown-section .oksi-walkthrough { margin:20px 0 26px; border:1px solid var(--oksi-border); border-radius:7px; overflow:hidden; background:var(--oksi-surface); }
.oksi-walkthrough-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:6px; background:#fff; border-bottom:1px solid var(--oksi-border); }
.oksi-walkthrough-tabs .oksi-reading-button { position:relative; border-color:transparent; border-radius:4px; padding:13px 8px; }
.oksi-walkthrough-tabs [aria-selected="true"] { background:var(--oksi-burgundy-soft); color:var(--oksi-burgundy); box-shadow:inset 0 -2px var(--oksi-burgundy); }
.oksi-walkthrough > section { padding:22px 24px 12px; }
.oksi-walkthrough-ready { display:grid; grid-template-columns:minmax(0,1fr); }
.oksi-walkthrough-ready > .oksi-walkthrough-tabs { grid-row:1; }
.oksi-walkthrough-ready > section { grid-area:2/1; }
.markdown-section .oksi-walkthrough-ready > section[hidden] { display:block !important; visibility:hidden; pointer-events:none; }
.oksi-walkthrough-ready > .oksi-walkthrough-position { grid-row:3; }
.markdown-section .oksi-walkthrough h3 { margin:0 0 12px; font-size:20px; }
.markdown-section .oksi-walkthrough-position { margin:0; padding:0 24px 14px; color:var(--oksi-muted); font-size:13px; }
.oksi-scheme-lane { display:flex; align-items:center; gap:12px; margin:18px 0; }
.oksi-scheme-lane > span:not(.oksi-scheme-arrow):not(.oksi-scheme-separate) { flex:1; padding:13px; border:1px solid var(--oksi-border); border-radius:5px; background:#fff; text-align:center; font-size:15px; }
.oksi-scheme-lane .oksi-scheme-arrow { color:var(--oksi-burgundy); font-size:24px; }
.oksi-scheme-separate { color:var(--oksi-muted); font-size:13px; text-align:center; }
.oksi-scheme-lane strong { display:block; color:var(--oksi-burgundy-dark); }
.oksi-map { margin:24px 0; }
.oksi-map-source { padding:12px 18px; border-left:3px solid var(--oksi-burgundy); background:var(--oksi-surface-strong); }
.oksi-map-branches { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding-top:28px; }
.oksi-map-branches::before { position:absolute; top:12px; left:16.66%; right:16.66%; height:1px; background:var(--oksi-border); content:''; }
.oksi-map-branches::after { position:absolute; top:0; left:50%; width:1px; height:12px; background:var(--oksi-border); content:''; }
.oksi-map-branches > section { position:relative; padding:16px; border:1px solid var(--oksi-border); border-radius:5px; background:var(--oksi-surface); }
.oksi-map-branches > section::before { position:absolute; top:-17px; left:50%; width:1px; height:16px; background:var(--oksi-border); content:''; }
.markdown-section .oksi-map h3 { margin:0 0 10px; font-size:17px; }
.oksi-map p { font-size:14.5px; }
.oksi-map a { font-size:14px; }
.oksi-settings-filter { display:grid; grid-template-columns:1fr auto; gap:8px; padding:14px; border:1px solid var(--oksi-border); border-radius:7px; background:var(--oksi-surface); margin:16px 0; }
.oksi-settings-filter label { grid-column:1/-1; font-weight:600; font-size:15px; }
.oksi-settings-filter input { min-width:0; width:100%; padding:9px 11px; border:1px solid var(--oksi-border); border-radius:5px; font:inherit; font-size:16px; background:#fff; color:inherit; }
.markdown-section .oksi-filter-status { grid-column:1/-1; margin:0; font-size:13px; color:var(--oksi-muted); }
.markdown-section [hidden] { display:none !important; }
.oksi-map-source a { font-size:inherit; }
@media (prefers-reduced-motion:no-preference) {
  .oksi-reading-button, .oksi-task-grid a, .oksi-support-actions a, .oksi-support-links a { transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease,transform 160ms ease,box-shadow 160ms ease; }
  .oksi-article-enter { animation:oksi-article-arrive 160ms ease-out; }
  .oksi-feedback-toast:not([hidden]) { animation:oksi-article-arrive 160ms ease-out; }
  .oksi-walkthrough-ready > section:not([hidden]) { animation:oksi-article-arrive 160ms ease-out; }
  @keyframes oksi-article-arrive { from { opacity:.65; } to { opacity:1; } }
}
@media (prefers-reduced-motion:reduce) {
  .markdown-section *, .sidebar *, .oksi-page-toc *, .oksi-reading-exit, .medium-zoom-image, .medium-zoom-overlay { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .oksi-task-grid a:hover, .oksi-task-grid a:focus-visible, .oksi-reading-button:active { transform:none; }
}
@media screen and (max-width:600px) {
  .oksi-reading-button { min-height:44px; }
  .oksi-article-feedback { padding:16px; }
  .oksi-feedback-toast { left:16px; max-width:calc(100% - 32px); }
  .oksi-article-feedback legend { font-size:18px; }
  .oksi-feedback-reset { margin-left:0; }
  .oksi-reading-exit { top:10px; right:12px; }
  body.oksi-reading-mode .markdown-section { padding-left:20px; padding-right:20px; }
  .oksi-walkthrough-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .oksi-walkthrough > section { padding:18px 16px 8px; }
  .markdown-section .oksi-walkthrough-position { padding-left:16px; }
  .oksi-scheme-lane { flex-direction:column; gap:6px; }
  .oksi-scheme-lane > span:not(.oksi-scheme-arrow):not(.oksi-scheme-separate) { width:100%; box-sizing:border-box; }
  .oksi-scheme-lane .oksi-scheme-arrow { transform:rotate(90deg); line-height:1.2; }
  .oksi-map-branches { grid-template-columns:1fr; padding-top:0; gap:12px; margin:0 0 0 12px; padding-left:16px; border-left:1px solid var(--oksi-border); }
  .oksi-map-branches::before, .oksi-map-branches::after { display:none; }
  .oksi-map-branches > section::before { top:22px; left:-17px; width:16px; height:1px; }
  .oksi-map-branches > section:first-child { margin-top:16px; }
}
@media print {
  @page { margin:16mm; }
  body { font-size:11pt; color:#222; }
  .sidebar, .sidebar-toggle, .app-nav, .github-corner, #oksi-page-toc, .oksi-inline-toc, .oksi-reading-progress, .oksi-article-tools, .oksi-settings-filter, .oksi-walkthrough-tabs, .oksi-walkthrough-position, .docsify-pagination-container, .oksi-support-strip, .oksi-breadcrumbs, .oksi-article-feedback, .oksi-reading-exit { display:none !important; }
  .content, .content.oksi-has-toc, body.close .content { position:static; margin:0 !important; padding:0 !important; }
  .markdown-section { max-width:none; padding:0; animation:none !important; }
  .markdown-section h1 { font-size:22pt; }
  .markdown-section h2 { font-size:16pt; break-after:avoid; }
  .markdown-section h3 { break-after:avoid; }
  .markdown-section table[hidden] { display:table !important; }
  .markdown-section tr[hidden] { display:table-row !important; }
  .markdown-section .oksi-walkthrough section[hidden] { display:block !important; visibility:visible !important; }
  .oksi-walkthrough, .oksi-map-branches { display:block; overflow:visible; }
  .oksi-map-branches > section, .oksi-walkthrough > section, figure { break-inside:avoid; }
  .oksi-map-branches::before, .oksi-map-branches::after, .oksi-map-branches > section::before { display:none; }
  .markdown-section figure.mobile-screen img { max-height:180mm; }
  .markdown-section a { color:#222; }
  .medium-zoom-overlay, .medium-zoom-image--opened { display:none !important; }
  body.oksi-reading-mode .markdown-section { max-width:none; padding:0; }
}
