/* ============ CAPA ============ */
.capa{justify-content:center;background:linear-gradient(135deg,#0A1830 0%,#0F2242 42%,#12404A 100%)}
.capa-onda{position:absolute;left:0;right:0;bottom:0;height:34vh;z-index:0;opacity:.34;
  -webkit-mask-image:linear-gradient(to top,#000 25%,transparent 96%);
  mask-image:linear-gradient(to top,#000 25%,transparent 96%)}
#onda{width:100%;height:100%;display:block}
.capa-logo{height:clamp(26px,3.1vw,44px);width:auto;max-width:min(330px,40vw);
  object-fit:contain;object-position:left center;margin-bottom:clamp(22px,3.6vh,40px)}
.capa h1{color:#fff;max-width:19ch}
.capa h1 em{font-style:normal;color:var(--teal-300)}
.capa-sub{margin-top:20px;font-size:clamp(15px,1.4vw,21px);color:rgba(255,255,255,.7);max-width:56ch;line-height:1.5}
.capa-meta{margin-top:clamp(28px,4.5vh,50px);display:flex;gap:clamp(20px,3vw,52px);flex-wrap:wrap;
  padding-top:24px;border-top:1px solid rgba(255,255,255,.16)}
.capa-meta div b{display:block;font-family:var(--disp);font-size:clamp(15px,1.35vw,20px);
  font-weight:700;color:#fff;letter-spacing:-.01em}
.capa-meta div span{font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--teal-300);font-weight:650}
.selo{position:absolute;top:clamp(26px,4vh,48px);right:clamp(30px,5vw,80px);
  padding:8px 16px;border:1px solid rgba(92,189,187,.42);border-radius:99px;
  font-family:var(--disp);font-size:11.5px;font-weight:700;letter-spacing:.13em;
  color:var(--teal-300);text-transform:uppercase;background:rgba(92,189,187,.09);z-index:2}

/* ============ SEÇÃO ============ */
.secao{justify-content:center;background:linear-gradient(120deg,#0A1830,#12404A)}
.secao .idx{font-family:var(--disp);font-size:clamp(56px,9vw,140px);font-weight:800;
  color:rgba(92,189,187,.17);line-height:.85;letter-spacing:-.05em}
.secao h1{color:#fff;margin-top:-.12em;max-width:17ch}
.secao p{margin-top:18px;max-width:54ch;font-size:clamp(14px,1.25vw,19px)}

/* ============ GANTT ============ */
.gantt-topo{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;
  flex-wrap:wrap;margin-bottom:12px;flex-shrink:0}
#gantt-filtros,#ent-filtros{display:flex;gap:6px;flex-wrap:wrap}
#gantt-filtros button,#ent-filtros button{padding:5.5px 12px;border-radius:99px;border:1px solid var(--line);
  background:#fff;font-family:var(--disp);font-size:11.5px;font-weight:650;color:var(--ink-2);
  cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:6px}
#gantt-filtros button:hover,#ent-filtros button:hover{border-color:var(--teal-300);color:var(--teal-900)}
#gantt-filtros button.on,#ent-filtros button.on{background:var(--navy);color:#fff;border-color:var(--navy)}
#gantt-filtros button i,#ent-filtros button i{width:8px;height:8px;border-radius:50%;display:block}
#gantt-filtros button.cri-btn.on{background:var(--amber);border-color:var(--amber)}

#gantt{background:#fff;border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;flex:1;min-height:0}
.g-rot-w{width:clamp(190px,26%,340px);flex-shrink:0}
#gantt-regua{display:flex;position:relative;border-bottom:1px solid var(--line);
  background:var(--paper);padding-left:clamp(190px,26%,340px);flex-shrink:0}
.gm{flex:1;padding:9px 4px;text-align:center;border-left:1px solid var(--line)}
.gm b{display:block;font-family:var(--disp);font-size:11.5px;font-weight:800;color:var(--navy)}
.gm span{font-size:9.5px;color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase}
.gantt-marcos{position:absolute;left:clamp(190px,26%,340px);right:0;bottom:-1px;height:0}
.mk{position:absolute;transform:translateX(-50%);bottom:-7px;width:14px;height:14px;
  background:var(--navy);border:2px solid #fff;border-radius:3px;rotate:45deg;cursor:help;z-index:3;
  box-shadow:0 1px 4px rgba(15,34,66,.28)}
.mk.gate{background:var(--teal);width:16px;height:16px;bottom:-8px}
.mk.risco{background:var(--amber)}
.mk s{position:absolute;inset:0;rotate:-45deg;display:grid;place-items:center;
  font-size:7.4px;font-weight:800;color:#fff;text-decoration:none;font-family:var(--disp)}
#gantt-corpo{overflow-y:auto;flex:1;min-height:0}
#gantt-corpo::-webkit-scrollbar{width:8px}
#gantt-corpo::-webkit-scrollbar-thumb{background:rgba(15,34,66,.16);border-radius:9px}

.gantt-fase{display:flex;align-items:center;background:var(--paper);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.gf-rot{width:clamp(190px,26%,340px);flex-shrink:0;padding:7px 12px;font-family:var(--disp);
  font-size:12px;font-weight:700;color:var(--navy);display:flex;align-items:baseline;gap:7px}
.gf-rot b{font-size:11px}
.gf-rot em{font-style:normal;font-size:9.5px;color:var(--ink-3);font-weight:600;margin-left:auto;
  white-space:nowrap}
.gf-tri{flex:1;position:relative;height:26px}
.gf-faixa{position:absolute;top:7px;height:12px;border-radius:4px;border:1px dashed}

.gantt-fase.prio{background:linear-gradient(90deg,#EAF5EE,#F6F8F9);border-top:2px solid #3D8A5F}
.tag-prio{font-style:normal;font-family:var(--disp);font-size:8.6px;font-weight:800;
  background:#3D8A5F;color:#fff;padding:2px 6px;border-radius:99px;letter-spacing:.05em;flex-shrink:0}
.gantt-linha.pr .gl-rot{color:var(--navy);font-weight:550}
.gantt-linha.pr .gl-barra{box-shadow:0 1px 3px rgba(61,138,95,.4),0 0 0 1.5px rgba(61,138,95,.28)}
.d-cri.prio{background:rgba(61,138,95,.24);color:#9BD9B4}
.gantt-linha{display:flex;align-items:center;transition:.12s}
.gantt-linha:hover{background:var(--teal-050)}
.gl-rot{width:clamp(190px,26%,340px);flex-shrink:0;padding:5px 12px 5px 22px;font-size:11.6px;
  color:var(--ink-2);line-height:1.3;display:flex;gap:6px;align-items:baseline}
.gl-id{font-family:var(--disp);font-weight:700;font-size:10px;color:var(--ink-3);flex-shrink:0}
.gantt-linha.cri .gl-rot{color:var(--navy);font-weight:550}
.gl-tri{flex:1;position:relative;height:24px;
  background:repeating-linear-gradient(90deg,transparent 0,transparent calc(12.5% - 1px),var(--line) calc(12.5% - 1px),var(--line) 12.5%)}
.gl-barra{position:absolute;top:5px;height:14px;border-radius:7px;cursor:pointer;
  transition:.16s;box-shadow:0 1px 3px rgba(15,34,66,.16)}
.gl-barra:hover{transform:scaleY(1.28);filter:brightness(1.1);box-shadow:0 3px 10px rgba(15,34,66,.26)}
.gl-barra u{position:absolute;inset:0;border-radius:7px;border:2px solid var(--amber);
  text-decoration:none;box-shadow:0 0 0 2px rgba(201,138,22,.22)}
.tag-ent{font-style:normal;font-family:var(--disp);font-size:8.6px;font-weight:800;
  background:var(--teal-100);color:var(--teal-900);padding:1.5px 5px;border-radius:4px;
  letter-spacing:.04em;flex-shrink:0;white-space:nowrap}

/* dica / tooltip */
#dica{position:fixed;z-index:200;width:315px;background:var(--navy-900);color:#fff;
  border-radius:12px;padding:13px 15px;box-shadow:0 18px 44px rgba(10,24,48,.42);
  opacity:0;pointer-events:none;transition:opacity .15s;border:1px solid rgba(92,189,187,.26)}
#dica.on{opacity:1}
#dica b{font-family:var(--disp);font-size:13px;display:block;margin-bottom:9px;line-height:1.3}
.d-lin{display:flex;gap:9px;font-size:11.5px;color:rgba(255,255,255,.82);padding:2.5px 0;align-items:center}
.d-lin span{color:var(--teal-300);min-width:74px;font-weight:600;font-size:10.5px;
  text-transform:uppercase;letter-spacing:.05em}
.d-lin i{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}
.d-cri{margin-top:9px;padding:6px 9px;background:rgba(201,138,22,.2);border-radius:7px;
  font-size:11px;color:#F0C97A;font-weight:600;line-height:1.35}
.d-cri.risco{background:rgba(180,68,60,.22);color:#F0A9A2}

.legenda{display:flex;gap:16px;flex-wrap:wrap;margin-top:11px;flex-shrink:0}
.legenda div{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-3);font-weight:550}
.legenda i{width:13px;height:9px;border-radius:4px;display:block}
.legenda i.d{rotate:45deg;width:11px;height:11px;border-radius:2px}

/* ============ CURVA S ============ */
#curva svg{width:100%;height:auto;max-height:46vh}
.cs-linha{stroke-dasharray:2400;stroke-dashoffset:2400}
.slide.on .cs-linha{animation:tra 1.7s cubic-bezier(.4,0,.2,1) .2s forwards}
@keyframes tra{to{stroke-dashoffset:0}}
.cs-area{opacity:0}.slide.on .cs-area{animation:fd .9s ease 1.1s forwards}
.cs-pt{opacity:0}.slide.on .cs-pt{animation:fd .5s ease forwards;animation-delay:calc(.45s + var(--d))}
@keyframes fd{to{opacity:1}}

/* ============ MATRIZ DE RISCOS ============ */
#matriz{display:grid;grid-template-columns:78px repeat(3,1fr);gap:6px;align-items:stretch}
.mx-eixoY{grid-column:1;grid-row:1/4;writing-mode:vertical-rl;rotate:180deg;text-align:center;
  font-family:var(--disp);font-size:10.5px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3);display:grid;place-items:center}
.mx-rot{display:none}
#matriz{grid-template-columns:26px 68px repeat(3,1fr)}
.mx-rot{display:grid;place-items:center;font-family:var(--disp);font-size:10.5px;font-weight:700;
  color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.mx-cel{min-height:74px;border-radius:11px;padding:8px;display:flex;flex-wrap:wrap;gap:5px;
  align-content:flex-start;border:1px solid}
.mx-cel.baixo{background:var(--green-100);border-color:#BFDECC}
.mx-cel.medio{background:var(--amber-100);border-color:#EDD9A6}
.mx-cel.alto{background:var(--red-100);border-color:#EFC4C0}
.mx-r{width:34px;height:26px;border-radius:7px;border:1px solid rgba(15,34,66,.16);background:#fff;
  font-family:var(--disp);font-size:11px;font-weight:800;color:var(--navy);cursor:pointer;transition:.14s}
.mx-r:hover{transform:translateY(-2px);box-shadow:0 4px 10px rgba(15,34,66,.16)}
.mx-r.sel{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 4px 12px rgba(15,34,66,.26)}
.mx-rotX{text-align:center;font-family:var(--disp);font-size:10.5px;font-weight:700;
  color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;padding-top:5px}
.mx-eixoX{display:none}
#risco-det{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;
  box-shadow:var(--shadow);min-height:200px}
.rd-top{display:flex;gap:7px;margin-bottom:11px;flex-wrap:wrap}
#risco-det h3{margin-bottom:9px;line-height:1.28}
.rd-dono{margin-top:13px;padding-top:11px;border-top:1px solid var(--line);
  font-size:11.5px;color:var(--ink-3)}
.rd-dono b{color:var(--teal-900)}

/* ============ RACI ============ */
.ctr{text-align:center}
.raci{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:7px;
  font-family:var(--disp);font-size:11px;font-weight:800;font-style:normal;cursor:help}
.r-R{background:var(--teal);color:#fff}
.r-A{background:var(--navy);color:#fff}
.r-C{background:var(--teal-100);color:var(--teal-900)}
.r-I{background:var(--navy-100);color:var(--navy-500)}
.r-x{background:transparent;color:var(--ink-3);opacity:.42}
.raci-leg{display:flex;gap:15px;flex-wrap:wrap;margin-top:13px}
.raci-leg div{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--ink-2)}

/* ============ ENTREGÁVEIS ============ */
.ent-r{display:inline-grid;place-items:center;min-width:30px;height:24px;padding:0 6px;
  border-radius:6px;background:var(--navy);color:#fff;font-family:var(--disp);
  font-size:10.5px;font-weight:800;letter-spacing:.02em}

/* ============ EAP ============ */
#eap{display:grid;grid-template-columns:repeat(auto-fill,minmax(272px,1fr));gap:11px;align-content:start}
.eap-f{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--shadow);transition:.2s;align-self:start}
.eap-f:hover{box-shadow:var(--shadow-lg)}
.eap-cab{padding:12px 14px;border-left:4px solid;cursor:pointer;display:flex;
  justify-content:space-between;align-items:flex-start;gap:10px}
.eap-cab b{font-family:var(--disp);font-size:10.5px;font-weight:800;letter-spacing:.08em}
.eap-cab h3{font-size:14px;margin:2px 0 3px;line-height:1.25}
.eap-cab em{font-style:normal;font-size:10.5px;color:var(--ink-3);font-weight:550}
.eap-cab i{font-style:normal;font-size:17px;color:var(--ink-3);transition:.22s;line-height:1}
.eap-f.ab .eap-cab i{rotate:45deg;color:var(--teal)}
.eap-obj{padding:0 14px 12px;font-size:11.8px;color:var(--ink-2);line-height:1.45;font-style:italic}
.eap-lista{max-height:0;overflow:hidden;transition:max-height .34s ease;list-style:none;
  border-top:1px solid transparent}
.eap-f.ab .eap-lista{max-height:520px;border-top-color:var(--line)}
.eap-lista li{padding:7px 14px;font-size:11.6px;color:var(--ink-2);border-bottom:1px solid var(--line);
  display:flex;gap:8px;align-items:baseline;line-height:1.32}
.eap-lista li:last-child{border-bottom:0}
.eap-lista li span{font-family:var(--disp);font-size:9.6px;font-weight:700;color:var(--teal);flex-shrink:0}

/* ============ MARCOS ============ */
#marcos{display:grid;gap:0}
.mc{display:flex;gap:16px}
.mc-eixo{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:26px}
.mc-eixo i{font-style:normal;font-size:15px;color:var(--navy-300);line-height:1;margin-top:3px}
.mc.gate .mc-eixo i{color:var(--teal);font-size:18px}
.mc-eixo s{flex:1;width:2px;background:var(--line);text-decoration:none;margin:4px 0;min-height:12px}
.mc-corpo{padding-bottom:15px;flex:1}
.mc-top{display:flex;gap:7px;align-items:center;margin-bottom:4px;flex-wrap:wrap}
.mc-top b{font-family:var(--disp);font-size:12px;font-weight:800;color:var(--navy)}
.mc-corpo h3{font-size:14.5px;margin-bottom:3px}
.mc-corpo p{font-size:12px}

/* ============ KPIs ============ */
#kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}
@media(max-width:900px){#kpis{grid-template-columns:1fr}}
.kpi-g{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--shadow)}
.kpi-cab{padding:9px 14px;color:#fff;font-family:var(--disp);font-size:12px;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase}
.kpi-i{padding:10px 14px;border-bottom:1px solid var(--line)}
.kpi-i:last-child{border-bottom:0}
.kpi-i b{display:block;font-size:12.6px;color:var(--navy);font-weight:650;line-height:1.3}
.kpi-i em{display:block;font-style:normal;font-size:10.8px;color:var(--ink-3);margin:2px 0 6px}

/* ============ PEDIDOS ============ */
#pedidos{display:grid;gap:8px}
.pd{display:flex;align-items:center;gap:12px;padding:11px 15px;background:#fff;
  border:1px solid var(--line);border-radius:11px;cursor:pointer;transition:.16s;box-shadow:var(--shadow)}
.pd:hover{border-color:var(--teal-300);transform:translateX(3px)}
.pd input{display:none}
.pd-bx{width:21px;height:21px;border-radius:6px;border:2px solid var(--navy-300);flex-shrink:0;
  display:grid;place-items:center;transition:.16s}
.pd-bx::after{content:'✓';color:#fff;font-size:12px;font-weight:800;opacity:0;transition:.16s}
.pd input:checked~.pd-bx{background:var(--teal);border-color:var(--teal)}
.pd input:checked~.pd-bx::after{opacity:1}
.pd div{flex:1}
.pd b{display:block;font-size:13px;color:var(--navy);font-weight:600;line-height:1.3}
.pd em{font-style:normal;font-size:11px;color:var(--ink-3)}
.pd input:checked~div b{text-decoration:line-through;opacity:.5}

/* ============ MÉTODO ============ */
.met{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:17px;
  box-shadow:var(--shadow);transition:.2s;position:relative;overflow:hidden}
.met:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.met::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--teal)}
.met .ic{font-family:var(--disp);font-size:26px;font-weight:800;color:var(--teal-100);line-height:1}
.met h3{margin:6px 0 6px;font-size:15.5px}
.met p{font-size:12.2px;line-height:1.5}

/* ============ EIXOS ============ */
.eixo-c{border-radius:var(--r);padding:18px;color:#fff;position:relative;overflow:hidden;
  min-height:186px;display:flex;flex-direction:column}
.eixo-c .ec-n{font-family:var(--disp);font-size:11px;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;opacity:.78}
.eixo-c h3{color:#fff;font-size:clamp(16px,1.5vw,21px);margin:7px 0 10px;line-height:1.2}
.eixo-c ul{list-style:none;margin-top:auto}
.eixo-c li{font-size:11.8px;color:rgba(255,255,255,.86);padding:3px 0 3px 15px;position:relative;line-height:1.35}
.eixo-c li::before{content:'';position:absolute;left:0;top:10px;width:6px;height:6px;
  border-radius:50%;background:rgba(255,255,255,.55)}

/* ============ LIMITES ============ */
.lim-c{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--shadow)}
.lim-cab{padding:11px 15px;font-family:var(--disp);font-size:12px;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;color:#fff}
.lim-c ul{list-style:none;padding:6px 0}
.lim-c li{padding:7px 15px 7px 32px;font-size:12.2px;color:var(--ink-2);position:relative;line-height:1.42}
.lim-c li::before{position:absolute;left:14px;top:7px;font-size:12px;font-weight:800}
.lim-p li::before{content:'✓';color:var(--green)}
.lim-r li::before{content:'▪';color:var(--amber)}
.lim-f li::before{content:'✕';color:var(--red)}

/* ============ CONTATO ============ */
.contato{background:linear-gradient(125deg,#0A4A49,#12807F 55%,#0E6564)}
.ct-lin{display:flex;align-items:center;gap:13px;padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.16);font-size:clamp(13px,1.15vw,17px);color:#fff}
.ct-lin b{font-family:var(--disp);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.6);min-width:96px;font-weight:700}

/* ============ TAP ============ */
.tap{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);
  overflow:hidden;display:flex;flex-direction:column}
.tap-cab{padding:9px 15px;background:var(--navy);color:#fff;font-family:var(--disp);
  font-size:10.8px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.tap-b{padding:14px 15px;font-size:12.6px;color:var(--ink-2);line-height:1.55;flex:1}
.tap-b b{color:var(--navy)}

/* utilitários */
.mt{margin-top:clamp(11px,1.5vh,20px)}.mt2{margin-top:clamp(18px,2.6vh,32px)}
.nota{font-size:11.5px;color:var(--ink-3);line-height:1.5;font-style:italic}
.dark .nota{color:rgba(255,255,255,.5)}
.destaque{background:var(--teal-050);border-left:3px solid var(--teal);border-radius:0 10px 10px 0;
  padding:13px 16px}
.dark .destaque{background:rgba(92,189,187,.1);border-left-color:var(--teal-300)}

/* entregável sem pacote dedicado no Gantt */
.tag-via{display:block;font-style:normal;font-size:10.5px;color:var(--ink-3);
  margin-top:3px;font-weight:500}
.tag-via::before{content:'↳ ';color:var(--teal)}

/* logo do slide de contato — align-self evita o stretch do flex column */
.ct-logo{height:clamp(30px,3.6vw,52px);width:auto;max-width:min(380px,46vw);
  align-self:flex-start;object-fit:contain;object-position:left center;margin-bottom:26px}
