/* Documentación para developers de Citeri (citeri.es/docs/). Sin CDNs ni
   estilos en línea: la CSP solo deja cargar CSS y JS de este dominio. */
@font-face{font-family:"Sora";src:url(/app/fonts/sora-variable.ttf) format("truetype");font-weight:100 900;font-display:swap}
:root{
  --bg:#ffffff;--bg-2:#f7f6fc;--surface:#ffffff;--ink:#151223;--ink-2:#3b3650;--muted:#6b6780;
  --line:#e8e5f2;--line-2:#d9d4ec;--accent:#5a48ee;--accent-2:#4b3fe0;--accent-soft:#efedfe;--accent-ink:#3b2fc4;
  --code-bg:#151223;--code-ink:#e9e6ff;--code-muted:#9a94c0;--code-line:#2a2442;
  --ok:#137a4b;--ok-soft:#e3f6ec;--warn:#8a5a00;--warn-soft:#fbf1dd;--bad:#b42318;--bad-soft:#fbe7e5;
  --shadow:0 1px 2px rgba(21,18,35,.04),0 8px 24px rgba(21,18,35,.06);
  --head:60px;color-scheme:light
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0f0d18;--bg-2:#151223;--surface:#17142a;--ink:#efedfa;--ink-2:#cfcae4;--muted:#9a94b4;
  --line:#262040;--line-2:#332b55;--accent:#9d92ff;--accent-2:#b4abff;--accent-soft:#221c44;--accent-ink:#c9c2ff;
  --code-bg:#0b0a13;--code-ink:#e9e6ff;--code-muted:#8f89b3;--code-line:#221d38;
  --ok:#5fd39b;--ok-soft:#10301f;--warn:#f0b860;--warn-soft:#33280f;--bad:#ff8a80;--bad-soft:#3a1714;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35);color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0f0d18;--bg-2:#151223;--surface:#17142a;--ink:#efedfa;--ink-2:#cfcae4;--muted:#9a94b4;
  --line:#262040;--line-2:#332b55;--accent:#9d92ff;--accent-2:#b4abff;--accent-soft:#221c44;--accent-ink:#c9c2ff;
  --code-bg:#0b0a13;--code-ink:#e9e6ff;--code-muted:#8f89b3;--code-line:#221d38;
  --ok:#5fd39b;--ok-soft:#10301f;--warn:#f0b860;--warn-soft:#33280f;--bad:#ff8a80;--bad-soft:#3a1714;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35);color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(var(--head) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15.5px/1.65 "Sora",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{color:var(--accent-2)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
[hidden]{display:none!important}
.skip{position:absolute;left:-999px;top:8px;background:var(--surface);padding:8px 12px;border-radius:8px;z-index:100}
.skip:focus{left:8px}

/* Cabecera */
.top{position:sticky;top:0;z-index:40;height:var(--head);display:flex;align-items:center;gap:12px;padding:0 16px;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:700;letter-spacing:-.02em;white-space:nowrap}
.brand img{width:28px;height:28px;border-radius:8px}
.brand span{color:var(--muted);font-weight:500}
.top-sp{flex:1}
.search-btn{display:flex;align-items:center;gap:8px;height:36px;min-width:0;padding:0 10px 0 12px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface);color:var(--muted);font:inherit;font-size:14px;cursor:pointer;width:min(280px,40vw)}
.search-btn svg{flex:none}
.search-btn .lbl{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
kbd{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:5px;padding:0 5px;color:var(--muted);background:var(--bg-2)}
.icon-btn{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);cursor:pointer;flex:none}
.icon-btn:hover,.search-btn:hover{border-color:var(--accent)}
.menu-btn{display:none}
.top-link{color:var(--ink-2);text-decoration:none;font-size:14px;font-weight:600;white-space:nowrap}

/* Estructura */
.layout{display:grid;grid-template-columns:264px minmax(0,1fr);max-width:1440px;margin:0 auto}
.side{position:sticky;top:var(--head);height:calc(100vh - var(--head));overflow-y:auto;padding:24px 14px 40px 20px;border-right:1px solid var(--line)}
.side h4{margin:22px 10px 6px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.side h4:first-child{margin-top:0}
.side a{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;color:var(--ink-2);text-decoration:none;font-size:14.5px;line-height:1.35}
.side a:hover{background:var(--bg-2);color:var(--ink)}
.side a[aria-current="page"]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.badge{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:999px;background:var(--warn-soft);color:var(--warn);margin-left:auto}
.main{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:48px;padding:40px 40px 96px;min-width:0}
.doc{min-width:0;max-width:780px}
.toc{position:sticky;top:calc(var(--head) + 40px);align-self:start;font-size:13.5px}
.toc p{margin:0 0 8px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.toc a{display:block;padding:4px 0 4px 12px;border-left:2px solid var(--line);color:var(--muted);text-decoration:none}
.toc a:hover{color:var(--ink)}
.toc a.on{border-color:var(--accent);color:var(--accent-ink)}

/* Texto */
.eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
h1{font-size:clamp(28px,4.4vw,40px);line-height:1.12;letter-spacing:-.03em;margin:0 0 14px}
h2{font-size:23px;line-height:1.25;letter-spacing:-.02em;margin:48px 0 12px;padding-top:4px}
h3{font-size:17px;letter-spacing:-.01em;margin:28px 0 8px}
h2 .anchor,h3 .anchor{opacity:0;margin-left:6px;text-decoration:none;color:var(--muted)}
h2:hover .anchor,h3:hover .anchor{opacity:1}
.lede{font-size:17.5px;color:var(--ink-2);margin:0 0 8px;max-width:66ch}
p,li{color:var(--ink-2)}
p{margin:0 0 14px;max-width:72ch}
ul,ol{padding-left:22px;margin:0 0 16px}
li{margin:4px 0}
strong{color:var(--ink)}
code{font:13.5px/1.5 ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;background:var(--bg-2);border:1px solid var(--line);padding:1px 5px;border-radius:6px;overflow-wrap:anywhere;color:var(--ink)}
hr{border:0;border-top:1px solid var(--line);margin:40px 0}

/* Tarjetas */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:22px 0 8px}
.card{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:border-color .15s,transform .15s}
a.card:hover{border-color:var(--accent);transform:translateY(-1px);color:var(--ink)}
.card .ico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-ink);margin-bottom:4px}
.card b{font-size:15.5px;letter-spacing:-.01em}
.card span{font-size:14px;color:var(--muted);line-height:1.5}
.hero{padding:8px 0 4px}
.hero-url{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}
.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);font-size:13.5px;color:var(--ink-2);text-decoration:none}
a.chip:hover{border-color:var(--accent);color:var(--ink)}

/* Avisos */
.note{display:flex;gap:12px;padding:14px 16px;border-radius:12px;border:1px solid var(--line);background:var(--bg-2);margin:18px 0}
.note p:last-child,.note ul:last-child{margin-bottom:0}
.note .ni{flex:none;width:20px;height:20px;margin-top:2px;color:var(--accent)}
.note.warn{background:var(--warn-soft);border-color:transparent}.note.warn .ni{color:var(--warn)}
.note.ok{background:var(--ok-soft);border-color:transparent}.note.ok .ni{color:var(--ok)}
.note.bad{background:var(--bad-soft);border-color:transparent}.note.bad .ni{color:var(--bad)}

/* Tablas */
.table{overflow-x:auto;border:1px solid var(--line);border-radius:12px;margin:14px 0 20px;background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;padding:10px 14px;border-top:1px solid var(--line);vertical-align:top}
thead th{border-top:0;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--bg-2)}
td code{font-size:12.5px;white-space:nowrap}
.m{display:inline-block;font:700 11px/1 ui-monospace,Menlo,monospace;padding:4px 6px;border-radius:5px;letter-spacing:.03em;vertical-align:1px}
.m.get{background:var(--ok-soft);color:var(--ok)}.m.post{background:var(--accent-soft);color:var(--accent-ink)}

/* Endpoint */
.ep{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin:16px 0 10px;font:13.5px ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}
.ep .path{color:var(--ink)}

/* Código */
.code{margin:14px 0 22px;border-radius:12px;background:var(--code-bg);border:1px solid var(--code-line);overflow:hidden;box-shadow:var(--shadow)}
.code-head{display:flex;align-items:center;gap:6px;padding:6px 6px 6px 10px;border-bottom:1px solid var(--code-line)}
.tabs{display:flex;gap:2px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{border:0;background:none;color:var(--code-muted);font:600 12.5px "Sora",system-ui,sans-serif;padding:6px 10px;border-radius:7px;cursor:pointer;white-space:nowrap}
.tab:hover{color:var(--code-ink)}
.tab[aria-selected="true"]{background:rgba(255,255,255,.09);color:#fff}
.code-title{flex:1;color:var(--code-muted);font:600 12.5px "Sora",system-ui,sans-serif;padding:6px 0}
.copy{display:flex;align-items:center;gap:6px;border:0;background:none;color:var(--code-muted);font:600 12.5px "Sora",system-ui,sans-serif;padding:6px 10px;border-radius:7px;cursor:pointer;flex:none}
.copy:hover{color:#fff;background:rgba(255,255,255,.07)}
.copy.done{color:#7fe0b0}
.code pre{margin:0;padding:16px 18px;overflow-x:auto;color:var(--code-ink);font:13px/1.65 ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;tab-size:2}
.code pre code{background:none;border:0;padding:0;color:inherit;font:inherit;overflow-wrap:normal}
.tok-c{color:#8f89b3;font-style:italic}.tok-s{color:#9be6c1}.tok-k{color:#c4b8ff}.tok-n{color:#ffc78a}

/* Paginación y pie */
.pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:56px}
.pager a{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);background:var(--surface)}
.pager a:hover{border-color:var(--accent)}
.pager small{color:var(--muted);font-size:12.5px}
.pager .next{text-align:right;grid-column:2}
.foot{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13.5px;color:var(--muted)}
.foot a{color:var(--muted)}

/* Buscador */
.sd{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-start;justify-content:center;padding:10vh 16px 16px;background:rgba(10,8,20,.45)}
.sd-box{width:min(640px,100%);background:var(--surface);border:1px solid var(--line-2);border-radius:16px;box-shadow:0 30px 80px rgba(0,0,0,.35);overflow:hidden}
.sd-in{display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid var(--line)}
.sd-in input{flex:1;min-width:0;height:54px;border:0;background:none;color:var(--ink);font:inherit;font-size:16px;outline:none}
.sd-list{list-style:none;margin:0;padding:6px;max-height:min(60vh,460px);overflow-y:auto}
.sd-list a{display:block;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--ink)}
.sd-list a b{display:block;font-size:14.5px}
.sd-list a span{display:block;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sd-list a small{color:var(--accent);font-size:12px;font-weight:600}
.sd-list li.on a,.sd-list a:hover{background:var(--accent-soft)}
.sd-empty{padding:22px;color:var(--muted);text-align:center;font-size:14px}
mark{background:transparent;color:var(--accent-ink);font-weight:700}

/* Responsive */
@media (max-width:1180px){.main{grid-template-columns:minmax(0,1fr)}.toc{display:none}}
@media (max-width:900px){
  .layout{grid-template-columns:minmax(0,1fr)}
  .menu-btn{display:grid}
  .side{position:fixed;inset:var(--head) auto 0 0;width:min(300px,86vw);z-index:60;background:var(--bg);transform:translateX(-102%);transition:transform .2s ease;box-shadow:var(--shadow)}
  body.nav-open .side{transform:none}
  .scrim{position:fixed;inset:var(--head) 0 0 0;background:rgba(10,8,20,.4);z-index:55}
  .main{padding:28px 16px 72px}
  .top-link{display:none}
}
@media (max-width:560px){
  .search-btn{width:40px;padding:0;justify-content:center}
  .search-btn .lbl,.search-btn kbd{display:none}
  .brand span{display:none}
  .pager{grid-template-columns:1fr}.pager .next{grid-column:1}
  h2{font-size:21px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media print{.top,.side,.toc,.pager,.copy{display:none}.layout,.main{display:block;padding:0}}
