/* PRISM API documentation: the /data/api page and its PDF edition
   (templates/_api_docs_body.html is shared by both). Classes ad-. */
:root { --ink:#0B1B33; --ink-2:#14294A; --paper:#fff; --paper-2:#F4F6F8; --rule:rgba(11,27,51,.14); --rule-2:rgba(11,27,51,.28);
        --muted:#4A5972; --muted-2:#6B7A93; --accent:#1e40af; --accent-2:#8FB0FF; --ok:#047857; --warn:#b45309;
        --serif:'Source Serif 4',Georgia,serif; --sans:'Inter',system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace; }
.ad * { box-sizing:border-box; }
.ad { font-family:var(--sans); color:var(--ink); font-size:15px; line-height:1.6; }
.ad a { color:var(--accent); }
.ad h2 { font-family:var(--serif); font-size:26px; font-weight:600; letter-spacing:-.012em; line-height:1.2; margin:0 0 6px; }
.ad h3 { font-family:var(--serif); font-size:19px; font-weight:600; margin:26px 0 8px; }
.ad h4 { font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--muted-2); margin:18px 0 6px; }
.ad p { margin:8px 0; max-width:760px; }
.ad section { padding:34px 0 30px; border-top:1px solid var(--rule); scroll-margin-top:90px; }
.ad section:first-child { border-top:none; padding-top:6px; }
.ad .ad-num { font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:.12em; color:var(--accent); display:block; margin-bottom:6px; }
.ad .ad-lead { font-family:var(--serif); font-size:17px; color:var(--ink-2); }
.ad .ad-small { font-size:13px; color:var(--muted); }
.ad code { font-family:var(--mono); font-size:12.5px; background:var(--paper-2); padding:1px 5px; border-radius:4px; }
.ad td code, .ad th code { white-space:nowrap; }
.ad pre { position:relative; background:var(--ink); color:#EAF0F8; border-radius:10px; padding:16px 18px; overflow-x:auto;
          font-family:var(--mono); font-size:12.5px; line-height:1.6; margin:10px 0 14px; }
.ad pre code { background:none; padding:0; color:inherit; font-size:inherit; }
.ad pre .c { color:#8FA3BF; }
.ad .ad-copy { position:absolute; top:8px; right:8px; font:600 11px var(--sans); color:#EAF0F8; background:rgba(255,255,255,.08);
               border:1px solid rgba(255,255,255,.22); border-radius:5px; padding:4px 10px; cursor:pointer; }
.ad .ad-copy:hover { background:rgba(255,255,255,.16); }
.ad .ad-tw { overflow-x:auto; border:1px solid var(--rule); border-radius:10px; margin:10px 0 12px; }
.ad table { border-collapse:collapse; width:100%; font-size:13.5px; }
.ad th, .ad td { text-align:left; padding:9px 12px; border-bottom:1px solid var(--rule); vertical-align:top; }
.ad th { font-family:var(--mono); font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted-2); background:var(--paper-2); font-weight:600; }
.ad tr:last-child td { border-bottom:none; }
.ad .ad-steps { list-style:none; counter-reset:s; margin:14px 0; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; }
.ad .ad-steps li { counter-increment:s; border:1px solid var(--rule); border-radius:10px; padding:14px 16px 14px; background:#fff; }
.ad .ad-steps li::before { content:counter(s); display:inline-flex; width:24px; height:24px; align-items:center; justify-content:center;
                           border-radius:50%; background:var(--accent); color:#fff; font:600 12px var(--mono); margin-bottom:8px; }
.ad .ad-steps b { display:block; margin-bottom:3px; }
.ad .ad-steps span { font-size:13.5px; color:var(--muted); }
.ad .ad-ep { border:1px solid var(--rule); border-radius:10px; margin:16px 0; overflow:hidden; }
.ad .ad-ep-head { display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding:12px 16px; background:var(--paper-2); border-bottom:1px solid var(--rule); }
.ad .ad-method { font:700 11px var(--mono); color:#fff; background:var(--accent); border-radius:4px; padding:3px 8px; letter-spacing:.06em; }
.ad .ad-path { font:600 13.5px var(--mono); color:var(--ink); }
.ad .ad-ep-body { padding:6px 16px 10px; }
.ad .ad-pill { display:inline-block; font:600 10px var(--mono); letter-spacing:.08em; text-transform:uppercase; padding:3px 8px; border-radius:4px;
               background:rgba(30,64,175,.09); color:var(--accent); vertical-align:middle; }
.ad .ad-note { border-left:3px solid var(--accent); background:var(--paper-2); border-radius:0 8px 8px 0; padding:12px 16px; margin:12px 0; font-size:14px; max-width:760px; }
.ad ul.ad-list { margin:8px 0 8px 20px; max-width:760px; padding:0; }
.ad ul.ad-list li { margin:5px 0; }
.ad .ad-tabs { display:flex; gap:4px; margin-top:10px; }
.ad .ad-tabs button { font:600 12px var(--sans); border:1px solid var(--rule-2); background:#fff; color:var(--muted); border-radius:6px 6px 0 0;
                      padding:6px 14px; cursor:pointer; }
.ad .ad-tabs button.on { background:var(--ink); color:#fff; border-color:var(--ink); }
.ad .ad-tabs + pre { border-top-left-radius:0; margin-top:0; }
.ad .ad-log { border-left:2px solid var(--rule-2); padding-left:16px; margin:10px 0; }
.ad .ad-log b { font-family:var(--mono); font-size:12px; color:var(--accent); }
@media (max-width:768px) { .ad h2 { font-size:22px; } .ad section { padding:26px 0 22px; } }
