:root{
  --ink:        #0A1236;
  --ink-soft:   #121B45;
  --paper:      #F7F8FC;
  --paper-dim:  #EDEFF8;
  --slate:      #0F1730;
  --line:       #26325C;
  --line-soft:  #E1E4F0;
  --brand:      #3B63FF;
  --brand-soft: rgba(59,99,255,0.10);
  --cyan:       #14B8AE;
  --cyan-soft:  rgba(20,184,174,0.12);
  --amber:      #D9822B;
  --amber-soft: rgba(217,130,43,0.12);
  --red:        #E15252;
  --red-soft:   rgba(225,82,82,0.12);
  --paper-70:   rgba(247,248,252,0.7);
  --ink-70:     rgba(10,18,54,0.68);

  --display: 'Fraunces', serif;
  --body: 'Inter', sans-serif;
  --mono: 'IBM Plex Mono', monospace;

  --sidebar-w: 300px;
}

*{ margin:0; padding:0; box-sizing:border-box; }
body{
  background:var(--paper);
  color:var(--slate);
  font-family:var(--body);
  -webkit-font-smoothing:antialiased;
}
a{ color:inherit; text-decoration:none; }
code{ font-family:var(--mono); }

::selection{ background:var(--brand); color:#fff; }

/* ---------- LAYOUT ---------- */
.docs-shell{ display:flex; min-height:100vh; }

.sidebar{
  width:var(--sidebar-w); flex-shrink:0;
  background:var(--ink);
  color:var(--paper-70);
  position:fixed; top:0; left:0; bottom:0;
  overflow-y:auto;
  border-right:1px solid rgba(255,255,255,0.06);
}
.sidebar::-webkit-scrollbar{ width:8px; }
.sidebar::-webkit-scrollbar-thumb{ background:rgba(255,255,255,0.12); border-radius:4px; }

.sidebar-top{
  position:sticky; top:0; z-index:2;
  background:var(--ink);
  padding:26px 22px 16px;
  border-bottom:1px solid rgba(255,255,255,0.07);
}
.brand{
  display:flex; align-items:center; gap:9px;
  font-family:var(--display); font-weight:600; font-size:18px; color:var(--paper);
  margin-bottom:16px;
}
.brand .mark{
  width:24px; height:24px; border-radius:6px; background:#0d1740; position:relative; flex-shrink:0;
}
.brand .mark::before{
  content:""; position:absolute; inset:0; border-radius:6px;
  background:linear-gradient(115deg, transparent 44%, var(--brand) 44%, var(--brand) 56%, transparent 56%);
}
.docs-tag{
  font-family:var(--mono); font-size:10.5px; letter-spacing:0.05em; text-transform:uppercase;
  color:var(--cyan); background:var(--cyan-soft); padding:3px 8px; border-radius:20px;
}
.search-box input{
  width:100%; padding:9px 12px; border-radius:8px;
  background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.1);
  color:var(--paper); font-family:var(--body); font-size:13.5px;
}
.search-box input::placeholder{ color:#6a7398; }
.search-box input:focus{ outline:none; border-color:var(--cyan); }

.sidebar-nav{ padding:14px 14px 40px; }
.sidebar-empty{ padding:16px; font-size:13px; color:#8b93b8; }
.nav-group{ margin-bottom:6px; }
.nav-group-title{
  font-family:var(--mono); font-size:11px; letter-spacing:0.06em; text-transform:uppercase;
  color:#6a7398; padding:14px 10px 6px;
}
.nav-link{
  display:flex; align-items:center; gap:9px;
  padding:8px 10px; border-radius:7px;
  font-size:13.5px; color:#c3c9e2;
  transition:background .15s, color .15s;
}
.nav-link:hover{ background:rgba(255,255,255,0.05); color:#fff; }
.nav-link.active{ background:var(--brand-soft); color:#fff; }
.nav-method{
  font-family:var(--mono); font-size:9.5px; font-weight:600;
  padding:2px 6px; border-radius:4px; letter-spacing:0.02em;
  flex-shrink:0; width:44px; text-align:center;
}
.nav-method-get{ background:rgba(20,184,174,0.18); color:#4fe0d4; }
.nav-method-post{ background:rgba(59,99,255,0.2); color:#9db1ff; }
.nav-method-put,.nav-method-patch{ background:rgba(217,130,43,0.2); color:#f0b166; }
.nav-method-delete{ background:rgba(225,82,82,0.2); color:#ff9c9c; }

/* ---------- MAIN ---------- */
.docs-main{
  margin-left:var(--sidebar-w);
  flex:1;
  padding:56px 56px 100px;
  max-width:920px;
}
.docs-header{ margin-bottom:56px; max-width:640px; }
.section-tag{
  font-family:var(--mono); font-size:12px; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--cyan); margin-bottom:12px; display:block;
}
.docs-header h1{
  font-family:var(--display); font-weight:600; font-size:clamp(28px,3.4vw,38px);
  color:var(--ink); margin-bottom:14px; letter-spacing:-0.01em;
}
.docs-header p{ color:var(--ink-70); font-size:16px; line-height:1.6; }

.empty-state{
  padding:40px; text-align:center; color:var(--ink-70);
  background:var(--paper-dim); border-radius:12px; border:1px dashed var(--line-soft);
}

.category-title{
  font-family:var(--display); font-weight:600; font-size:22px; color:var(--ink);
  margin:52px 0 22px; padding-bottom:12px; border-bottom:1px solid var(--line-soft);
}
.category-block:first-of-type .category-title{ margin-top:0; }

.endpoint-card{
  background:#fff;
  border:1px solid var(--line-soft);
  border-radius:14px;
  padding:30px 32px;
  margin-bottom:24px;
  scroll-margin-top:24px;
}
.endpoint-head{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.endpoint-path{
  font-size:14px; color:var(--ink); background:var(--paper-dim);
  padding:5px 10px; border-radius:6px; flex:1; overflow-x:auto; white-space:nowrap;
}
.method-badge{
  font-family:var(--mono); font-size:12px; font-weight:600; letter-spacing:0.03em;
  padding:5px 11px; border-radius:6px; flex-shrink:0;
}
.method-get{ background:var(--cyan-soft); color:#0e8f86; }
.method-post{ background:var(--brand-soft); color:var(--brand); }
.method-put,.method-patch{ background:var(--amber-soft); color:#a8621d; }
.method-delete{ background:var(--red-soft); color:#c23c3c; }

.copy-btn{
  font-family:var(--mono); font-size:11.5px; color:var(--ink-70);
  background:var(--paper-dim); border:1px solid var(--line-soft); border-radius:6px;
  padding:6px 10px; cursor:pointer; transition:background .15s, color .15s;
  flex-shrink:0;
}
.copy-btn:hover{ background:#e3e7f5; color:var(--ink); }
.copy-btn.copied{ background:var(--cyan-soft); color:#0e8f86; border-color:transparent; }

.endpoint-name{ font-family:var(--display); font-weight:600; font-size:19px; color:var(--ink); margin-bottom:8px; }
.endpoint-desc{ color:var(--ink-70); font-size:14.5px; line-height:1.65; margin-bottom:16px; }

.auth-line{ display:flex; align-items:center; gap:10px; margin-bottom:22px; }
.auth-pill{
  font-family:var(--mono); font-size:11px; letter-spacing:0.03em; text-transform:uppercase;
  padding:4px 10px; border-radius:20px;
}
.auth-pill.required{ background:var(--amber-soft); color:#a8621d; }
.auth-pill.public{ background:var(--cyan-soft); color:#0e8f86; }
.auth-note{ font-size:13px; color:var(--ink-70); }

.block-title{
  font-family:var(--mono); font-size:11.5px; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--ink-70); margin:22px 0 10px;
}
.doc-table{ width:100%; border-collapse:collapse; font-size:13.5px; margin-bottom:8px; }
.doc-table th{
  text-align:left; font-family:var(--mono); font-size:11px; letter-spacing:0.03em; text-transform:uppercase;
  color:#8b93b8; padding:8px 10px; border-bottom:1px solid var(--line-soft);
}
.doc-table td{ padding:9px 10px; border-bottom:1px solid var(--line-soft); color:var(--slate); vertical-align:top; }
.doc-table td code{ background:var(--paper-dim); padding:2px 6px; border-radius:4px; font-size:12.5px; }
.loc-tag{
  font-family:var(--mono); font-size:11px; text-transform:uppercase; color:var(--brand);
  background:var(--brand-soft); padding:2px 8px; border-radius:10px;
}

.response-tabs{ margin-top:6px; }
.response-tab-buttons{ display:flex; gap:8px; margin-bottom:12px; flex-wrap:wrap; }
.tab-btn{
  font-family:var(--mono); font-size:12.5px; font-weight:600;
  padding:6px 14px; border-radius:7px; border:1px solid var(--line-soft);
  background:#fff; color:var(--ink-70); cursor:pointer; transition:all .15s;
}
.tab-btn.status-2xx.active{ background:var(--cyan-soft); color:#0e8f86; border-color:transparent; }
.tab-btn.status-4xx.active,.tab-btn.status-5xx.active{ background:var(--red-soft); color:#c23c3c; border-color:transparent; }
.tab-btn:not(.active):hover{ background:var(--paper-dim); }
.tab-panel{ display:none; }
.tab-panel.active{ display:block; }
.resp-desc{ font-size:13.5px; color:var(--ink-70); margin-bottom:10px; }

.code-block{
  position:relative; background:var(--ink); border-radius:10px; overflow:hidden;
}
.code-block pre{
  padding:18px 20px; overflow-x:auto; font-family:var(--mono); font-size:13px; line-height:1.7; color:#c3c9e2;
}
.code-copy{
  position:absolute; top:10px; right:10px;
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.12); color:#c3c9e2;
}
.code-copy:hover{ background:rgba(255,255,255,0.16); color:#fff; }
.code-copy.copied{ background:var(--cyan-soft); color:#4fe0d4; }

/* simple JSON token colors, applied by docs.js */
.jk{ color:#9db1ff; }   /* key */
.js{ color:#7ee0c9; }   /* string */
.jn{ color:#f0b166; }   /* number */
.jb{ color:#ff9c9c; }   /* boolean/null */

.docs-footer{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  margin-top:60px; padding-top:24px; border-top:1px solid var(--line-soft);
  font-family:var(--mono); font-size:12px; color:var(--ink-70);
}

/* ---------- MOBILE ---------- */
.mobile-toggle{
  display:none; position:fixed; top:14px; left:14px; z-index:50;
  background:var(--ink); color:#fff; border:none; border-radius:8px;
  padding:10px 14px; font-family:var(--mono); font-size:13px; cursor:pointer;
}
@media (max-width: 960px){
  .mobile-toggle{ display:block; }
  .sidebar{
    transform:translateX(-100%);
    transition:transform .25s ease;
    z-index:40; width:86%; max-width:340px;
  }
  .sidebar.open{ transform:translateX(0); box-shadow:20px 0 60px rgba(0,0,0,0.3); }
  .docs-main{ margin-left:0; padding:88px 22px 70px; }
  .endpoint-card{ padding:22px 18px; }
  .doc-table{ display:block; overflow-x:auto; white-space:nowrap; }
}
