/* Документация API. Базовые токены и общие компоненты находятся в landing.css. */
:root { --font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace; }

html { scroll-behavior: smooth; }
body { overflow-x: hidden; }
code, pre { font-family: var(--font-mono); }

.api-hero {
  position: relative;
  min-height: 680px;
  display: flex;
  align-items: center;
  padding: 104px 0 88px;
  overflow: hidden;
  border-bottom: 1px solid var(--glass-border);
}

.api-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 18% 35%, rgba(139, 92, 246, 0.16), transparent 33%), radial-gradient(circle at 82% 50%, rgba(16, 185, 129, 0.09), transparent 30%);
  pointer-events: none;
}

.api-orbit { position: absolute; border: 1px solid rgba(139, 92, 246, 0.1); border-radius: 50%; pointer-events: none; }
.api-orbit--one { width: 520px; height: 520px; top: 52%; right: -120px; transform: translateY(-50%); }
.api-orbit--two { width: 380px; height: 380px; top: 52%; right: -50px; transform: translateY(-50%); }

.api-hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(520px, 1.1fr); gap: 70px; align-items: center; }
.api-kicker { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 24px; color: var(--text-muted); font: 600 12px/1 var(--font-mono); letter-spacing: 0.08em; text-transform: uppercase; }
.api-live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 5px rgba(16, 185, 129, 0.1), 0 0 14px rgba(16, 185, 129, 0.8); }
.api-hero h1 { max-width: 650px; margin: 0; font-size: clamp(3rem, 6vw, 5.7rem); line-height: 0.98; letter-spacing: -0.065em; }
.api-hero h1 span { color: transparent; background: linear-gradient(100deg, #a78bfa, #c084fc 48%, #f59e0b); background-clip: text; -webkit-background-clip: text; }
.api-hero__copy > p { max-width: 620px; margin: 28px 0 30px; color: var(--text-muted); font-size: 1.1rem; line-height: 1.75; }
.api-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

.api-base-url { display: flex; align-items: center; gap: 10px; max-width: 620px; margin-top: 34px; padding: 10px 10px 10px 15px; background: rgba(255,255,255,0.025); border: 1px solid var(--glass-border); border-radius: 12px; }
.api-base-url > span { color: var(--text-dim); font-size: 12px; white-space: nowrap; }
.api-base-url code { min-width: 0; overflow: hidden; color: var(--text-secondary); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.api-base-url button, .code-card__head button { margin-left: auto; padding: 7px 10px; color: var(--text-muted); font: 500 11px/1 var(--font-sans); background: rgba(255,255,255,0.04); border: 1px solid var(--glass-border); border-radius: 7px; cursor: pointer; transition: color var(--t-fast), border-color var(--t-fast), background var(--t-fast); }
.api-base-url button:hover, .code-card__head button:hover { color: #fff; background: var(--accent-soft); border-color: rgba(139, 92, 246, 0.45); }

.api-terminal { position: relative; min-width: 0; overflow: hidden; background: rgba(8, 8, 12, 0.9); border: 1px solid rgba(255,255,255,0.11); border-radius: 18px; box-shadow: 0 30px 80px rgba(0,0,0,0.45), 0 0 60px rgba(139, 92, 246, 0.08); transform: perspective(1200px) rotateY(-2deg) rotateX(1deg); }
.api-terminal::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(115deg, rgba(255,255,255,0.035), transparent 22%); }
.api-terminal__bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 12px 15px; color: var(--text-dim); font: 500 11px/1 var(--font-mono); background: rgba(255,255,255,0.025); border-bottom: 1px solid var(--glass-border); }
.api-terminal__dots { display: flex; gap: 6px; }
.api-terminal__dots i { width: 8px; height: 8px; border-radius: 50%; background: #f87171; }
.api-terminal__dots i:nth-child(2) { background: #fbbf24; }
.api-terminal__dots i:nth-child(3) { background: #34d399; }
.api-terminal__status { justify-self: end; padding: 4px 7px; color: #6ee7b7; background: rgba(16,185,129,0.09); border: 1px solid rgba(16,185,129,0.2); border-radius: 6px; }
.api-terminal pre { margin: 0; padding: 30px; overflow-x: auto; color: #d4d4d8; font-size: 12.5px; line-height: 1.8; }
.code-muted { color: #71717a; }.code-string { color: #a7f3d0; }.code-key { color: #c4b5fd; }.code-bool { color: #f0abfc; }.code-number { color: #fbbf24; }

.api-flow-section { padding: 96px 0; background: linear-gradient(180deg, rgba(255,255,255,0.012), transparent); border-bottom: 1px solid var(--glass-border); }
.api-section-heading { max-width: 720px; margin-bottom: 46px; }
.api-section-heading > span, .api-overline { display: block; margin-bottom: 12px; color: var(--accent-hover); font-size: 12px; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; }
.api-section-heading h2 { margin-bottom: 14px; font-size: clamp(2rem, 4vw, 3rem); }
.api-section-heading p { color: var(--text-muted); font-size: 1.05rem; line-height: 1.7; }
.api-flow { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.api-flow::before { content: ""; position: absolute; top: 37px; left: 7%; right: 7%; height: 1px; background: linear-gradient(90deg, transparent, rgba(139,92,246,0.5), rgba(16,185,129,0.4), transparent); }
.api-flow__step { position: relative; display: flex; flex-direction: column; align-items: flex-start; min-height: 190px; padding: 24px; color: var(--text-primary); background: rgba(17,17,21,0.68); border: 1px solid var(--glass-border); border-radius: 16px; transition: transform var(--t-base), border-color var(--t-base), background var(--t-base); }
.api-flow__step:hover { transform: translateY(-4px); background: rgba(22,22,28,0.82); border-color: rgba(139,92,246,0.35); }
.api-flow__step b { position: absolute; top: 22px; right: 22px; color: rgba(255,255,255,0.16); font: 600 12px/1 var(--font-mono); }
.api-flow__step .method { margin-bottom: auto; }
.api-flow__step strong { margin: 28px 0 8px; font-size: 15px; }
.api-flow__step span:last-child { color: var(--text-dim); font-size: 13px; line-height: 1.5; }

.method { display: inline-flex; justify-content: center; min-width: 46px; padding: 5px 7px; font: 700 10px/1 var(--font-mono); font-style: normal; letter-spacing: 0.04em; border-radius: 6px; }
.method--post { color: #c4b5fd; background: rgba(139,92,246,0.13); border: 1px solid rgba(139,92,246,0.26); }
.method--get { color: #6ee7b7; background: rgba(16,185,129,0.1); border: 1px solid rgba(16,185,129,0.22); }

.api-manual { padding: 96px 0 120px; }
.api-layout { display: grid; grid-template-columns: 230px minmax(0, 850px); justify-content: space-between; gap: 72px; align-items: start; }
.api-sidebar { position: sticky; top: 92px; }
.api-sidebar__label { margin: 0 0 14px 13px; color: var(--text-dim); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.api-sidebar nav { display: grid; gap: 2px; }
.api-sidebar nav a { padding: 9px 13px; color: var(--text-dim); font-size: 13px; border-left: 1px solid rgba(255,255,255,0.08); transition: color var(--t-fast), background var(--t-fast), border-color var(--t-fast); }
.api-sidebar nav a:hover { color: var(--text-secondary); }
.api-sidebar nav a.active { color: var(--text-primary); background: linear-gradient(90deg, rgba(139,92,246,0.12), transparent); border-left-color: var(--accent); }
.api-sidebar__help { display: grid; gap: 6px; margin-top: 30px; padding: 16px; background: rgba(255,255,255,0.02); border: 1px solid var(--glass-border); border-radius: 12px; }
.api-sidebar__help span { color: var(--text-dim); font-size: 11px; }
.api-sidebar__help a { color: var(--accent-hover); font-size: 12px; font-weight: 600; }

.api-content { min-width: 0; }
.api-doc-section { position: relative; display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 24px; padding-bottom: 90px; scroll-margin-top: 96px; }
.api-doc-section:not(:last-of-type)::before { content: ""; position: absolute; top: 42px; bottom: 12px; left: 20px; width: 1px; background: linear-gradient(rgba(139,92,246,0.28), rgba(255,255,255,0.04)); }
.api-section-number { position: relative; z-index: 1; display: grid; place-items: center; width: 42px; height: 42px; color: var(--accent-hover); font: 600 11px/1 var(--font-mono); background: #101014; border: 1px solid rgba(139,92,246,0.3); border-radius: 12px; }
.api-doc-section__body { min-width: 0; }
.api-doc-section h2 { margin: 0 0 18px; font-size: clamp(1.8rem, 3vw, 2.45rem); letter-spacing: -0.035em; }
.api-doc-section h3 { margin: 40px 0 16px; font-size: 1.05rem; }
.api-lead { max-width: 760px; margin: 0 0 28px; color: var(--text-muted); font-size: 1rem; line-height: 1.75; }
.api-lead code, .api-note code, .api-callout code, .api-table code { padding: 2px 5px; color: #c4b5fd; font-size: 0.86em; background: rgba(139,92,246,0.09); border-radius: 5px; }
.endpoint-title { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.endpoint-title code { min-width: 0; overflow: hidden; color: var(--text-muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }

.code-card, .response-card { margin: 24px 0; overflow: hidden; background: #0c0c10; border: 1px solid rgba(255,255,255,0.09); border-radius: 14px; box-shadow: 0 18px 50px rgba(0,0,0,0.18); }
.code-card__head, .response-card__head { display: flex; align-items: center; min-height: 42px; padding: 8px 10px 8px 15px; color: var(--text-dim); font: 500 11px/1 var(--font-mono); background: rgba(255,255,255,0.025); border-bottom: 1px solid var(--glass-border); }
.code-card__head span { display: flex; align-items: center; gap: 8px; }
.code-file-icon { display: grid; place-items: center; width: 20px; height: 20px; color: var(--accent-hover); font-style: normal; background: var(--accent-soft); border-radius: 5px; }
.code-card pre, .response-card pre { margin: 0; padding: 22px; overflow-x: auto; color: #d4d4d8; font-size: 12px; line-height: 1.8; tab-size: 2; }
.response-card { border-color: rgba(16,185,129,0.17); }
.response-card__head i { margin-left: auto; padding: 5px 8px; color: #6ee7b7; font-style: normal; background: rgba(16,185,129,0.08); border-radius: 6px; }
.response-card--error { border-color: rgba(248,113,113,0.19); }
.response-card--error .response-card__head i { color: #fca5a5; background: rgba(248,113,113,0.08); }

.api-callout { display: grid; grid-template-columns: 30px minmax(0,1fr); gap: 13px; margin: 24px 0; padding: 18px; border-radius: 12px; }
.api-callout__icon { display: grid; place-items: center; width: 28px; height: 28px; font: 700 12px/1 var(--font-mono); border-radius: 8px; }
.api-callout strong { display: block; margin: 4px 0 6px; font-size: 13px; }
.api-callout p { margin: 0; color: var(--text-muted); font-size: 12.5px; line-height: 1.65; }
.api-callout--info { background: rgba(139,92,246,0.07); border: 1px solid rgba(139,92,246,0.18); }.api-callout--info .api-callout__icon { color: #c4b5fd; background: rgba(139,92,246,0.14); }
.api-callout--warning { background: rgba(245,158,11,0.06); border: 1px solid rgba(245,158,11,0.17); }.api-callout--warning .api-callout__icon { color: #fbbf24; background: rgba(245,158,11,0.12); }
.api-callout--success { background: rgba(16,185,129,0.06); border: 1px solid rgba(16,185,129,0.17); }.api-callout--success .api-callout__icon { color: #6ee7b7; background: rgba(16,185,129,0.12); }

.api-prerequisites { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 28px; }
.api-prerequisites > div { display: flex; gap: 12px; min-width: 0; padding: 16px; background: rgba(255,255,255,0.02); border: 1px solid var(--glass-border); border-radius: 12px; }
.api-prerequisites b { display: grid; place-items: center; flex: 0 0 25px; height: 25px; color: var(--accent-hover); font: 600 11px/1 var(--font-mono); background: var(--accent-soft); border-radius: 7px; }
.api-prerequisites span { display: grid; gap: 5px; }
.api-prerequisites strong { font-size: 12px; }.api-prerequisites small { color: var(--text-dim); font-size: 10.5px; line-height: 1.5; }
.auth-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.auth-option { display: grid; gap: 12px; padding: 18px; background: rgba(255,255,255,0.02); border: 1px solid var(--glass-border); border-radius: 12px; }
.auth-option span { color: var(--text-dim); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }.auth-option code { color: var(--text-secondary); font-size: 11.5px; overflow-wrap: anywhere; }
.auth-option--primary { background: rgba(139,92,246,0.06); border-color: rgba(139,92,246,0.22); }.auth-option--primary span { color: var(--accent-hover); }

.api-table-wrap { overflow-x: auto; border: 1px solid var(--glass-border); border-radius: 12px; }
.api-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.api-table th, .api-table td { padding: 14px 16px; text-align: left; border-bottom: 1px solid var(--glass-border); vertical-align: top; }
.api-table tr:last-child td { border-bottom: 0; }.api-table th { color: var(--text-dim); font-size: 10px; letter-spacing: .07em; text-transform: uppercase; background: rgba(255,255,255,0.025); }.api-table td { color: var(--text-muted); line-height: 1.55; }.api-table td:first-child { color: var(--text-secondary); white-space: nowrap; }
.api-note { margin: 18px 0 0; padding-left: 14px; color: var(--text-dim); font-size: 12.5px; line-height: 1.65; border-left: 2px solid rgba(139,92,246,0.35); }

.status-track { display: grid; grid-template-columns: repeat(4, 1fr); margin: 30px 0; }
.status-track > div { position: relative; display: grid; gap: 7px; padding-top: 23px; border-top: 1px solid rgba(255,255,255,0.09); }
.status-track i { position: absolute; top: -5px; left: 0; width: 10px; height: 10px; background: #27272a; border: 2px solid #09090b; border-radius: 50%; box-shadow: 0 0 0 1px rgba(255,255,255,0.09); }
.status-track .is-done i { background: var(--accent); box-shadow: 0 0 0 1px var(--accent), 0 0 12px rgba(139,92,246,.7); }
.status-track strong { font: 600 10.5px/1 var(--font-mono); }.status-track span { color: var(--text-dim); font-size: 10px; }

.endpoint-list { display: grid; overflow: hidden; border: 1px solid var(--glass-border); border-radius: 14px; }
.endpoint-list > div { display: grid; grid-template-columns: 52px minmax(0,1.7fr) minmax(130px,1fr) 36px; gap: 12px; align-items: center; min-height: 64px; padding: 12px 16px; border-bottom: 1px solid var(--glass-border); }
.endpoint-list > div:last-child { border-bottom: 0; }.endpoint-list code { min-width: 0; overflow: hidden; color: var(--text-secondary); font-size: 10.5px; text-overflow: ellipsis; white-space: nowrap; }.endpoint-list span { color: var(--text-dim); font-size: 11px; }.endpoint-list b { color: var(--text-dim); font: 500 10px/1 var(--font-mono); }
.error-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.error-grid > div { display: flex; gap: 14px; padding: 17px; background: rgba(255,255,255,0.02); border: 1px solid var(--glass-border); border-radius: 12px; }
.error-grid b { color: #fca5a5; font: 600 12px/1.4 var(--font-mono); }.error-grid span { display: grid; gap: 5px; }.error-grid strong { font-size: 12px; }.error-grid small { color: var(--text-dim); font-size: 10.5px; line-height: 1.55; }

.api-final-cta { margin-left: 66px; padding: 54px; text-align: center; background: radial-gradient(circle at 50% 0, rgba(139,92,246,0.18), transparent 54%), var(--bg-card); border: 1px solid rgba(139,92,246,0.22); border-radius: 20px; }
.api-final-cta h2 { margin-bottom: 12px; }.api-final-cta p { max-width: 600px; margin: 0 auto 26px; color: var(--text-muted); line-height: 1.7; }.api-final-cta > div { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; }
.api-toast { position: fixed; z-index: 1000; right: 24px; bottom: 24px; padding: 11px 15px; color: #d1fae5; font-size: 12px; background: rgba(6,78,59,.92); border: 1px solid rgba(52,211,153,.28); border-radius: 9px; opacity: 0; pointer-events: none; transform: translateY(8px); transition: opacity .2s, transform .2s; }.api-toast.visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1100px) {
  .api-hero__grid { grid-template-columns: 1fr 1fr; gap: 36px; }
  .api-layout { grid-template-columns: 200px minmax(0,1fr); gap: 36px; }
}

@media (max-width: 900px) {
  .api-hero { min-height: 0; padding: 80px 0; }
  .api-hero__grid { grid-template-columns: 1fr; }
  .api-terminal { transform: none; }
  .api-flow { grid-template-columns: 1fr 1fr; }.api-flow::before { display: none; }
  .api-layout { grid-template-columns: 1fr; }
  .api-sidebar { position: static; padding-bottom: 24px; overflow-x: auto; border-bottom: 1px solid var(--glass-border); }
  .api-sidebar__label, .api-sidebar__help { display: none; }.api-sidebar nav { display: flex; width: max-content; }.api-sidebar nav a { border-left: 0; border-bottom: 1px solid var(--glass-border); }.api-sidebar nav a.active { border-bottom-color: var(--accent); }
}

@media (max-width: 640px) {
  .api-hero { padding: 64px 0; }.api-hero h1 { font-size: 3.1rem; }.api-hero__copy > p { font-size: 1rem; }.api-base-url > span { display: none; }
  .api-terminal pre { padding: 20px; font-size: 10.5px; }.api-terminal__bar { grid-template-columns: 1fr auto; }.api-terminal__bar > span:nth-child(2) { display: none; }
  .api-flow-section, .api-manual { padding: 68px 0; }.api-flow { grid-template-columns: 1fr; }.api-flow__step { min-height: 160px; }
  .api-doc-section { grid-template-columns: 32px minmax(0,1fr); gap: 14px; padding-bottom: 70px; }.api-section-number { width: 32px; height: 32px; border-radius: 9px; }.api-doc-section:not(:last-of-type)::before { top: 32px; left: 15px; }
  .api-prerequisites, .auth-options, .error-grid { grid-template-columns: 1fr; }.status-track { grid-template-columns: 1fr 1fr; row-gap: 24px; }.endpoint-list > div { grid-template-columns: 50px minmax(0,1fr) 32px; }.endpoint-list span { display: none; }
  .code-card pre, .response-card pre { padding: 17px; font-size: 10.5px; }.code-card__head { padding-left: 10px; }.api-table th, .api-table td { padding: 12px; }
  .api-final-cta { margin-left: 46px; padding: 36px 20px; }.api-toast { right: 16px; bottom: 16px; }
}
