/* ==========================================================================
   SharkPay · documentação para desenvolvedores
   Depende apenas dos tokens de sharkpay-site.css (:root). Prefixo dx-.
   ========================================================================== */
.dx{--dx-side:272px;--dx-toc:210px;--dx-code-bg:#120B26;--dx-code-fg:#E9E4FA;--dx-code-line:#2A1F47;
  --dx-t-str:#9BE3B5;--dx-t-num:#FFB86B;--dx-t-kw:#C7A2FF;--dx-t-com:#8C84A8;--dx-t-var:#8FC8FF;--dx-t-fn:#F7A8C8;--dx-t-key:#B7C5FF}
.dx-top{background:var(--ink);color:#fff;padding:2.2rem 0 1.6rem;border-bottom:1px solid var(--ink-3)}
.dx-top .ss-wrap{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem}
.dx-top h1{color:#fff;font-size:clamp(1.6rem,3vw,2.2rem);margin:0}
.dx-top p{color:#C9C2E3;margin:.35rem 0 0;max-width:60ch}
.dx-ver{display:inline-flex;align-items:center;gap:.4rem;font:600 .75rem/1 var(--mono);color:#E9DDFF;background:var(--ink-3);border:1px solid #3a2d63;border-radius:999px;padding:.4rem .7rem}
.dx-search-btn{display:inline-flex;align-items:center;gap:.6rem;min-height:44px;min-width:min(100%,320px);padding:0 .9rem;border-radius:var(--r-md);border:1px solid #3a2d63;background:var(--ink-2);color:#C9C2E3;font:500 .9rem var(--font);cursor:pointer}
.dx-search-btn:hover{border-color:var(--v500);color:#fff}
.dx-search-btn kbd{margin-left:auto;font:600 .7rem var(--mono);background:var(--ink-3);border:1px solid #3a2d63;border-radius:4px;padding:.1rem .4rem;color:#C9C2E3}

.dx-scrim{display:none}
.dx-grid{display:grid;grid-template-columns:var(--dx-side) minmax(0,1fr);gap:0 clamp(1.25rem,3vw,3rem);align-items:start;padding-top:1.5rem;padding-bottom:4rem}
.dx-side{position:sticky;top:76px;max-height:calc(100vh - 92px);overflow:auto;padding:.5rem .25rem 2rem 0;font-size:.9rem}
.dx-side h2{font:700 .7rem/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin:1.25rem 0 .5rem;padding:0 .6rem}
.dx-side h2:first-child{margin-top:0}
.dx-side ul{list-style:none;margin:0;padding:0}
.dx-side a{display:block;padding:.38rem .6rem;border-radius:var(--r-sm);color:var(--muted);font-weight:500;border-left:2px solid transparent}
.dx-side a:hover{background:var(--v50);color:var(--v700)}
.dx-side a[aria-current="page"]{background:var(--v50);color:var(--v700);font-weight:650;border-left-color:var(--v500)}
.dx-side-toggle{display:none}

.dx-main{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) var(--dx-toc);gap:0 2.5rem;align-items:start}
.dx-content{min-width:0;max-width:780px}
.dx-content>*+*{margin-top:1rem}
.dx-content h1{font-size:clamp(1.9rem,3.4vw,2.6rem);margin-bottom:.4rem;letter-spacing:-.03em}
.dx-content .dx-lead{font-size:1.1rem;color:var(--muted);line-height:1.6;max-width:62ch}
.dx-content h2{font-size:1.6rem;margin-top:2.6rem;padding-top:.4rem;scroll-margin-top:84px;letter-spacing:-.025em}
.dx-content h3{font-size:1.15rem;margin-top:1.8rem;scroll-margin-top:84px;letter-spacing:-.015em}
.dx-content h2 .dx-anchor,.dx-content h3 .dx-anchor{margin-left:.4rem;opacity:0;font-weight:400;color:var(--faint);text-decoration:none}
.dx-content h2:hover .dx-anchor,.dx-content h3:hover .dx-anchor,.dx-anchor:focus{opacity:1}
.dx-content p,.dx-content li{color:var(--text);line-height:1.7}
.dx-content p{color:#3a3350}
.dx-content ul,.dx-content ol{padding-left:1.3rem;margin:.6rem 0}
.dx-content li+li{margin-top:.35rem}
.dx-content a{text-decoration:underline;text-decoration-color:rgba(116,0,217,.3);text-underline-offset:3px}
.dx-content a:hover{text-decoration-color:currentColor}
.dx-content code:not(pre code){font:500 .86em var(--mono);background:var(--v50);color:var(--v700);border-radius:5px;padding:.12em .4em;white-space:break-spaces;word-break:break-word}
.dx-content hr{border:0;border-top:1px solid var(--line);margin:2rem 0}

.dx-toc{position:sticky;top:76px;font-size:.84rem;max-height:calc(100vh - 92px);overflow:auto}
.dx-toc h2{font:700 .7rem/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin:0 0 .6rem}
.dx-toc ul{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}
.dx-toc a{display:block;padding:.28rem .8rem;color:var(--muted);margin-left:-1px;border-left:2px solid transparent}
.dx-toc a.is-sub{padding-left:1.6rem;font-size:.8rem}
.dx-toc a:hover{color:var(--v700)}
.dx-toc a.is-active{color:var(--v700);border-left-color:var(--v500);font-weight:600}

/* Código ---------------------------------------------------------------- */
.dx-code{border-radius:var(--r-md);background:var(--dx-code-bg);border:1px solid var(--dx-code-line);overflow:hidden;margin:1.1rem 0}
.dx-code__bar{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem .35rem .85rem;border-bottom:1px solid var(--dx-code-line);background:#17102c}
.dx-code__title{font:600 .74rem var(--mono);color:#B9B0D8;letter-spacing:.02em;margin-right:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dx-tabs{display:flex;gap:.15rem;overflow-x:auto}
.dx-tab{appearance:none;border:0;background:transparent;color:#B9B0D8;font:600 .78rem var(--font);padding:.45rem .7rem;border-radius:6px;cursor:pointer;white-space:nowrap}
.dx-tab:hover{color:#fff;background:#241947}
.dx-tab[aria-selected="true"]{color:#fff;background:#33265F}
.dx-copy{appearance:none;border:1px solid #3a2d63;background:transparent;color:#D9D2F0;font:600 .74rem var(--font);display:inline-flex;gap:.35rem;align-items:center;padding:.4rem .65rem;border-radius:6px;cursor:pointer;min-height:32px}
.dx-copy:hover{background:#241947;color:#fff}
.dx-code pre{margin:0;padding:1rem 1.1rem;overflow:auto;max-height:560px;color:var(--dx-code-fg);font:400 .83rem/1.65 var(--mono);tab-size:2}
.dx-code pre code{font:inherit;background:none;color:inherit;padding:0;white-space:pre}
.dx-panel[hidden]{display:none}
.t-str{color:var(--dx-t-str)}.t-num{color:var(--dx-t-num)}.t-kw{color:var(--dx-t-kw)}.t-com{color:var(--dx-t-com);font-style:italic}
.t-var{color:var(--dx-t-var)}.t-fn{color:var(--dx-t-fn)}.t-key{color:var(--dx-t-key)}

/* Avisos ---------------------------------------------------------------- */
.dx-call{display:grid;grid-template-columns:auto 1fr;gap:.2rem .8rem;border-radius:var(--r-md);padding:.9rem 1rem;border:1px solid var(--line);background:var(--surface);margin:1.2rem 0}
.dx-call i{font-size:1.15rem;line-height:1.5;grid-row:span 2}
.dx-call strong{display:block;color:var(--text)}
.dx-call div{color:#3a3350;line-height:1.6}
.dx-call div>*+*{margin-top:.5rem}
.dx-call--info{background:var(--sp-info-bg,#E8F0FD);border-color:var(--sp-info-line,#BCD0F5)}.dx-call--info i{color:#1B58C7}
.dx-call--warn{background:var(--sp-warning-bg,#FFF2DC);border-color:var(--sp-warning-line,#F5D59B)}.dx-call--warn i{color:#8F5200}
.dx-call--danger{background:var(--sp-danger-bg,#FDEBEE);border-color:var(--sp-danger-line,#F6C2CB)}.dx-call--danger i{color:#C2263D}
.dx-call--ok{background:var(--ok-bg);border-color:#B7E4D0}.dx-call--ok i{color:var(--ok)}
.dx-call--sec{background:#F3EEFF;border-color:#D9C6FF}.dx-call--sec i{color:var(--v600)}

/* Tabelas --------------------------------------------------------------- */
.dx-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);margin:1.1rem 0;background:#fff}
.dx-table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:520px}
.dx-table th{text-align:left;font:700 .72rem var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--faint);background:var(--bg);padding:.65rem .8rem;border-bottom:1px solid var(--line);white-space:nowrap}
.dx-table td{padding:.65rem .8rem;border-bottom:1px solid var(--line);vertical-align:top;color:#3a3350;line-height:1.5}
.dx-table tr:last-child td{border-bottom:0}
.dx-table td:first-child{font:600 .83rem var(--mono);color:var(--text);white-space:nowrap}
.dx-req{font:700 .68rem var(--mono);color:#C2263D;background:#FDEBEE;border-radius:4px;padding:.1rem .35rem;margin-left:.4rem;letter-spacing:.03em}
.dx-opt{font:600 .68rem var(--mono);color:var(--faint);margin-left:.4rem}
.dx-type{font:500 .8rem var(--mono);color:var(--v700)}

/* Endpoints ------------------------------------------------------------- */
.dx-op{border:1px solid var(--line);border-radius:var(--r-md);padding:1.2rem 1.25rem;margin:1.6rem 0;background:#fff;scroll-margin-top:84px}
.dx-op>*+*{margin-top:.9rem}
.dx-op__head{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .8rem}
.dx-op__head h3{margin:0!important;font-size:1.05rem}
.dx-op__path{font:600 .9rem var(--mono);color:var(--text);word-break:break-all}
.dx-m{font:700 .72rem var(--mono);letter-spacing:.05em;border-radius:5px;padding:.28rem .5rem;color:#fff}
.dx-m--GET{background:#0A7550}.dx-m--POST{background:#7400D9}.dx-m--PUT{background:#B45F00}.dx-m--DELETE{background:#C2263D}.dx-m--PATCH{background:#1B58C7}
.dx-badge{font:600 .7rem var(--mono);border-radius:999px;padding:.2rem .55rem;background:var(--v50);color:var(--v700);border:1px solid var(--v100)}
.dx-badge--warn{background:#FFF2DC;color:#8F5200;border-color:#F5D59B}
.dx-status{font:700 .78rem var(--mono)}
.dx-status--2{color:#0A7550}.dx-status--4{color:#B45F00}.dx-status--5{color:#C2263D}
.dx-sub{font:700 .7rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:1.2rem 0 .3rem!important}

/* Cartões da home ------------------------------------------------------- */
.dx-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin:1.4rem 0}
.dx-card{display:block;border:1px solid var(--line);border-radius:var(--r-md);padding:1.1rem 1.15rem;background:#fff;text-decoration:none!important;color:var(--text)!important;transition:border-color .15s,transform .15s}
.dx-card:hover{border-color:var(--v500);transform:translateY(-2px)}
.dx-card i{color:var(--v600);font-size:1.3rem}
.dx-card strong{display:block;margin:.4rem 0 .15rem;font-size:1.02rem}
.dx-card span{color:var(--muted);font-size:.9rem;line-height:1.5}
.dx-steps{counter-reset:s;list-style:none;padding:0!important}
.dx-steps>li{counter-increment:s;position:relative;padding:0 0 1.2rem 2.6rem;margin:0!important}
.dx-steps>li::before{content:counter(s);position:absolute;left:0;top:0;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--v600);color:#fff;font:700 .85rem/1.9rem var(--mono);text-align:center}
.dx-steps>li::after{content:"";position:absolute;left:.93rem;top:2rem;bottom:.1rem;width:1px;background:var(--line)}
.dx-steps>li:last-child::after{display:none}
.dx-pager{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem!important;padding-top:1.4rem;border-top:1px solid var(--line)}
.dx-pager a{display:block;border:1px solid var(--line);border-radius:var(--r-md);padding:.8rem 1rem;min-width:200px;text-decoration:none!important;color:var(--text)}
.dx-pager a:hover{border-color:var(--v500)}
.dx-pager small{display:block;color:var(--faint);font:600 .7rem var(--mono);letter-spacing:.06em;text-transform:uppercase}
.dx-pager a:last-child{text-align:right;margin-left:auto}

/* Busca ----------------------------------------------------------------- */
.dx-modal{position:fixed;inset:0;background:rgba(16,10,33,.6);backdrop-filter:blur(3px);z-index:90;display:none;align-items:flex-start;justify-content:center;padding:8vh 1rem 1rem}
.dx-modal.is-open{display:flex}
.dx-modal__box{width:min(680px,100%);background:#fff;border-radius:14px;box-shadow:0 30px 80px -20px rgba(0,0,0,.5);overflow:hidden;display:flex;flex-direction:column;max-height:76vh}
.dx-modal input{border:0;border-bottom:1px solid var(--line);padding:1.05rem 1.2rem;font:500 1.05rem var(--font);outline:none;width:100%}
.dx-results{overflow:auto;list-style:none;margin:0;padding:.4rem}
.dx-results a{display:block;padding:.65rem .8rem;border-radius:8px;color:var(--text);text-decoration:none}
.dx-results a:hover,.dx-results a.is-sel{background:var(--v50)}
.dx-results b{display:block;font-weight:650}
.dx-results small{display:block;color:var(--muted);line-height:1.45;margin-top:.1rem}
.dx-results em{font-style:normal;background:#FFE9B5;border-radius:2px}
.dx-results .dx-where{font:600 .68rem var(--mono);color:var(--v600);letter-spacing:.05em;text-transform:uppercase}
.dx-empty{padding:1.4rem;color:var(--muted);text-align:center}

@media (max-width:1180px){.dx-main{grid-template-columns:minmax(0,1fr)}.dx-toc{display:none}}
@media (max-width:900px){
  .dx-grid{grid-template-columns:minmax(0,1fr)}
  .dx-side{position:fixed;inset:0 auto 0 0;width:min(86vw,320px);max-height:none;background:#fff;z-index:80;padding:1rem;transform:translateX(-102%);transition:transform .2s;box-shadow:var(--sp-shadow-pop,0 12px 32px rgba(0,0,0,.2))}
  .dx-side.is-open{transform:none}
  .dx-side-toggle{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:1rem;min-height:42px;padding:0 .9rem;border-radius:var(--r-md);border:1px solid var(--line-2);background:#fff;font:600 .9rem var(--font);cursor:pointer}
  .dx-scrim{position:fixed;inset:0;background:rgba(16,10,33,.5);z-index:70;display:none}
  .dx-scrim.is-open{display:block}
  .dx-pager a{min-width:0;flex:1}
}
@media (prefers-reduced-motion:reduce){.dx-card,.dx-side{transition:none}}
@media print{.dx-side,.dx-toc,.dx-top,.dx-pager,.dx-copy,.dx-tabs{display:none!important}.dx-grid{display:block}}

/* referência: índice, ações, detalhes */
.dx-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}
.dx-btn{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .85rem;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;color:var(--text);font-weight:600;font-size:.88rem;text-decoration:none}
.dx-btn:hover{border-color:var(--v100);background:var(--v50);color:var(--v700)}
.dx-index{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;margin:1.2rem 0}
.dx-index>div{border:1px solid var(--line);border-radius:var(--r-md);padding:.8rem .9rem;background:#fff}
.dx-index a{display:flex;gap:.45rem;align-items:center;font:500 .78rem var(--mono);color:var(--text);padding:.22rem 0;text-decoration:none;word-break:break-all}
.dx-index a:hover{color:var(--v700)}
.dx-op h4{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin:1rem 0 .4rem}
.dx-op__sum{margin:.2rem 0}
.dx-fields summary{cursor:pointer;font-weight:600;font-size:.88rem;color:var(--v700)}
.dx-steps>li,.dx-call>div,.dx-content li{min-width:0}
.dx-code,.dx-call,.dx-table-wrap{max-width:100%}
.dx-content .ss-mono,.dx-call{overflow-wrap:anywhere}
