
:root {
  --dark:    #1A1615;
  --surface: #211E1D;
  --card:    #292523;
  --card2:   #231F1E;
  --border:  rgba(255,255,255,.07);
  --border2: rgba(255,255,255,.12);
  --magenta: #A0256A;
  --magenta2:#8A1A5A;
  --green:   #1DB866;
  --green2:  #17A058;
  --amber:   #D4945A;
  --cream:   #F0E8E0;
  --text:    #E2D6CE;
  --muted:   #8A7E78;
  --serif:   'Playfair Display', serif;
  --sans:    'DM Sans', sans-serif;
  --mono:    'DM Mono', monospace;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--dark);color:var(--text);font-family:var(--sans);overflow-x:hidden;line-height:1.6;max-width:100vw}
::selection{background:var(--magenta);color:#fff}
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:var(--dark)}
::-webkit-scrollbar-thumb{background:var(--magenta);border-radius:2px}

body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
  opacity:.4;
}
#canvas-bg{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.2}

/* ── Nav ── */
nav{
  position:fixed;top:0;left:0;right:0;z-index:200;
  padding:0 40px;height:60px;
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(26,22,21,.95);backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
}
.nav-left{display:flex;align-items:center;gap:16px}
.nav-logo-img img{height:36px}
.nav-divider{width:1px;height:20px;background:var(--border2)}
.nav-doc-label{
  font-family:var(--mono);font-size:11px;color:var(--muted);
  letter-spacing:.1em;text-transform:uppercase;
}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{color:var(--muted);font-size:13px;font-weight:500;text-decoration:none;transition:.2s}
.nav-links a:hover{color:var(--cream)}
.btn-nav{
  background:var(--magenta);color:#fff;
  font-family:var(--sans);font-weight:600;font-size:12px;
  border:none;cursor:pointer;padding:7px 18px;border-radius:100px;transition:.2s;text-decoration:none;
}
.btn-nav:hover{background:var(--magenta2)}

/* ── Layout ── */
.doc-layout{
  display:grid;
  grid-template-columns:260px 1fr;
  min-height:100vh;
  padding-top:60px;
  position:relative;z-index:1;
}
@media(max-width:900px){.doc-layout{grid-template-columns:1fr}}

/* ── Sidebar ── */
.sidebar{
  position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto;
  border-right:1px solid var(--border);padding:32px 0;
  scrollbar-width:none;
}
.sidebar::-webkit-scrollbar{display:none}
@media(max-width:900px){.sidebar{display:none}}

.sb-section{margin-bottom:28px;padding:0 20px}
.sb-section-label{
  font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);margin-bottom:10px;padding-left:12px;
}
.sb-link{
  display:flex;align-items:center;gap:10px;
  padding:7px 12px;border-radius:8px;text-decoration:none;
  font-size:13px;color:var(--muted);font-weight:500;
  transition:.15s;margin-bottom:2px;
}
.sb-link:hover{background:rgba(255,255,255,.04);color:var(--text)}
.sb-link.active{background:rgba(160,37,106,.12);color:var(--cream)}
.sb-link.active .sb-num{background:var(--magenta);color:#fff}
.sb-link.done .sb-num{background:rgba(29,184,102,.15);color:var(--green)}
.sb-num{
  width:20px;height:20px;border-radius:50%;flex-shrink:0;
  background:rgba(255,255,255,.06);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:9px;color:var(--muted);transition:.15s;
}
.sb-check{
  width:20px;height:20px;border-radius:50%;flex-shrink:0;
  background:rgba(29,184,102,.12);border:1px solid rgba(29,184,102,.3);
  display:flex;align-items:center;justify-content:center;
  font-size:9px;color:var(--green);
}
.sb-divider{height:1px;background:var(--border);margin:8px 20px 16px}
.sb-tag{
  margin:0 20px 16px;padding:10px 14px;
  background:rgba(29,184,102,.06);border:1px solid rgba(29,184,102,.15);
  border-radius:10px;font-size:11px;color:var(--muted);line-height:1.6;
}
.sb-tag strong{color:var(--green);display:block;margin-bottom:3px}

/* ── Main content ── */
.doc-main{
  padding:56px 64px 120px;max-width:860px;
}
@media(max-width:640px){.doc-main{padding:32px 24px 80px}}

/* Page header */
.doc-header{margin-bottom:56px}
.doc-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(160,37,106,.12);border:1px solid rgba(160,37,106,.25);
  border-radius:100px;padding:5px 14px;
  font-size:11px;font-weight:600;color:var(--magenta);
  letter-spacing:.08em;text-transform:uppercase;margin-bottom:18px;
}
.doc-badge .dot{width:5px;height:5px;background:var(--magenta);border-radius:50%;animation:pulse 1.5s ease infinite}
.doc-title{
  font-family:var(--serif);
  font-size:clamp(36px,4vw,56px);
  font-weight:900;line-height:1.05;letter-spacing:-2px;
  color:var(--cream);margin-bottom:16px;
}
.doc-intro{font-size:16px;color:var(--muted);line-height:1.75;max-width:600px;margin-bottom:28px}
.doc-intro strong{color:var(--text)}

/* Timeline / progress bar */
.progress-bar{
  display:flex;align-items:center;gap:0;margin-bottom:56px;
  background:var(--card);border:1px solid var(--border);border-radius:100px;
  padding:10px 20px;overflow-x:auto;scrollbar-width:none;
}
.progress-bar::-webkit-scrollbar{display:none}
.pb-step{
  display:flex;align-items:center;gap:8px;flex-shrink:0;
  font-size:12px;font-weight:500;color:var(--muted);
}
.pb-num{
  width:22px;height:22px;border-radius:50%;
  background:rgba(255,255,255,.06);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:9px;color:var(--muted);flex-shrink:0;
}
.pb-step.s1 .pb-num{background:var(--magenta);border-color:var(--magenta);color:#fff}
.pb-step.s1{color:var(--cream)}
.pb-line{width:28px;height:1px;background:var(--border);flex-shrink:0;margin:0 4px}

/* Step sections */
.step-section{
  margin-bottom:72px;
  scroll-margin-top:80px;
}
.step-eyebrow{
  display:flex;align-items:center;gap:12px;margin-bottom:16px;
}
.step-badge{
  display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;border-radius:10px;flex-shrink:0;
  font-family:var(--mono);font-size:11px;font-weight:500;
}
.sb-mg{background:rgba(160,37,106,.15);border:1px solid rgba(160,37,106,.3);color:var(--magenta)}
.sb-gr{background:rgba(29,184,102,.12);border:1px solid rgba(29,184,102,.25);color:var(--green)}
.sb-am{background:rgba(212,148,90,.12);border:1px solid rgba(212,148,90,.25);color:var(--amber)}
.sb-bl{background:rgba(100,140,255,.12);border:1px solid rgba(100,140,255,.25);color:#6B8FFF}

.step-label{
  font-family:var(--mono);font-size:10px;color:var(--muted);
  letter-spacing:.12em;text-transform:uppercase;
}
.required-badge{
  margin-left:auto;
  font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:3px 10px;border-radius:100px;
}
.req{background:rgba(160,37,106,.12);border:1px solid rgba(160,37,106,.25);color:var(--magenta)}
.opt{background:rgba(212,148,90,.1);border:1px solid rgba(212,148,90,.2);color:var(--amber)}

.step-title{
  font-family:var(--serif);font-size:28px;font-weight:700;
  color:var(--cream);letter-spacing:-.8px;margin-bottom:12px;
}
.step-desc{font-size:14px;color:var(--muted);line-height:1.8;margin-bottom:20px}
.step-desc strong{color:var(--text)}

/* Info box */
.info-box{
  border-radius:12px;padding:16px 20px;margin:16px 0;
  font-size:13px;line-height:1.75;
}
.ib-green{background:rgba(29,184,102,.06);border:1px solid rgba(29,184,102,.18)}
.ib-green strong{color:var(--green)}
.ib-magenta{background:rgba(160,37,106,.06);border:1px solid rgba(160,37,106,.18)}
.ib-magenta strong{color:var(--magenta)}
.ib-amber{background:rgba(212,148,90,.06);border:1px solid rgba(212,148,90,.18)}
.ib-amber strong{color:var(--amber)}
.ib-icon{font-size:16px;margin-right:8px}
.info-box p{color:var(--muted)}
.info-box a{color:var(--green)}

/* Code block */
.code-block{
  background:#0F0D0C;
  border:1px solid rgba(160,37,106,.2);
  border-radius:14px;overflow:hidden;margin:16px 0;
}
.code-header{
  background:#161211;padding:10px 16px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.code-filename{
  font-family:var(--mono);font-size:11px;color:var(--muted);
  display:flex;align-items:center;gap:8px;
}
.code-lang{
  font-family:var(--mono);font-size:9px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;
  padding:2px 8px;border-radius:4px;
}
.lang-txt{background:rgba(212,148,90,.12);color:var(--amber)}
.lang-html{background:rgba(160,37,106,.12);color:var(--magenta)}
.lang-js{background:rgba(29,184,102,.1);color:var(--green)}

.copy-btn{
  display:flex;align-items:center;gap:6px;
  background:rgba(255,255,255,.06);border:1px solid var(--border);
  border-radius:6px;padding:4px 10px;
  font-family:var(--mono);font-size:10px;color:var(--muted);cursor:pointer;
  transition:.15s;
}
.copy-btn:hover{background:rgba(255,255,255,.1);color:var(--text)}
.copy-btn.copied{background:rgba(29,184,102,.12);border-color:rgba(29,184,102,.3);color:var(--green)}

.code-body{
  padding:20px 22px;
  font-family:var(--mono);font-size:12.5px;line-height:1.9;
  overflow-x:auto;
}
.code-body::-webkit-scrollbar{height:3px}
.code-body::-webkit-scrollbar-thumb{background:rgba(160,37,106,.4);border-radius:2px}

/* syntax highlight helpers */
.t-c{color:#5A4E4A}    /* comment */
.t-k{color:#A0256A}    /* keyword / tag */
.t-a{color:#1DB866}    /* attr / string */
.t-v{color:#D4945A}    /* value */
.t-p{color:#8A9FD4}    /* property */
.t-w{color:#E2D6CE}    /* plain */
.t-s{color:#C8B8B0}    /* symbols */
.t-h{color:#F0E8E0}    /* highlight */

/* Sub steps */
.substeps{
  counter-reset:substep;
  display:flex;flex-direction:column;gap:12px;margin:20px 0;
}
.substep{
  display:flex;gap:16px;align-items:flex-start;
  background:var(--card);border:1px solid var(--border);
  border-radius:12px;padding:16px 18px;
  transition:.2s;
}
.substep:hover{border-color:rgba(255,255,255,.12)}
.substep-num{
  counter-increment:substep;
  width:24px;height:24px;border-radius:50%;flex-shrink:0;
  background:rgba(160,37,106,.15);border:1px solid rgba(160,37,106,.3);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:10px;color:var(--magenta);font-weight:600;
}
.substep-body{}
.substep-title{font-size:14px;font-weight:600;color:var(--cream);margin-bottom:4px}
.substep-desc{font-size:13px;color:var(--muted);line-height:1.7}
.substep-desc a{color:var(--green)}
.substep-desc strong{color:var(--text)}

/* Check list */
.check-list{display:flex;flex-direction:column;gap:8px;margin:16px 0}
.check-item{
  display:flex;align-items:flex-start;gap:12px;
  font-size:13px;color:var(--muted);line-height:1.65;
}
.check-item .ck{
  width:18px;height:18px;border-radius:5px;flex-shrink:0;margin-top:1px;
  background:rgba(29,184,102,.12);border:1px solid rgba(29,184,102,.25);
  display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--green);
}
.check-item strong{color:var(--text)}

/* Step divider */
.step-divider{
  height:1px;
  background:linear-gradient(90deg,rgba(160,37,106,.2),transparent);
  margin:56px 0;
}

/* Tip card */
.tip-card{
  display:flex;gap:14px;align-items:flex-start;
  background:rgba(100,140,255,.04);border:1px solid rgba(100,140,255,.15);
  border-radius:12px;padding:16px 18px;margin:16px 0;
}
.tip-icon{font-size:18px;flex-shrink:0;margin-top:1px}
.tip-body{font-size:13px;color:var(--muted);line-height:1.7}
.tip-body strong{color:#6B8FFF}

/* Final card */
.final-card{
  background:linear-gradient(135deg,rgba(160,37,106,.12),rgba(29,184,102,.06));
  border:1px solid rgba(160,37,106,.2);border-radius:20px;
  padding:36px;margin-top:56px;text-align:center;
}
.final-card h3{
  font-family:var(--serif);font-size:28px;font-weight:700;
  color:var(--cream);letter-spacing:-.8px;margin-bottom:10px;
}
.final-card p{font-size:14px;color:var(--muted);line-height:1.7;max-width:460px;margin:0 auto 24px}
.final-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.btn-primary{
  background:var(--magenta);color:#fff;
  font-family:var(--sans);font-weight:600;font-size:14px;
  padding:12px 28px;border:none;border-radius:100px;
  cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:7px;transition:.2s;
}
.btn-primary:hover{background:var(--magenta2);transform:translateY(-1px);box-shadow:0 8px 24px rgba(160,37,106,.3)}
.btn-ghost{
  background:transparent;color:var(--text);
  border:1px solid var(--border2);font-family:var(--sans);font-weight:500;font-size:14px;
  padding:12px 24px;border-radius:100px;cursor:pointer;text-decoration:none;transition:.2s;
}
.btn-ghost:hover{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.04)}

/* Footer */
footer{
  position:relative;z-index:1;
  padding:28px 40px;border-top:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;
}
.footer-logo img{height:26px}
.footer-copy{font-size:11px;color:var(--muted)}
.footer-links{display:flex;gap:20px}
.footer-links a{font-size:11px;color:var(--muted);text-decoration:none;transition:.2s}
.footer-links a:hover{color:var(--green)}

@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.5)}}

@media(max-width:640px){
  nav{padding:0 16px}
  .nav-doc-label,.nav-links{display:none}
  .doc-main{padding:24px 16px 72px}

  /* Botão Meu Painel visível no mobile */
  nav::after{
    content:'Meu Painel';
    background:var(--magenta);color:#fff;
    font-family:var(--sans);font-weight:600;font-size:11px;
    padding:6px 14px;border-radius:100px;cursor:pointer;white-space:nowrap;
  }

  /* Progress bar: wrap em vez de scroll */
  .progress-bar{
    border-radius:14px;flex-wrap:wrap;gap:6px;justify-content:center;padding:12px 16px;
  }
  .pb-line{display:none}
  .pb-step{font-size:11px}

  /* Eyebrow: empilha se necessário */
  .step-eyebrow{flex-wrap:wrap;gap:8px}
  .required-badge{margin-left:0}

  /* Code header: trunca o nome do arquivo */
  .code-header{gap:8px}
  .code-filename{overflow:hidden;max-width:55%;white-space:nowrap;text-overflow:ellipsis}
  .code-filename span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  /* Code body: fonte menor no mobile */
  .code-body{font-size:11px;padding:14px 14px;-webkit-overflow-scrolling:touch}

  /* Código inline nos parágrafos: quebra linha */
  code{word-break:break-all}

  /* Substep: reduz gap */
  .substep{gap:12px;padding:14px}

  /* Final card: padding menor */
  .final-card{padding:24px 20px}
  .final-card h3{font-size:22px}

  /* Footer: centraliza */
  footer{padding:20px 16px;flex-direction:column;align-items:flex-start;gap:10px}

  /* Título principal: menos espaçamento */
  .doc-title{letter-spacing:-1px}
  .doc-header{margin-bottom:36px}
}

/* Segurança contra overflow horizontal em qualquer tela */
@media(max-width:900px){
  .doc-main{max-width:100%;overflow-x:hidden}
  .code-block{max-width:100%}
  .info-box p{word-break:break-word}
  .substep-desc{word-break:break-word}
}
