/* NCheck brand layer for sphinx_rtd_theme — loaded after theme.css.
   Palette and type follow www.ncheck.net. */

@font-face{font-family:"Manrope";font-style:normal;font-weight:400 800;font-display:swap;src:url("../fonts/brand/manrope-400-800-latin.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/brand/ibm-plex-mono-400-latin.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/brand/ibm-plex-mono-600-latin.woff2") format("woff2")}

:root{
  --nc-teal:#008473; --nc-teal-dark:#006F61; --nc-teal-deep:#00574B; --nc-link:#007F6D;
  --nc-ice:#F1F8F7; --nc-mint:#E6F3F1; --nc-line:#DEEFED;
  --nc-ink:#0A0F1E; --nc-text:#2F3032; --nc-mut:#55627A; --nc-faint:#5F6B82; /* 5.4:1 on white, 5.0:1 on sidebar — WCAG AA */ --nc-rule:#E6E8EC;
  --nc-warn:#F0901F; --nc-warn-bg:#FEF6EC; --nc-danger:#E3162A; --nc-danger-bg:#FDEEEF;
  --nc-font:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --nc-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --nc-side:300px;
}

/* ---------- Base ---------- */
body,.wy-body-for-nav{font-family:var(--nc-font);color:var(--nc-text);background:#fff}
.wy-nav-content-wrap{background:#fff}
::selection{background:var(--nc-mint);color:var(--nc-ink)}
a,a:visited{color:var(--nc-link)}
a:hover{color:var(--nc-teal-deep)}
.rst-content a{text-decoration:none}
.rst-content a:hover{text-decoration:underline;text-underline-offset:2px}

/* ---------- Sidebar ---------- */
.wy-nav-side{background:var(--nc-ice);border-right:1px solid var(--nc-line)}
.wy-side-nav-search{background:transparent;padding:28px 24px 20px;margin:0;text-align:left;border-bottom:1px solid var(--nc-line)}
.wy-side-nav-search>a.icon-home{display:flex;flex-direction:column-reverse;align-items:flex-start;gap:10px;
  font:600 11px/1.3 var(--nc-font);letter-spacing:.12em;text-transform:uppercase;color:var(--nc-mut)!important}
.wy-side-nav-search>a.icon-home:before{display:none}
.wy-side-nav-search>a:hover{background:transparent}
.wy-side-nav-search>a img.logo,.wy-side-nav-search .wy-dropdown>a img.logo{width:168px;max-width:100%;height:auto;margin:0;padding:0;background:transparent;border-radius:0}
.wy-side-nav-search input[type=text]{margin-top:18px;border:1px solid var(--nc-line);border-radius:8px;padding:9px 12px;
  font:14px var(--nc-font);color:var(--nc-ink);background:#fff;box-shadow:none}
.wy-side-nav-search input[type=text]:focus{border-color:var(--nc-teal);outline:2px solid var(--nc-mint);outline-offset:0}

.wy-menu-vertical{padding:12px 0 32px}
.wy-menu-vertical p.caption,.wy-menu-vertical header{color:var(--nc-faint);font:700 11px var(--nc-font);letter-spacing:.12em;padding:0 24px;margin:16px 0 6px}
.wy-menu-vertical a,
.wy-menu-vertical li.current a,
.wy-menu-vertical li.current>a,
.wy-menu-vertical li[class*="toctree-l"] a,
.wy-menu-vertical li[class*="toctree-l"].current>a,
.wy-menu-vertical li[class*="toctree-l"].current li>a,
.wy-menu-vertical li.on a{
  background:transparent!important;border:0!important;color:var(--nc-mut)!important;
  font-family:var(--nc-font);font-size:14px;line-height:1.45;font-weight:500}
.wy-menu-vertical li.toctree-l1>a{color:var(--nc-ink)!important;font-weight:600;padding-left:24px;padding-top:7px;padding-bottom:7px}
.wy-menu-vertical li[class*="toctree-l"]:not(.toctree-l1)>a{font-size:13.5px;padding-top:5px;padding-bottom:5px}
.wy-menu-vertical a:hover,
.wy-menu-vertical li[class*="toctree-l"] a:hover{color:var(--nc-teal-dark)!important;background:var(--nc-mint)!important}
.wy-menu-vertical li.current{background:transparent}
.wy-menu-vertical li.toctree-l1.current>a{color:var(--nc-teal-dark)!important;box-shadow:inset 3px 0 0 var(--nc-teal)}
.wy-menu-vertical li.current>a:not(:only-child),
.wy-menu-vertical li[class*="toctree-l"].current>a{color:var(--nc-teal-dark)!important}
.wy-menu-vertical li[class*="toctree-l"] a.current,
.wy-menu-vertical li[class*="toctree-l"] a.reference.internal.current{color:var(--nc-teal-dark)!important;font-weight:700}
.wy-menu-vertical a button.toctree-expand,.wy-menu-vertical a span.toctree-expand,
.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand{color:var(--nc-faint)}

/* ---------- Mobile top bar ---------- */
.wy-nav-top{background:var(--nc-teal-dark);font-family:var(--nc-font);font-weight:700}
.wy-nav-top a{color:#fff}
.wy-nav-top i{color:#fff}

/* ---------- Content column ---------- */
.wy-nav-content{max-width:1120px;padding:40px 56px 64px;background:#fff}
@media screen and (max-width:768px){.wy-nav-content{padding:24px 18px 48px}}

.rst-content{font-size:16px;line-height:1.7}
.rst-content p,.rst-content li{line-height:1.7}
.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6,
.rst-content .rubric{font-family:var(--nc-font);color:var(--nc-ink);letter-spacing:-.01em}
.rst-content h1{font-size:36px;font-weight:800;line-height:1.2;margin:4px 0 24px}
.rst-content h2{font-size:26px;font-weight:700;line-height:1.3;margin:56px 0 16px;padding-top:28px;border-top:1px solid var(--nc-rule)}
.rst-content h3{font-size:20px;font-weight:700;margin:40px 0 12px}
.rst-content h4{font-size:17px;font-weight:700;margin:32px 0 10px}
.rst-content h5,.rst-content h6{font-size:15px;font-weight:700;margin:24px 0 8px;color:var(--nc-text)}
.rst-content section>h2:first-child{margin-top:48px}
.rst-content .headerlink{color:var(--nc-faint)!important;font-weight:400}

/* Breadcrumbs & footer */
.wy-breadcrumbs{font:500 13px var(--nc-font);color:var(--nc-faint)}
.wy-breadcrumbs li a{color:var(--nc-mut)}
.wy-breadcrumbs li.wy-breadcrumbs-aside a{color:var(--nc-faint)}
.rst-content hr,div[role=navigation] hr,footer hr{border-top:1px solid var(--nc-rule);border-bottom:0;margin:20px 0}
footer{color:var(--nc-faint);font-size:13px}
.rst-footer-buttons .btn{font-family:var(--nc-font);font-weight:600;border-radius:8px;box-shadow:none;
  background:#fff!important;color:var(--nc-teal-dark)!important;border:1px solid var(--nc-line);padding:10px 16px}
.rst-footer-buttons .btn:hover{background:var(--nc-ice)!important;border-color:var(--nc-teal)}

/* ---------- Tables ---------- */
.wy-table-responsive{margin-bottom:28px;overflow-x:auto}
.wy-table-responsive table td,.wy-table-responsive table th{white-space:normal}
.rst-content table.docutils,.wy-table-bordered-all{width:100%;border:1px solid var(--nc-line);border-collapse:separate;border-spacing:0;border-radius:10px;overflow:hidden}
.rst-content table.docutils td,.rst-content table.docutils th{border:0;border-bottom:1px solid var(--nc-line);border-left:1px solid var(--nc-line);
  padding:10px 14px;vertical-align:top;font-size:14.5px;line-height:1.55;background:#fff!important}
.rst-content table.docutils tr>*:first-child{border-left:0}
.rst-content table.docutils tbody tr:last-child>*{border-bottom:0}
.rst-content table.docutils thead th,.rst-content table.docutils thead td{background:var(--nc-ice)!important;color:var(--nc-ink);font-weight:700;text-align:left}
.rst-content table.docutils td p,.rst-content table.docutils th p{margin-bottom:6px;line-height:1.55}
.rst-content table.docutils td p:last-child{margin-bottom:0}
.rst-content table caption{padding:0 0 10px;text-align:left;font:600 13px var(--nc-font);color:var(--nc-mut);font-style:normal}
.rst-content table caption .caption-number{color:var(--nc-teal-dark)}

/* ---------- Figures & images ---------- */
.rst-content img{max-width:100%;height:auto}
.rst-content figure,.rst-content div.figure{margin:8px auto 28px}
.rst-content figure>img,.rst-content figure>a>img,.rst-content div.figure>img,.rst-content div.figure>a>img{
  border:1px solid var(--nc-rule);border-radius:8px;box-shadow:0 1px 2px rgba(10,15,30,.04),0 4px 16px rgba(10,15,30,.06)}
.rst-content figcaption,.rst-content div.figure p.caption{margin-top:10px;font:500 13px/1.5 var(--nc-font);color:var(--nc-mut);font-style:normal}
.rst-content .caption-number{font-weight:700;color:var(--nc-teal-dark)}
.rst-content .caption-text{font-style:normal}

/* ---------- Admonitions ---------- */
.rst-content .admonition,.rst-content .note,.rst-content .tip,.rst-content .hint,.rst-content .important,
.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .danger,.rst-content .error,.rst-content .seealso{
  background:var(--nc-ice);border:1px solid var(--nc-line);border-left:4px solid var(--nc-teal);border-radius:8px;padding:14px 18px;margin-bottom:24px}
.rst-content .admonition-title{background:transparent!important;color:var(--nc-teal-dark)!important;margin:0 0 6px;padding:0;
  font:700 12px var(--nc-font);letter-spacing:.1em;text-transform:uppercase}
.rst-content .admonition-title:before{color:inherit}
.rst-content .admonition p:last-child{margin-bottom:0}
.rst-content .warning,.rst-content .caution,.rst-content .attention{background:var(--nc-warn-bg);border-color:#FBE3C5;border-left-color:var(--nc-warn)}
.rst-content .warning .admonition-title,.rst-content .caution .admonition-title,.rst-content .attention .admonition-title{color:#A85C00!important}
.rst-content .danger,.rst-content .error,.rst-content .important{background:var(--nc-danger-bg);border-color:#F8D0D4;border-left-color:var(--nc-danger)}
.rst-content .danger .admonition-title,.rst-content .error .admonition-title,.rst-content .important .admonition-title{color:#B00F20!important}

/* ---------- Code ---------- */
.rst-content code,.rst-content tt,code{font-family:var(--nc-mono)}
.rst-content code.literal,.rst-content tt.literal,.rst-content code:not(.xref){color:var(--nc-teal-deep);background:var(--nc-ice);
  border:1px solid var(--nc-line);border-radius:4px;padding:1px 5px;font-size:.86em;white-space:normal}
.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid var(--nc-line);border-radius:8px;background:#FAFBFB;overflow:hidden}
.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:var(--nc-mono);font-size:13px;line-height:1.6;padding:14px 16px}
.highlight{background:#FAFBFB}

/* ---------- Lists, definition lists, misc ---------- */
.rst-content dl:not(.docutils) dt,.rst-content dl dt{font-family:var(--nc-font)}
.rst-content ol.arabic li,.rst-content ul li{margin-bottom:4px}
.rst-content blockquote{margin-left:24px}
.rst-content .toctree-wrapper p.caption{font-family:var(--nc-font)}
.rst-content .toctree-wrapper ul li a{color:var(--nc-link)}
#search-results .search li{border-bottom:1px solid var(--nc-rule)}

/* ---------- Small screens ---------- */
/* Long URLs and identifiers wrap instead of pushing the page sideways */
.rst-content p,.rst-content li,.rst-content dd,.rst-content td,.rst-content th,.rst-content a{overflow-wrap:break-word}
@media screen and (max-width:768px){
  .rst-content td,.rst-content th{overflow-wrap:anywhere}
  /* Older pages don't wrap tables in .wy-table-responsive — let those scroll inside their own box */
  .rst-content :not(.wy-table-responsive)>table.docutils{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* Search-term highlight (results list and ?highlight= on pages) */
.rst-content .highlighted,span.highlighted{background:#CDEBE6;color:var(--nc-ink);box-shadow:0 0 0 2px #CDEBE6;border-radius:2px;font-weight:600}
