*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--bg:#000000;--bg2:#0a0a0a;--bg3:#111111;--card:rgba(255,255,255,.025);--card2:rgba(255,255,255,.04);--ch:rgba(255,255,255,.06);--bd:rgba(255,255,255,.07);--bd2:rgba(255,255,255,.11);--bh:rgba(59,130,246,.35);--pri:#3b82f6;--pd:#1e40af;--p2:#1e3a8a;--pl:#60a5fa;--gw:rgba(59,130,246,.15);--gw2:rgba(59,130,246,.3);--cy:#60a5fa;--gn:#10b981;--rd:#ef4444;--yl:#fbbf24;--or:#3b82f6;--tx:#e8ecf3;--tx2:#b0b8c8;--mt:#808896;--dm:#5a6270;--r:12px;--r2:16px;--f:'Chakra Petch','Segoe UI',Roboto,sans-serif;--shadow:0 2px 14px rgba(0,0,0,.4);--shadow-lg:0 12px 40px rgba(0,0,0,.6);--grid:rgba(255,255,255,.02)}
html{scroll-behavior:smooth}
body{font-family:var(--f);background:linear-gradient(135deg,#000 0%,#050505 50%,#000 100%);background-attachment:fixed;color:var(--tx);line-height:1.6;min-height:100vh;overflow-x:hidden;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative}
body::before{content:'';position:fixed;inset:0;background-image:linear-gradient(0deg,transparent 24%,var(--grid) 25%,var(--grid) 26%,transparent 27%,transparent 74%,var(--grid) 75%,var(--grid) 76%,transparent 77%,transparent),linear-gradient(90deg,transparent 24%,var(--grid) 25%,var(--grid) 26%,transparent 27%,transparent 74%,var(--grid) 75%,var(--grid) 76%,transparent 77%,transparent);background-size:55px 55px;pointer-events:none;z-index:0}
img,video,svg{pointer-events:none;-webkit-user-drag:none}
a{color:var(--pri);text-decoration:none;transition:.25s}
a:hover{color:var(--pl)}
button{border:none;background:none;cursor:pointer;font-family:var(--f);color:inherit}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 28px;border-radius:var(--r);font-size:.86rem;font-weight:600;transition:.3s;letter-spacing:.3px}
.bp{background:linear-gradient(135deg,#3b82f6 0%,#1e40af 100%);color:#fff;box-shadow:0 4px 20px var(--gw2);position:relative;overflow:hidden}
.bp::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);transition:.5s}.bp:hover::before{left:100%}
.bp:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(59,130,246,.45)}
.bo{background:transparent;border:1px solid var(--bd2);color:var(--tx2)}
.bo:hover{border-color:var(--pri);color:var(--pri);background:rgba(59,130,246,.05)}
.bs{padding:9px 18px;font-size:.78rem}
input,select,textarea{width:100%;padding:12px 16px;background:var(--bg2);border:1px solid var(--bd);border-radius:10px;color:var(--tx);font-size:.86rem;font-family:var(--f);transition:.25s;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--pri);box-shadow:0 0 0 3px var(--gw),0 0 18px rgba(59,130,246,.1)}
input::placeholder{color:var(--dm)}
select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235a6270' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:24px;backdrop-filter:blur(20px);transition:.3s;position:relative}
.card:hover{border-color:var(--bh);box-shadow:0 4px 28px rgba(0,0,0,.3)}
.container{max-width:1120px;margin:0 auto;padding:0 24px}
#particles{position:fixed;inset:0;z-index:0;pointer-events:none}
.fade-up{animation:fu .6s cubic-bezier(.4,0,.2,1) both}
@keyframes fu{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}
@keyframes glowPulse{0%,100%{box-shadow:0 0 20px rgba(59,130,246,.3)}50%{box-shadow:0 0 34px rgba(59,130,246,.55)}}
.spinner{width:44px;height:44px;border:3px solid var(--bd);border-top-color:var(--pri);border-right-color:var(--pl);border-radius:50%;animation:spin .8s linear infinite}
.alert{padding:14px 18px;border-radius:12px;font-size:.82rem;margin-bottom:16px;display:none;backdrop-filter:blur(8px);border-left:3px solid}
.alert-error{background:rgba(239,68,68,.06);border-color:var(--rd);color:var(--rd)}
.alert-success{background:rgba(16,185,129,.06);border-color:var(--gn);color:var(--gn)}
.alert-warn{background:rgba(251,191,36,.06);border-color:var(--yl);color:var(--yl)}
.badge{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border-radius:20px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px}
.badge-gn{background:rgba(16,185,129,.1);color:var(--gn);border:1px solid rgba(16,185,129,.2)}.badge-yl{background:rgba(251,191,36,.1);color:var(--yl);border:1px solid rgba(251,191,36,.2)}.badge-rd{background:rgba(239,68,68,.1);color:var(--rd);border:1px solid rgba(239,68,68,.2)}
.tabs{display:flex;gap:4px;background:var(--bg2);border:1px solid var(--bd);border-radius:var(--r);padding:4px;margin-bottom:24px;overflow-x:auto}
.tab{flex:1;padding:11px 16px;border-radius:10px;font-size:.82rem;font-weight:600;color:var(--mt);white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:.25s}
.tab:hover{color:var(--tx);background:rgba(255,255,255,.03)}
.tab.active{background:linear-gradient(135deg,var(--pri),var(--pd));color:#fff;box-shadow:0 2px 14px var(--gw)}
.fg{margin-bottom:16px}
.fg label{display:block;font-size:.78rem;color:var(--mt);margin-bottom:7px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}
.ii{position:relative}
.ii i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--dm);font-size:.82rem}
.ii input,.ii select{padding-left:40px}
.code-block{background:var(--bg);border:1px solid var(--bd);border-radius:12px;padding:20px;font-family:'Fira Code','Cascadia Code',monospace;font-size:.76rem;overflow-x:auto;color:var(--pl);white-space:pre-wrap;line-height:1.6;position:relative}
.code-block::before{content:'JSON';position:absolute;top:8px;right:10px;font-size:.55rem;color:var(--dm);letter-spacing:1px;font-weight:700;font-family:var(--f)}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:.82rem}
th{text-align:left;padding:12px 14px;color:var(--mt);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.7px;background:var(--bg2);border-bottom:1px solid var(--bd)}
th:first-child{border-radius:10px 0 0 0}th:last-child{border-radius:0 10px 0 0}
td{padding:11px 14px;border-bottom:1px solid var(--bd)}
tr:hover td{background:rgba(59,130,246,.03)}
.empty{text-align:center;padding:48px;color:var(--dm)}.empty i{font-size:2.2rem;margin-bottom:12px;display:block;opacity:.5}
.logo-img{height:28px;width:auto;display:block}
.ph{margin-bottom:28px;padding:22px 26px;background:linear-gradient(135deg,rgba(59,130,246,.05),rgba(96,165,250,.02));border:1px solid var(--bd);border-radius:var(--r2);position:relative;overflow:hidden}
.ph::before{content:'';position:absolute;top:-50%;right:-15%;width:220px;height:220px;background:radial-gradient(circle,rgba(59,130,246,.08),transparent 70%);pointer-events:none}
.ph h2{font-size:1.35rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;display:flex;align-items:center;gap:10px;position:relative}
.ph h2 i{color:var(--pri);font-size:1.05rem;width:34px;height:34px;background:rgba(59,130,246,.1);border-radius:10px;display:inline-flex;align-items:center;justify-content:center}
.ph p{color:var(--mt);font-size:.82rem;margin-top:6px;position:relative}
.ph .ph-line{width:44px;height:3px;background:linear-gradient(90deg,var(--pri),var(--pl));border-radius:2px;margin-top:10px}
@keyframes logoGlow{0%,100%{filter:drop-shadow(0 0 4px rgba(59,130,246,.35))}50%{filter:drop-shadow(0 0 10px rgba(59,130,246,.6))}}
.logo-img{animation:logoGlow 3s ease-in-out infinite}
.logo-container{position:relative;display:inline-block}
.logo-container::after{content:'';position:absolute;top:15%;left:22%;width:2px;height:2px;background:rgba(59,130,246,.85);border-radius:50%;animation:dustParticle 2s ease-out infinite;animation-delay:.3s;pointer-events:none}
.logo-container::before{content:'';position:absolute;top:35%;right:18%;width:1.5px;height:1.5px;background:rgba(96,165,250,.75);border-radius:50%;animation:dustParticle 2.5s ease-out infinite;animation-delay:1.2s;pointer-events:none}
@keyframes dustParticle{0%{opacity:0;transform:translateY(0) translateX(0)}25%{opacity:.7}100%{opacity:0;transform:translateY(-14px) translateX(8px)}}
.glass{background:rgba(255,255,255,.02);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.05)}

/* ===== v4: menu lateral mais vivo + docs ===== */
.sb-i{white-space:nowrap;font-size:.75rem;letter-spacing:.4px;gap:11px;padding:11px 14px}
.sb-i span{overflow:hidden;text-overflow:ellipsis}
.sb-i:hover{color:#fff;transform:translateX(4px);background:rgba(59,130,246,.06)}
.sb-i:hover i{opacity:1;transform:scale(1.12)}
.sb-i.active{color:#fff;background:linear-gradient(90deg,rgba(59,130,246,.22),rgba(59,130,246,.04) 78%);box-shadow:inset 0 0 0 1px rgba(59,130,246,.22),0 6px 18px -8px rgba(59,130,246,.5)}
.sb-i.active::before{height:64%;width:3.5px;box-shadow:0 0 14px 1px var(--pri)}
.sb-i.active i{color:#fff;filter:drop-shadow(0 0 8px rgba(59,130,246,.85));transform:scale(1.14)}
.sb-i::after{background:linear-gradient(90deg,rgba(59,130,246,.16),transparent 72%)}
.sb-c{font-size:.56rem;letter-spacing:2.4px;padding:22px 14px 8px;color:#5b6478}
.sb-c::after{width:22px;height:2px;opacity:.55;background:linear-gradient(90deg,var(--pri),transparent)}
.sb-n .sb-i{animation:sbIn .4s cubic-bezier(.2,.8,.3,1) both}
.sb-n .sb-i:nth-child(1){animation-delay:.02s}.sb-n .sb-i:nth-child(2){animation-delay:.05s}
.sb-n .sb-i:nth-child(3){animation-delay:.08s}.sb-n .sb-i:nth-child(4){animation-delay:.11s}
.sb-n .sb-i:nth-child(5){animation-delay:.14s}.sb-n .sb-i:nth-child(n+6){animation-delay:.17s}
@keyframes sbIn{from{opacity:0;transform:translateX(-12px)}to{opacity:1;transform:translateX(0)}}
.sb-i i{transition:transform .28s cubic-bezier(.2,1.4,.4,1),opacity .28s,color .28s,filter .28s}

/* botao copiar dentro de code-block */
.code-wrap{position:relative}
.doc-copy{position:absolute;top:8px;right:10px;z-index:2;background:rgba(59,130,246,.12);border:1px solid rgba(59,130,246,.32);color:#9dc1ff;font-size:.62rem;font-weight:700;letter-spacing:.6px;padding:5px 10px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.18s;font-family:var(--f);text-transform:uppercase}
.doc-copy:hover{background:rgba(59,130,246,.24);color:#fff;transform:translateY(-1px)}
.doc-copy.done{background:rgba(16,185,129,.18);border-color:rgba(16,185,129,.4);color:#6ee7b7}
.code-wrap .code-block::before{display:none}
.doc-dl{width:100%;margin-top:6px;display:flex;align-items:center;justify-content:center;gap:10px;padding:15px;border-radius:14px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;font-size:.82rem;color:#fff;cursor:pointer;border:1px solid rgba(59,130,246,.35);background:linear-gradient(135deg,rgba(59,130,246,.9),rgba(96,165,250,.75));box-shadow:0 10px 30px -10px rgba(59,130,246,.7);transition:.2s}
.doc-dl:hover{transform:translateY(-2px);box-shadow:0 16px 40px -12px rgba(59,130,246,.85)}
.doc-dl i{font-size:.95rem}

/* ===== v9: notificacoes no canto superior direito ===== */
.ffs-toasts{position:fixed;top:16px;right:16px;z-index:99999;display:flex;flex-direction:column;gap:10px;pointer-events:none;max-width:calc(100vw - 32px)}
.ffs-toast{position:relative;pointer-events:auto;display:flex;align-items:flex-start;gap:11px;min-width:280px;max-width:380px;padding:13px 40px 13px 14px;border-radius:12px;background:rgba(14,16,24,.97);border:1px solid rgba(255,255,255,.08);box-shadow:0 18px 40px -14px rgba(0,0,0,.9);backdrop-filter:blur(18px);overflow:hidden;animation:ffsToastIn .32s cubic-bezier(.2,1.1,.35,1) both}
.ffs-toast.out{animation:ffsToastOut .26s ease forwards}
@keyframes ffsToastIn{from{opacity:0;transform:translateX(38px) scale(.96)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes ffsToastOut{to{opacity:0;transform:translateX(38px) scale(.96)}}
.ffs-toast-ic{font-size:1rem;margin-top:1px;flex-shrink:0}
.ffs-toast-msg{font-size:.82rem;line-height:1.5;color:#e8ecf5;word-break:break-word}
.ffs-toast-x{position:absolute;top:9px;right:9px;width:23px;height:23px;border:0;border-radius:7px;background:rgba(255,255,255,.05);color:#8b93a7;cursor:pointer;font-size:.7rem;display:flex;align-items:center;justify-content:center;transition:.18s;padding:0}
.ffs-toast-x:hover{background:rgba(255,255,255,.14);color:#fff}
.ffs-toast-bar{position:absolute;left:0;bottom:0;height:2.5px;width:100%;transform-origin:left;animation:ffsToastBar 6s linear forwards}
@keyframes ffsToastBar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.ffs-toast.success{border-color:rgba(16,185,129,.34)}
.ffs-toast.success .ffs-toast-ic{color:#10b981}
.ffs-toast.success .ffs-toast-bar{background:linear-gradient(90deg,#10b981,rgba(16,185,129,.25))}
.ffs-toast.error{border-color:rgba(239,68,68,.34)}
.ffs-toast.error .ffs-toast-ic{color:#ef4444}
.ffs-toast.error .ffs-toast-bar{background:linear-gradient(90deg,#ef4444,rgba(239,68,68,.25))}
.ffs-toast.warn{border-color:rgba(245,166,35,.34)}
.ffs-toast.warn .ffs-toast-ic{color:#f5a623}
.ffs-toast.warn .ffs-toast-bar{background:linear-gradient(90deg,#f5a623,rgba(245,166,35,.25))}
.ffs-toast.info{border-color:rgba(59,130,246,.34)}
.ffs-toast.info .ffs-toast-ic{color:#3b82f6}
.ffs-toast.info .ffs-toast-bar{background:linear-gradient(90deg,#3b82f6,rgba(59,130,246,.25))}
@media(max-width:520px){.ffs-toasts{top:10px;right:10px;left:10px;max-width:none}.ffs-toast{min-width:0;max-width:none;width:100%}}

/* ===== v9: seletor de idiomas mais rico ===== */
.lang-pop{padding:8px!important;min-width:246px!important;border-radius:14px!important;box-shadow:0 20px 50px -12px rgba(0,0,0,.85)!important;backdrop-filter:blur(20px)}
.lang-pop.open{animation:langIn .24s cubic-bezier(.2,1.1,.35,1) both!important}
@keyframes langIn{from{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.lang-head{font-size:.6rem;text-transform:uppercase;letter-spacing:1.4px;color:#5b6478;font-weight:800;padding:7px 11px 9px;display:flex;align-items:center;gap:7px}
.lang-head i{font-size:.65rem;color:#3b82f6}
.lang-item{position:relative;padding:10px 12px!important;border-radius:10px!important;transition:.16s!important}
.lang-item:not(.dis):hover{background:rgba(59,130,246,.1);color:#fff;transform:translateX(2px)}
.lang-item.active::after{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;margin-left:auto;font-size:.68rem;color:#3b82f6}
.lang-item.dis{opacity:.45!important}
.lang-item .soon{margin-left:auto;font-size:.56rem;text-transform:uppercase;letter-spacing:.7px;font-weight:800;padding:3px 7px;border-radius:999px;background:rgba(245,166,35,.14);color:#f5a623;border:1px solid rgba(245,166,35,.26)}
.lang-foot{border-top:1px solid rgba(255,255,255,.06);margin-top:6px;padding:9px 11px 5px;font-size:.66rem;color:#5b6478;line-height:1.5}

/* ===== v15: rodape das documentacoes ===== */
.doc-foot{margin-top:26px;padding:24px;border-radius:16px;background:linear-gradient(140deg,rgba(59,130,246,.08),rgba(59,130,246,.01));border:1px solid rgba(59,130,246,.2)}
.doc-foot-h{font-size:.72rem;text-transform:uppercase;letter-spacing:1.4px;font-weight:800;color:#3b82f6;display:flex;align-items:center;gap:8px;margin-bottom:7px}
.doc-foot-p{font-size:.78rem;color:#8b93a7;line-height:1.55;margin-bottom:16px}
.doc-foot-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.doc-fb{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:13px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);color:#c9d1e0;cursor:pointer;transition:.2s;font-family:inherit;text-align:left}
.doc-fb i{font-size:1.05rem;color:#3b82f6;flex-shrink:0;transition:.2s}
.doc-fb span{display:flex;flex-direction:column;gap:2px;min-width:0}
.doc-fb strong{font-size:.79rem;color:#e8ecf5;font-weight:700}
.doc-fb small{font-size:.68rem;color:#5b6478;line-height:1.4}
.doc-fb:hover{border-color:rgba(59,130,246,.42);background:rgba(59,130,246,.09);transform:translateY(-2px)}
.doc-fb:hover i{transform:scale(1.14)}
.doc-fb.primary{background:linear-gradient(135deg,rgba(59,130,246,.9),rgba(96,165,250,.72));border-color:rgba(59,130,246,.5);box-shadow:0 12px 30px -12px rgba(59,130,246,.75)}
.doc-fb.primary i,.doc-fb.primary strong{color:#fff}
.doc-fb.primary small{color:rgba(255,255,255,.8)}
.doc-fb.done{background:rgba(16,185,129,.14);border-color:rgba(16,185,129,.36)}
.doc-fb.done i{color:#6ee7b7}
@media(max-width:820px){.doc-foot-btns{grid-template-columns:1fr}}
