/* EyalSec documentation: index and page layout. Same tokens as the home page. */
:root{
  --bg:#111310; --panel:#181a15; --panel2:#14160f;
  --ink:#f2f1ea; --body:#b6b8ad; --dim:#8f9187; --faint:#6d6f66;
  --signal:#e8b04b; --signal-dim:#c9a15e; --alarm:#d64545; --good:#8bbf6b;
  --line:#2a2c27; --line2:#22241f;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --disp:'Space Grotesk',system-ui,sans-serif;
  --sans:'IBM Plex Sans',system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{background:var(--bg);color:var(--body);font-family:var(--sans);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}
code{font-family:var(--mono)}
::selection{background:rgba(232,176,75,.28);color:var(--ink)}
.in{max-width:1240px;margin:0 auto;padding:0 40px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.skip{position:absolute;left:-9999px;top:8px;background:var(--signal);color:#161712;padding:8px 14px;border-radius:3px;z-index:100;font-weight:600}
.skip:focus{left:12px}

.eyebrow{display:inline-block;font-family:var(--mono);font-size:12.5px;
  letter-spacing:.2em;color:var(--signal);text-transform:uppercase;font-weight:500}

/* ===== site nav (identical to home) ===== */
.nav{display:flex;align-items:center;justify-content:space-between;padding:22px 0;border-bottom:1px solid var(--line)}
.mark{display:flex;align-items:center;gap:11px;color:var(--ink);font-family:var(--disp);font-weight:600;font-size:18px;letter-spacing:-.01em}
.mark i{width:9px;height:23px;background:var(--signal);display:block;border-radius:1px;box-shadow:0 0 14px rgba(232,176,75,.45)}
.nav .lk{display:flex;gap:26px;align-items:center;font-size:14.5px}
.nav .lk a{color:var(--dim)}
.nav .lk a:hover,.nav .lk a[aria-current]{color:var(--ink)}
.nav .lk .go{color:#161712;background:var(--signal);padding:9px 17px;border-radius:3px;font-weight:600}
.nav .lk .go:hover{background:#f0c064}

/* ===== search ===== */
.docs-search{position:relative}
.docs-q{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:4px;color:var(--ink);
  font:inherit;font-size:14.5px;padding:10px 38px 10px 12px;min-height:44px;-webkit-appearance:none;appearance:none}
.docs-q::placeholder{color:var(--faint)}
.docs-q:focus{border-color:var(--signal-dim);outline:none;box-shadow:0 0 0 1px var(--signal-dim)}
.docs-kbd{position:absolute;right:10px;top:12px;font-family:var(--mono);font-size:11px;color:var(--faint);
  border:1px solid var(--line);border-radius:3px;padding:0 6px;line-height:18px;pointer-events:none}
.docs-q:focus + .docs-kbd{display:none}
.docs-results{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:50;background:var(--panel);
  border:1px solid var(--line);border-radius:6px;max-height:min(70vh,520px);overflow:auto;padding:6px;
  box-shadow:0 18px 40px rgba(0,0,0,.45)}
.docs-results a{display:block;padding:9px 10px;border-radius:4px;color:var(--body);font-size:14px;line-height:1.4}
.docs-results a b{display:block;color:var(--ink);font-weight:500}
.docs-results a small{display:block;color:var(--faint);font-family:var(--mono);font-size:11px;letter-spacing:.04em;margin-top:2px}
.docs-results a span{display:block;color:var(--dim);font-size:13px;margin-top:3px}
.docs-results a mark{background:none;color:var(--signal);font-weight:600}
.docs-results a.on,.docs-results a:hover{background:#20231c}
.docs-results .none{padding:10px;color:var(--dim);font-size:14px}

/* ===== index ===== */
.docs-home{padding-top:54px;padding-bottom:20px}
.dh-head{max-width:720px}
.dh-head h1{font-family:var(--disp);font-weight:500;font-size:clamp(34px,5vw,54px);line-height:1.02;letter-spacing:-.035em;
  color:var(--ink);margin:14px 0 16px;text-wrap:balance}
.dh-lede{font-size:18px;color:var(--body);margin:0 0 26px;max-width:60ch}
.dh-q{display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px;border-radius:50%;
  border:1px solid var(--signal-dim);color:var(--signal);font:600 12px/1 var(--mono);vertical-align:2px}
.dh-head .docs-search{max-width:560px}
.dh-label{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--signal);margin:0 0 14px}
.dh-path{margin:56px 0 12px}
.dh-path ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--line);counter-reset:step}
.dh-path li{counter-increment:step;border-right:1px solid var(--line)}
.dh-path li:last-child{border-right:0}
.dh-path a{display:block;padding:20px 24px 22px 0;height:100%}
.dh-path li + li a{padding-left:24px}
.dh-path a::before{content:counter(step,decimal-leading-zero);display:block;font-family:var(--mono);font-size:12px;color:var(--signal-dim);margin-bottom:8px}
.dh-path b{display:block;color:var(--ink);font-family:var(--disp);font-weight:500;font-size:20px;letter-spacing:-.01em;margin-bottom:6px}
.dh-path span{display:block;font-size:14.5px;color:var(--dim);line-height:1.5}
.dh-path a:hover b{color:var(--signal)}
.dh-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px 36px;margin-top:48px;padding-top:34px;border-top:1px solid var(--line)}
.dh-sec h2{font-family:var(--disp);font-weight:500;font-size:17px;letter-spacing:-.01em;color:var(--ink);margin:0 0 10px}
.dh-sec ul{list-style:none;margin:0;padding:0}
.dh-sec li{margin:0}
.dh-sec a{display:block;padding:4px 0;color:var(--dim);font-size:14.5px;line-height:1.4}
.dh-sec a:hover{color:var(--signal)}

/* ===== page layout: sidebar | article | on this page ===== */
.docs-layout{display:grid;grid-template-columns:250px minmax(0,1fr) 210px;gap:48px;max-width:1240px;margin:0 auto;
  padding:36px 40px 20px;align-items:start}
.docs-side,.docs-otp{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto;
  scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.docs-side .docs-search{margin-bottom:20px}
.docs-browse>summary{display:none}
.docs-nav-sec{margin-bottom:20px}
.docs-nav-title{font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.16em;color:var(--signal);margin-bottom:6px}
.docs-nav ul,.docs-otp ul{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}
.docs-nav a,.docs-otp a{display:block;padding:4px 0 4px 14px;margin-left:-1px;border-left:1px solid transparent;
  color:var(--dim);font-size:14px;line-height:1.4}
.docs-nav a:hover,.docs-otp a:hover{color:var(--ink);border-left-color:var(--signal-dim)}
.docs-nav a[aria-current]{color:var(--ink);border-left:2px solid var(--signal);font-weight:500}
.docs-otp-title{font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.16em;color:var(--faint);margin-bottom:10px}
.docs-otp li.lvl-3 a{padding-left:26px;font-size:13px;color:var(--faint)}
.docs-otp a.on{color:var(--ink);border-left-color:var(--signal)}

.docs-main{min-width:0}
.docs-crumb{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--faint);margin-bottom:18px;display:flex;gap:8px}
.docs-crumb a{color:var(--dim)}
.docs-crumb a:hover{color:var(--signal)}

/* prose */
.docs-body{max-width:74ch;font-size:16.5px;color:var(--body)}
.docs-body>*:first-child{margin-top:0}
.docs-body h1{font-family:var(--disp);font-weight:500;font-size:clamp(30px,4vw,42px);line-height:1.06;
  letter-spacing:-.03em;color:var(--ink);margin:0 0 16px;text-wrap:balance}
.docs-body h1 + p{font-size:18.5px;color:var(--ink);opacity:.86;line-height:1.55;margin-bottom:28px}
.docs-body h2{font-family:var(--disp);font-weight:500;font-size:clamp(22px,2.6vw,27px);line-height:1.15;
  letter-spacing:-.02em;color:var(--ink);margin:46px 0 14px;padding-top:22px;border-top:1px solid var(--line);text-wrap:balance}
.docs-body h3{font-family:var(--disp);font-weight:500;font-size:19px;letter-spacing:-.012em;color:var(--ink);margin:32px 0 10px}
.docs-body h4{font-family:var(--disp);font-weight:500;font-size:16px;color:var(--signal-dim);margin:24px 0 8px;letter-spacing:.01em}
.docs-body h2,.docs-body h3,.docs-body h4{position:relative}
.docs-body .hl{position:absolute;left:-1.1em;padding-right:.3em;color:var(--faint);opacity:0;font-weight:400}
.docs-body h2 .hl{top:22px}
.docs-body :is(h2,h3,h4):hover .hl,.docs-body .hl:focus{opacity:1}
.docs-body .hl:hover{color:var(--signal)}
.docs-body :target{scroll-margin-top:24px}
.docs-body :is(h2,h3,h4):target{color:var(--signal)}
.docs-body p{margin:0 0 18px}
.docs-body ul,.docs-body ol{margin:0 0 20px;padding-left:22px}
.docs-body li{margin:6px 0}
.docs-body li::marker{color:var(--signal-dim)}
.docs-body strong,.docs-body b{color:var(--ink);font-weight:600}
.docs-body a{color:var(--signal);border-bottom:1px solid var(--line)}
.docs-body a:hover{color:var(--ink);border-bottom-color:var(--signal)}
.docs-body hr{border:none;border-top:1px solid var(--line);margin:38px 0}
.docs-body blockquote{margin:20px 0;padding:10px 18px;border-left:2px solid var(--signal);
  background:rgba(232,176,75,.04);color:var(--body)}
.docs-body blockquote p:last-child{margin-bottom:0}
.docs-body code{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:1px 6px;
  font-family:var(--mono);font-size:.86em;color:var(--signal-dim);overflow-wrap:anywhere}
.docs-body pre{background:#0d0f0a;border:1px solid var(--line);border-radius:6px;padding:18px 20px;
  overflow-x:auto;margin:0 0 22px;font-size:13.5px;line-height:1.8;-webkit-text-size-adjust:100%}
.docs-body pre code{background:none;border:none;padding:0;font-size:inherit;color:#c3c4bb;overflow-wrap:normal}
.docs-body table{border-collapse:collapse;margin:18px 0 24px;font-size:14px;display:block;max-width:100%;overflow-x:auto}
.docs-body th,.docs-body td{border:1px solid var(--line);padding:9px 13px;text-align:left;vertical-align:top}
.docs-body th{background:var(--panel);color:var(--signal);font-family:var(--mono);font-weight:500;letter-spacing:.04em;
  text-transform:uppercase;font-size:11.5px}
.docs-body td{color:var(--body)}
.docs-body td code{font-size:.9em}
.docs-body tbody tr:nth-child(even) td{background:var(--panel2)}
.docs-body img{max-width:100%;height:auto;border:1px solid var(--line);border-radius:6px;display:block;margin:18px 0}
.docs-shot-missing{display:flex;align-items:center;gap:10px;margin:18px 0;padding:14px 16px;
  border:1px dashed var(--line);border-radius:6px;color:var(--faint);font-family:var(--mono);
  font-size:12px;letter-spacing:.04em;background:var(--panel2)}
.docs-shot-missing::before{content:"IMG";color:var(--signal-dim);font-weight:500;letter-spacing:.12em;
  border:1px solid var(--line);border-radius:3px;padding:1px 6px}

.docs-pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:74ch;margin:48px 0 18px;padding-top:22px;border-top:1px solid var(--line)}
.docs-pager a{display:block;padding:14px 16px;border:1px solid var(--line);border-radius:5px;color:var(--ink);font-family:var(--disp);font-size:16.5px}
.docs-pager a small{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:4px}
.docs-pager a:hover{border-color:var(--signal-dim)}
.docs-pager .next{text-align:right;grid-column:2}
.docs-help-line{max-width:74ch;font-size:14px;color:var(--faint)}
.docs-help-line a{color:var(--dim);border-bottom:1px solid var(--line)}

/* ===== footer (identical to home) ===== */
.foot{border-top:1px solid var(--line);margin-top:56px;padding:26px 0;display:flex;justify-content:space-between;
  align-items:center;color:var(--faint);font-size:13px;flex-wrap:wrap;gap:14px}
.foot .mark{font-size:14px}
.foot .mark i{height:16px;width:7px}
.foot .fl a{color:var(--dim);margin-left:18px}
.foot .fl a:hover{color:var(--ink)}
.legal{padding:0 0 30px;color:#5a5c55;font-size:12px;font-family:var(--mono);line-height:1.9}
.legal a{color:var(--dim);margin-right:10px}
.legal a:hover{color:var(--ink)}
.legal .tm{display:block;margin-top:8px;color:#5a5c55}

@media (max-width:1180px){
  .docs-layout{grid-template-columns:230px minmax(0,1fr);gap:40px}
  .docs-otp{display:none}
  .dh-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:860px){
  .in{padding:0 22px}
  .docs-home{padding-top:34px}
  .docs-layout{grid-template-columns:minmax(0,1fr);gap:20px;padding:22px 22px 12px}
  .docs-side{position:static;max-height:none;overflow:visible}
  .docs-browse{border:1px solid var(--line);border-radius:5px;padding:0 14px}
  .docs-browse>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;cursor:pointer;
    color:var(--ink);font-size:14.5px;list-style:none}
  .docs-browse>summary::-webkit-details-marker{display:none}
  .docs-browse>summary::after{content:"+";font-family:var(--mono);color:var(--signal)}
  .docs-browse[open]>summary::after{content:"\2212"}
  .docs-browse[open] .docs-nav{padding:6px 0 10px}
  .docs-nav a{padding-top:8px;padding-bottom:8px}
  .dh-path ol{grid-template-columns:1fr}
  .dh-path li{border-right:0;border-bottom:1px solid var(--line)}
  .dh-path li + li a{padding-left:0}
  .dh-grid{grid-template-columns:repeat(2,1fr);gap:32px 24px}
  .docs-body .hl{display:none}
}
@media (max-width:640px){
  .nav .lk{gap:18px;font-size:14px}
  .nav .lk .hide-sm{display:none}
  .dh-grid{grid-template-columns:1fr}
  .docs-pager{grid-template-columns:1fr}
  .docs-pager .next{grid-column:1}
  .docs-kbd{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}
