/* docs.html — estilos da página (antes em <style> inline). */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --bg:#f1f5f9; --card:#ffffff; --border:#e2e8f0; --border2:#cbd5e1;
  /* tons de texto escurecidos para contraste AA (≥ 4.5:1) sobre o branco e os fundos claros
     das etiquetas (tests/contraste.test.js, Chrome headless + axe) */
  --sincro:#0e7490; --sincro-dim:#155e75;
  --text:#0f172a; --muted:#475569; --subtle:#5b6474;
  --green:#166534; --amber:#92400e; --red:#b91c1c; --blue:#1d4ed8; --purple:#7e22ce;
  --code-bg:#0f172a; --code-border:#1e293b; --code-text:#cbd5e1;
  --sidebar-w:260px;
  --mono:'JetBrains Mono','Fira Code','Cascadia Code',ui-monospace,monospace;
}
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--text); font-family:Inter,system-ui,sans-serif; font-size:14px; line-height:1.6; display:flex; min-height:100vh; }
::-webkit-scrollbar { width:6px; height:6px; }
::-webkit-scrollbar-track { background:var(--bg); }
::-webkit-scrollbar-thumb { background:var(--border2); border-radius:3px; }

/* SIDEBAR */
.sidebar { position:fixed; top:0; left:0; bottom:0; width:var(--sidebar-w); background:var(--card); border-right:1px solid var(--border); overflow-y:auto; z-index:100; display:flex; flex-direction:column; }
.sidebar-header { padding:24px 20px 20px; border-bottom:1px solid var(--border); flex-shrink:0; }
.sidebar-logo { display:flex; align-items:center; gap:10px; font-size:18px; font-weight:700; color:var(--text); text-decoration:none; }
.sidebar-logo .glow { color:var(--sincro); }
.sidebar-version { margin-top:6px; display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:600; background:rgba(0,242,255,.08); color:var(--sincro); border:1px solid rgba(0,242,255,.2); border-radius:20px; padding:2px 10px; }
.sidebar-nav { padding:16px 12px; flex:1; }
.nav-section { margin-bottom:20px; }
.nav-section-title { font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--subtle); padding:0 8px; margin-bottom:6px; }
.nav-link { display:flex; align-items:center; gap:8px; padding:7px 8px; border-radius:6px; text-decoration:none; color:var(--muted); font-size:13px; transition:background .15s,color .15s; }
.nav-link:hover { background:rgba(255,255,255,.04); color:var(--text); }
.nav-link.active { background:rgba(0,242,255,.08); color:var(--sincro); }
.nav-link .mbadge { font-size:9px; font-weight:700; border-radius:3px; padding:1px 5px; flex-shrink:0; font-family:var(--mono); }
.bg-get  { background:rgba(34,197,94,.15); color:var(--green); }
.bg-post { background:rgba(59,130,246,.15); color:var(--blue); }

/* MAIN */
.main { margin-left:var(--sidebar-w); flex:1; padding:48px 48px 80px; max-width:960px; }
.doc-section { margin-bottom:64px; scroll-margin-top:32px; }
h1 { font-size:32px; font-weight:800; line-height:1.2; margin-bottom:12px; }
h1 .accent { color:var(--sincro); }
.hero-lead { font-size:16px; color:var(--muted); margin-bottom:24px; max-width:600px; }
h2 { font-size:20px; font-weight:700; margin-bottom:16px; padding-bottom:12px; border-bottom:1px solid var(--border); display:flex; align-items:center; gap:12px; }
h3 { font-size:15px; font-weight:600; margin:20px 0 8px; color:var(--muted); }
p { color:var(--muted); margin-bottom:12px; }
p strong { color:var(--text); }
a { color:var(--sincro); text-decoration:none; }
a:hover { text-decoration:underline; }

/* URL CONFIGURATOR */
.url-config-bar {
  display:flex; align-items:center; gap:10px;
  background:var(--card); border:1px solid rgba(0,242,255,.3);
  border-radius:10px; padding:12px 16px; margin-bottom:28px;
  box-shadow:0 0 20px rgba(0,242,255,.05);
}
.url-config-bar label { font-size:12px; font-weight:600; color:var(--sincro); white-space:nowrap; flex-shrink:0; }
.url-config-bar input {
  flex:1; background:var(--bg); border:1px solid var(--border); border-radius:6px;
  color:var(--text); font-family:var(--mono); font-size:13px; padding:7px 12px;
  outline:none; transition:border-color .15s;
}
.url-config-bar input:focus { border-color:var(--sincro); }
.url-config-bar .save-btn {
  background:rgba(0,242,255,.1); border:1px solid rgba(0,242,255,.3);
  color:var(--sincro); font-size:12px; font-weight:700; padding:7px 14px;
  border-radius:6px; cursor:pointer; transition:all .15s; white-space:nowrap;
}
.url-config-bar .save-btn:hover { background:var(--sincro); color:#000; }

/* ENDPOINT CARD */
.endpoint-card { background:var(--card); border:1px solid var(--border); border-radius:12px; overflow:hidden; margin-bottom:32px; }
.endpoint-header { display:flex; align-items:center; gap:14px; padding:16px 20px; background:rgba(255,255,255,.02); border-bottom:1px solid var(--border); }
.method-pill { font-family:var(--mono); font-size:11px; font-weight:700; letter-spacing:.05em; padding:4px 10px; border-radius:6px; flex-shrink:0; }
.pill-post   { background:rgba(37,99,235,.10);  color:var(--blue); border:1px solid rgba(37,99,235,.25); }
.pill-get    { background:rgba(22,163,74,.10);  color:var(--green); border:1px solid rgba(22,163,74,.25); }
.pill-patch  { background:rgba(217,119,6,.10);  color:var(--amber); border:1px solid rgba(217,119,6,.25); }
.pill-delete { background:rgba(220,38,38,.10);  color:var(--red); border:1px solid rgba(220,38,38,.25); }
.badge-patch { background:rgba(245,158,11,.15); color:var(--amber); }
.endpoint-path { font-family:var(--mono); font-size:14px; color:var(--text); font-weight:500; flex:1; }
.endpoint-desc { font-size:13px; color:var(--subtle); }
.endpoint-body { padding:20px; }

code { font-family:var(--mono); font-size:12px; background:#f1f5f9; border:1px solid var(--border); border-radius:4px; padding:1px 6px; color:var(--sincro); }

/* TABLE */
.param-table { width:100%; border-collapse:collapse; margin:12px 0; }
.param-table th { text-align:left; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--subtle); padding:8px 12px; border-bottom:1px solid var(--border); }
.param-table td { padding:10px 12px; font-size:13px; border-bottom:1px solid rgba(39,39,42,.6); vertical-align:top; }
.param-table tr:last-child td { border-bottom:none; }
.param-table td:first-child { font-family:var(--mono); font-size:12px; color:var(--sincro); }
.param-table td:nth-child(2) { color:var(--subtle); font-size:12px; }
.param-table td:nth-child(3) { color:var(--muted); }
.req-badge { font-size:9px; font-weight:700; padding:1px 5px; border-radius:3px; background:rgba(239,68,68,.15); color:var(--red); border:1px solid rgba(239,68,68,.2); vertical-align:middle; margin-left:4px; }
.opt-badge { font-size:9px; font-weight:700; padding:1px 5px; border-radius:3px; background:rgba(113,113,122,.15); color:var(--subtle); border:1px solid var(--border); vertical-align:middle; margin-left:4px; }

/* CODE TABS */
.code-tabs { margin:16px 0; }
.tab-bar { display:flex; gap:2px; background:var(--code-bg); border:1px solid var(--code-border); border-bottom:none; border-radius:8px 8px 0 0; padding:6px 6px 0; }
.tab-btn { background:none; border:none; cursor:pointer; font-family:var(--mono); font-size:12px; font-weight:600; color:#94a3b8; padding:6px 14px; border-radius:6px 6px 0 0; transition:all .15s; }
.tab-btn:hover { color:#e2e8f0; }
.tab-btn.active { background:#1e293b; color:#22d3ee; }
.tab-panel { display:none; position:relative; background:var(--code-bg); border:1px solid var(--code-border); border-radius:0 8px 8px 8px; }
.tab-panel.active { display:block; }
.tab-panel pre { padding:16px 20px; overflow-x:auto; font-family:var(--mono); font-size:12.5px; line-height:1.7; color:var(--code-text); white-space:pre; }
.tab-panel pre .kw  { color:#c084fc; }
.tab-panel pre .str { color:#86efac; }
.tab-panel pre .num { color:#fb923c; }
.tab-panel pre .cmt { color:#94a3b8; font-style:italic; }
.tab-panel pre .key { color:#7dd3fc; }
.tab-panel pre .url { color:#22d3ee; }
.copy-btn { position:absolute; top:10px; right:10px; background:rgba(255,255,255,.04); border:1px solid var(--border); color:#94a3b8; font-size:11px; font-weight:600; padding:4px 10px; border-radius:5px; cursor:pointer; transition:all .15s; font-family:var(--mono); }
.copy-btn:hover { background:rgba(0,242,255,.08); color:var(--sincro); border-color:rgba(0,242,255,.3); }
.copy-btn.copied { color:var(--green); border-color:rgba(34,197,94,.3); }

/* RESPONSE */
.response-block { background:var(--code-bg); border:1px solid var(--code-border); border-radius:8px; position:relative; margin:12px 0; }
.response-label { display:flex; align-items:center; gap:8px; padding:10px 16px; border-bottom:1px solid var(--code-border); }
.status-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.dot-200 { background:var(--green); box-shadow:0 0 6px var(--green); }
.dot-400 { background:var(--amber); box-shadow:0 0 6px var(--amber); }
.dot-401 { background:var(--red);   box-shadow:0 0 6px var(--red); }
.dot-503 { background:var(--amber); box-shadow:0 0 6px var(--amber); }
.response-label span { font-family:var(--mono); font-size:12px; color:var(--code-text); }
.response-block pre { padding:14px 16px; font-family:var(--mono); font-size:12.5px; line-height:1.6; color:var(--code-text); overflow-x:auto; }
.json-key { color:#7dd3fc; } .json-str { color:#86efac; } .json-bool { color:#fb923c; } .json-num { color:#fb923c; }

/* ALERT */
.alert { display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border-radius:8px; margin:16px 0; font-size:13px; }
.alert-info { background:rgba(0,242,255,.06); border:1px solid rgba(0,242,255,.2); color:var(--muted); }
.alert-warn { background:rgba(245,158,11,.06); border:1px solid rgba(245,158,11,.2); color:var(--muted); }
.alert-icon { font-size:15px; flex-shrink:0; margin-top:1px; }

/* ERRORS TABLE */
.error-table { width:100%; border-collapse:collapse; }
.error-table th, .error-table td { padding:10px 16px; text-align:left; border-bottom:1px solid var(--border); font-size:13px; }
.error-table th { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--subtle); }
.error-table tr:last-child td { border-bottom:none; }
.status-chip { font-family:var(--mono); font-size:12px; font-weight:700; padding:2px 8px; border-radius:4px; }
.chip-200 { background:rgba(34,197,94,.15);  color:var(--green); }
.chip-400 { background:rgba(245,158,11,.15); color:var(--amber); }
.chip-401 { background:rgba(239,68,68,.15);  color:var(--red); }
.chip-429 { background:rgba(168,85,247,.15); color:var(--purple); }
.chip-500 { background:rgba(239,68,68,.15);  color:var(--red); }
.chip-503 { background:rgba(245,158,11,.15); color:var(--amber); }

/* MOBILE MENU BUTTON */
.mobile-menu-btn { display:none; position:fixed; top:12px; right:12px; z-index:200; background:var(--card); border:1px solid var(--border2); border-radius:8px; padding:8px 14px; color:var(--muted); font-size:13px; font-weight:600; cursor:pointer; align-items:center; gap:6px; }
.mobile-menu-btn:hover { color:var(--sincro); border-color:rgba(0,242,255,.3); }
.sidebar-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.65); z-index:98; backdrop-filter:blur(2px); }

@media (max-width:768px) {
  /* Menu toggle */
  .mobile-menu-btn { display:flex; }
  .sidebar { display:none; transform:translateX(-100%); transition:transform .25s ease; }
  .sidebar.open { display:flex; transform:translateX(0); box-shadow:6px 0 40px rgba(0,0,0,.7); z-index:99; }
  .sidebar-overlay.open { display:block; }

  /* Layout */
  .main { margin-left:0; padding:56px 16px 60px; max-width:100%; overflow-x:hidden; }

  /* Typography */
  h1 { font-size:22px; }
  h2 { font-size:16px; flex-wrap:wrap; gap:6px; }
  .hero-lead { font-size:14px; }

  /* URL config bar — empilha verticalmente */
  .url-config-bar { flex-direction:column; gap:8px; }

  /* Endpoint cards */
  .endpoint-header { flex-wrap:wrap; gap:8px; padding:12px 14px; }
  .endpoint-path { word-break:break-all; font-size:12px; width:100%; }
  .endpoint-desc { font-size:12px; width:100%; }
  .endpoint-body { padding:14px 12px; }

  /* Code tabs — scroll horizontal nas abas */
  .tab-bar { overflow-x:auto; flex-wrap:nowrap; padding:4px 4px 0; scrollbar-width:none; }
  .tab-bar::-webkit-scrollbar { display:none; }
  .tab-btn { font-size:11px; padding:5px 10px; white-space:nowrap; }

  /* Blocos de código — fontes menores, scroll interno */
  .tab-panel pre { font-size:11.5px; padding:12px 14px; }
  .response-block pre { font-size:11.5px; padding:10px 12px; }
  .copy-btn { font-size:10px; padding:3px 7px; top:6px; right:6px; }

  /* Tabelas — scroll horizontal sem quebrar layout */
  .param-table, .error-table { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; width:100%; }

  /* Misc */
  .alert { font-size:12px; padding:10px 12px; }
  .doc-section { margin-bottom:40px; }
}

/* ── Estilos que eram style="" no HTML (CSP sem 'unsafe-inline' em style-src).
   :not(#_) dá peso de id, para ganhar das regras de classe como o atributo inline ganhava;
   o que o JS põe em el.style continua por cima. ── */
.i-42fdfd:not(#_){background:rgba(245,158,11,.15);color:var(--amber)}
.i-04eacd:not(#_){background:rgba(239,68,68,.15);color:var(--red)}
.i-3660eb:not(#_){background:rgba(217,119,6,.15);color:var(--amber)}
.i-faf1f8:not(#_){background:rgba(99,102,241,.15);color:#a5b4fc}
.i-a61b76:not(#_){margin-top:8px;border-top:1px solid var(--border);padding-top:12px}
.i-8a77e5:not(#_){margin-top:8px}
.i-5a2892:not(#_){background:rgba(168,85,247,.08);border:1px solid rgba(168,85,247,.2);border-radius:8px;padding:12px 14px;margin-bottom:12px;font-size:12px;color:var(--muted)}
.i-4c5cd5:not(#_){color:var(--purple)}
.i-5a9479:not(#_){border-color:rgba(99,102,241,.35);background:rgba(99,102,241,.04)}
.i-6ba842:not(#_){gap:12px;flex-wrap:wrap}
.i-27e469:not(#_){font-size:1.3rem}
.i-e87276:not(#_){font-weight:700;color:var(--text-primary);font-size:.95rem}
.i-a15196:not(#_){font-size:.8rem;color:var(--text-muted);margin-top:2px}
.i-0571a9:not(#_){margin-left:auto;padding:8px 18px;border-radius:8px;background:rgba(99,102,241,.15);color:#a5b4fc;font-size:.8rem;font-weight:600;text-decoration:none;border:1px solid rgba(99,102,241,.3);white-space:nowrap}
.i-3d8da9:not(#_){font-size:.85rem;color:var(--text-muted);margin-bottom:1rem}
.i-d72026:not(#_){display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:1rem}
.i-bbef11:not(#_){background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px}
.i-1a980f:not(#_){font-size:.7rem;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}
.i-a0f5d6:not(#_){font-size:.82rem;color:var(--text-primary)}
.i-c4f0f1:not(#_){padding:20px;display:flex;flex-direction:column;gap:24px}
.i-803309:not(#_){display:flex;gap:16px;align-items:flex-start}
.i-98d288:not(#_){font-family:var(--mono);font-size:11px;font-weight:700;background:rgba(0,242,255,.1);color:var(--sincro);border:1px solid rgba(0,242,255,.2);border-radius:4px;padding:2px 8px;flex-shrink:0}
.i-359ed4:not(#_){font-size:12px;color:var(--subtle);margin-bottom:8px}
.i-7e5319:not(#_){list-style:none;color:var(--muted);font-size:13px;display:flex;flex-direction:column;gap:4px}
.i-a69a03:not(#_){display:flex;gap:16px;align-items:flex-start;border-top:1px solid var(--border);padding-top:20px}
.i-044fe8:not(#_){font-family:var(--mono);font-size:11px;font-weight:700;background:rgba(113,113,122,.1);color:var(--subtle);border:1px solid var(--border);border-radius:4px;padding:2px 8px;flex-shrink:0}
.i-022e65:not(#_){border-top:1px solid var(--border);padding-top:24px;color:var(--subtle);font-size:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.i-e157da:not(#_){color:var(--subtle);font-family:var(--mono);font-size:11px}
