/* Nexxtool AI docs. Fonts are self-hosted at /assets/fonts/ (same files as the homepage). */
@font-face{font-family:"Schibsted Grotesk";font-style:normal;font-weight:400 900;font-display:swap;src:url("/assets/fonts/schibsted-grotesk-v7-latin-wght.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url("/assets/fonts/ibm-plex-sans-latin-wght.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/ibm-plex-mono-latin-400.woff2") format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/ibm-plex-mono-latin-500.woff2") format("woff2")}
:root { --bg:#06080C; --s1:#0B0F17; --s2:#0E131D; --input:#0A0E15; --text:#F2F5FA; --text-dim:#B8C0CC; --text-mute:#7D8796;
        --border:rgba(255,255,255,0.08); --border-strong:rgba(255,255,255,0.14); --code-bg:#0A0E15; --accent:#4C8DFF; --warn:#7D8796;
        --ease:cubic-bezier(0.22,1,0.36,1);
        --head:"Schibsted Grotesk",system-ui,sans-serif; --sans:"IBM Plex Sans",system-ui,sans-serif; --mono:"IBM Plex Mono",ui-monospace,monospace; }
* { box-sizing:border-box; }
html { font-size:16px; }
html,body { margin:0; padding:0; background:var(--bg); color:var(--text-dim);
  font:400 1rem/1.7 var(--sans); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }

/* Top nav + footer: shared chrome, /assets/site-chrome.v1.css */

.docs-layout { display:grid; grid-template-columns:15rem minmax(0,1fr); width:87.5vw; max-width:90rem; margin:0 auto; gap:3rem; padding:0; }
.docs-nav {
  position:sticky; top:5.75rem; align-self:start; margin:2rem 0;
  padding:1.25rem 1rem; background:var(--s1); border:1px solid var(--border); border-radius:1rem;
  max-height:calc(100vh - 8rem); overflow-y:auto;
}
.docs-nav h1 { font-family:var(--head); font-size:0.9375rem; margin:0 0 0.75rem; padding:0 0.75rem; color:var(--text-mute); font-weight:500; }
.docs-nav a { display:block; color:var(--text-dim); padding:0.375rem 0.75rem; border-radius:0.5rem; text-decoration:none; font-size:0.9375rem; transition:background-color .15s var(--ease), color .15s var(--ease); }
.docs-nav a:hover { color:var(--text); background:rgba(255,255,255,0.04); }
.docs-nav a.active { color:var(--text); background:rgba(255,255,255,0.06); font-weight:500; }
.docs-main { padding:2.5rem 0 5rem; max-width:46rem; min-width:0; }
.docs-main h1 { font-family:var(--head); font-size:2.25rem; line-height:1.1; font-weight:700; letter-spacing:-0.022em; color:var(--text); margin:0 0 1rem; }
.docs-main h2 { font-family:var(--head); font-size:1.5rem; line-height:1.2; font-weight:700; letter-spacing:-0.015em; color:var(--text); margin:2.5rem 0 0.75rem; padding-top:1.5rem; border-top:1px solid var(--border); }
.docs-main h3 { font-family:var(--head); font-size:1.125rem; font-weight:600; color:var(--text); margin:1.5rem 0 0.5rem; }
.docs-main p, .docs-main li { color:var(--text-dim); }
.docs-main p { margin:0 0 1rem; }
.docs-main ul, .docs-main ol { padding-left:1.25rem; margin:0 0 1rem; }
.docs-main strong { color:var(--text); font-weight:600; }
.docs-main code { font-family:var(--mono); font-size:0.9375rem; background:var(--code-bg); padding:0.125rem 0.375rem; border-radius:0.375rem; border:1px solid var(--border); color:var(--text); }
.docs-main pre { position:relative; background:var(--code-bg); border:1px solid var(--border); border-radius:0.75rem;
  padding:1rem; overflow-x:auto; font-family:var(--mono); font-size:0.9375rem; line-height:1.6; margin:0 0 1rem; }
.docs-copy-btn {
  position:absolute; top:0.625rem; right:0.625rem;
  background:transparent; color:var(--text-dim); border:1px solid var(--border-strong);
  border-radius:999px; padding:0.1875rem 0.75rem; font:inherit; font-family:var(--sans); font-size:0.9375rem;
  cursor:pointer; opacity:0; transition:opacity .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);
}
.docs-main pre:hover .docs-copy-btn,
.docs-copy-btn:focus-visible { opacity:1; }
.docs-copy-btn:hover { color:var(--text); border-color:rgba(255,255,255,0.24); }
@media (max-width:840px){ .docs-copy-btn { opacity:1; } }
.docs-main pre code { background:none; border:0; padding:0; font-size:inherit; }
.docs-main table { border-collapse:collapse; width:100%; margin:1rem 0; font-size:0.9375rem; }
.docs-main th, .docs-main td { padding:0 0.75rem; height:3rem; text-align:left; border-bottom:1px solid rgba(255,255,255,0.06); }
.docs-main tbody tr:hover { background:rgba(255,255,255,0.02); }
.docs-main th { color:var(--text-mute); font-weight:400; font-size:0.9375rem; }
.docs-main td code { font-size:0.9375rem; }
.docs-main a { color:var(--accent); text-decoration:none; }
.docs-main a:hover { text-decoration:underline; }
.docs-warn { color:var(--text-dim); padding:0.75rem 1rem; background:var(--s1); border:1px solid var(--border); border-radius:0.75rem; margin:1rem 0; }
.docs-foot { margin-top:2.5rem; padding-top:1.25rem; border-top:1px solid var(--border); color:var(--text-mute); font-size:0.9375rem; }
:focus-visible { outline:2px solid #8DB8FF; outline-offset:3px; border-radius:0.25rem; }
@media (max-width:840px){
  .docs-layout{ grid-template-columns:1fr; gap:0; width:auto; margin:0 1.25rem; }
  .docs-nav{ position:static; max-height:none; margin:1.25rem 0 0; }
}

/* Pricing page (the page carries its own inline styles; these win by specificity) */
.docs-main .price-card { padding:1.5rem; border:1px solid var(--border); border-radius:1rem; background:var(--s1); }
.docs-main .price-card.featured { border-color:var(--border-strong); }
.docs-main .price-card .price { font-family:var(--head); font-size:2rem; font-weight:700; color:var(--text); }
.docs-main .price-card .price small { font-family:var(--sans); font-size:0.9375rem; color:var(--text-mute); }
.docs-main .price-card ul { font-size:0.9375rem; color:var(--text-dim); }
.docs-main .compare-wrap { border-radius:1rem; background:var(--s1); border-color:var(--border); }
.docs-main table.compare-tbl thead th { background:transparent; color:var(--text-mute); font-weight:400; font-size:0.9375rem; }
.docs-main table.compare-tbl thead th.col-wt { color:var(--accent); }
.docs-main table.compare-tbl th, .docs-main table.compare-tbl td { height:3rem; border-bottom-color:rgba(255,255,255,0.06); font-size:0.9375rem; }

/* Mobile overflow guards: prevent wide tables/code from forcing the page wider than viewport. */
@media (max-width:720px){
  .docs-layout { min-width:0; }
  .docs-main   { min-width:0; padding:1.5rem 0 4rem; max-width:100%; }
  .docs-main h1 { font-size:1.875rem; }
  .docs-main table { display:block; overflow-x:auto; max-width:100%; -webkit-overflow-scrolling:touch; }
  .docs-main pre   { max-width:100%; }
}
.docs-main .price-grid{grid-template-columns:repeat(2,1fr)}@media (max-width:760px){.docs-main .price-grid{grid-template-columns:1fr}}

/* shared site footer (Phase 4, 4.10): same as the homepage footer; markup comes from app/legal-src/footer.cjs */
.wrap{width:87.5vw;margin:0 auto}.foot .brand{font-family:var(--head);color:var(--text);font-weight:700;font-size:1.5rem;letter-spacing:-.02em;text-decoration:none}.foot a{text-decoration:none}.owner{background:rgba(250,204,21,.14);border:1px solid rgba(250,204,21,.5);color:#FDE68A;border-radius:.3rem;padding:0 .35rem;font-weight:600;font-size:0.9375rem}
.foot{padding:3rem 0 1.8rem;background:#080B11;border-top:1px solid var(--line)}
.foot-in{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,2fr);gap:3rem;align-items:start}
.foot-tag{margin-top:.7rem;font-size:.95rem;color:#9CA7BA;max-width:22em;line-height:1.5}
.foot-copy{margin-top:1.1rem;font-size:0.9375rem;color:var(--muted)}
.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.foot-h{font-family:var(--head);font-size:.95rem;color:var(--text);font-weight:600;margin-bottom:.8rem}
.foot-col ul{display:flex;flex-direction:column;gap:.55rem}
.foot-col a{font-size:.95rem;color:#B6BFCC}.foot-col a:hover{color:#fff}
.foot-bar{display:flex;gap:1.2rem;flex-wrap:wrap;align-items:baseline;margin-top:2.2rem;padding-top:1.2rem;border-top:1px solid var(--line);font-size:0.9375rem;color:var(--muted)}
.foot-tm{font-size:0.9375rem;color:var(--muted)}
.foot-bar a{color:var(--blue-l)}.foot-bar a:hover{color:#fff}
.foot-addr{margin-top:.5rem;font-size:0.9375rem;color:var(--muted)}
.foot-addr{margin-top:.5rem;font-size:0.9375rem;color:var(--text-mute)}
@media (max-width:1279px){.wrap{width:auto;margin:0 1.75rem}.foot-in{grid-template-columns:1fr;gap:1.8rem}.foot-cols{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:767px){.foot{padding:2rem 0 1.25rem}.foot-cols{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.wrap{margin:0 1.25rem}}
.foot{--line:rgba(255,255,255,.08);--muted:#7D8796;--blue-l:#4C8DFF;--text:#F2F5FA}

/* links inside running text are underlined (not colour alone) */
.docs-main p a, .docs-main li a, .docs-main td a, .docs-main .docs-warn a { text-decoration: underline; text-underline-offset: 0.15em; }
.docs-main h2.sr-only { position:absolute; width:1px; height:1px; margin:-1px; padding:0; border:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.docs-main p code, .docs-main li code, .docs-main td code { overflow-wrap: anywhere; }

/* P3: Docs menu button (phone). docs.js wraps the links in .docs-nav-links and adds the button; without JS the nav simply stays open. */
.docs-menu-btn{display:none}
@media (max-width:840px){
  .docs-nav.has-menu{padding:0;background:transparent;border:0;overflow:visible}
  .docs-nav.has-menu .docs-menu-btn{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:2.75rem;padding:0 1rem;font:inherit;font-size:1rem;font-weight:600;color:var(--text);background:var(--s1);border:1px solid var(--border-strong);border-radius:.75rem;cursor:pointer}
  .docs-nav.has-menu .docs-menu-btn svg{transition:transform .15s}
  .docs-nav.has-menu.is-open .docs-menu-btn svg{transform:rotate(180deg)}
  .docs-nav.has-menu .docs-nav-links{display:none;margin-top:.5rem;padding:.75rem .5rem;background:var(--s1);border:1px solid var(--border);border-radius:.75rem}
  .docs-nav.has-menu.is-open .docs-nav-links{display:block}
  .docs-nav.has-menu a{min-height:2.75rem;display:flex;align-items:center}
}
/* G1: footer disclaimer floor (13px) on docs pages */
html body .foot .foot-tm { font-size: 0.8125rem; }
/* brand logo (footer brand) */
.foot .brand{display:inline-flex;align-items:center;gap:.55rem}
.brand-logo{width:28px;height:28px;border-radius:6px;flex:none;display:block}
