/* ═══════════════════════════════════════════════
   Quinta da Baroneza – Gantt v1.2
   verde #004518 | laranja #BA4700 | creme #F2EBE2 | dourado #FFBF24
═══════════════════════════════════════════════ */
:root{
  --qbg-verde:#004518;--qbg-verde-mid:#1a6b3a;--qbg-verde-light:#edf4ef;
  --qbg-laranja:#BA4700;--qbg-creme:#F2EBE2;--qbg-dourado:#FFBF24;
  --qbg-cinza:#6b7280;--qbg-borda:#d6cfc6;--qbg-radius:8px;
  --qbg-shadow:0 2px 10px rgba(0,69,24,.07);
  --qbg-nome-w:200px;
}
.qbg-wrap{font-family:inherit;max-width:100%;margin:0 auto;}

/* ── Resumo ── */
.qbg-resumo{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:28px;}
.qbg-resumo-item{background:var(--qbg-creme);border:1px solid var(--qbg-borda);border-radius:var(--qbg-radius);padding:16px 20px;display:flex;flex-direction:column;gap:4px;min-width:140px;}
.qbg-resumo-num{font-size:2rem;font-weight:700;color:var(--qbg-verde);line-height:1;}
.qbg-resumo-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--qbg-cinza);}
.qbg-resumo-destaque{background:var(--qbg-verde);border-color:var(--qbg-verde);}
.qbg-resumo-destaque .qbg-resumo-label{color:rgba(255,255,255,.65);}
.qbg-resumo-obra{font-size:.92rem;font-weight:600;color:#fff;}
.qbg-resumo-data{font-size:.8rem;color:var(--qbg-dourado);font-weight:600;}

/* ── Gantt container ── */
.qbg-gantt{background:#fff;border:1px solid var(--qbg-borda);border-radius:var(--qbg-radius);overflow:hidden;box-shadow:var(--qbg-shadow);}

/* ── Eixo de tempo ── */
.qbg-eixo{position:relative;height:28px;background:var(--qbg-verde);}
.qbg-eixo-labels{position:relative;height:100%;margin-left:var(--qbg-nome-w);}
.qbg-eixo-label{position:absolute;font-size:.6rem;color:rgba(255,255,255,.7);text-transform:uppercase;letter-spacing:.04em;top:50%;transform:translateX(-50%) translateY(-50%);white-space:nowrap;pointer-events:none;}
.qbg-hoje{position:absolute;top:0;bottom:0;width:2px;background:var(--qbg-dourado);margin-left:var(--qbg-nome-w);pointer-events:none;z-index:2;}
.qbg-hoje-label{position:absolute;top:2px;left:4px;font-size:.58rem;color:var(--qbg-dourado);font-weight:700;text-transform:uppercase;white-space:nowrap;}

/* ── Linhas ── */
.qbg-linha{
  display:grid;
  grid-template-columns:var(--qbg-nome-w) 1fr;
  align-items:center;
  min-height:48px;
  border-bottom:1px solid var(--qbg-borda);
  cursor:pointer;
  transition:background .15s;
  user-select:none;
}
.qbg-linha:hover{background:var(--qbg-verde-light);}
.qbg-linha:last-child{border-bottom:none;}

/* nome */
.qbg-linha-nome{padding:8px 10px;display:flex;align-items:center;gap:5px;overflow:hidden;}
.qbg-chevron{
  font-size:.58rem;color:var(--qbg-cinza);flex-shrink:0;
  transition:transform .22s;
  display:inline-block;
}
.qbg-nome-texto{font-size:.82rem;font-weight:600;color:var(--qbg-verde);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* subobras */
.qbg-subobras{background:#f9f8f6;border-top:1px solid var(--qbg-borda);}
.qbg-linha-sub .qbg-nome-texto{font-weight:400;color:#374151;font-size:.8rem;}
.qbg-sub-indent{color:#ccc;flex-shrink:0;font-size:.9rem;}
.qbg-linha-sub .qbg-barra-track{height:7px;}

/* badges */
.qbg-badge{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:99px;white-space:nowrap;flex-shrink:0;}
.qbg-badge-andamento{background:#dcfce7;color:#166534;}
.qbg-badge-concluida{background:var(--qbg-verde);color:#fff;}
.qbg-badge-pendente{background:#f3f4f6;color:var(--qbg-cinza);}

/* barra */
.qbg-barra-wrap{padding:5px 14px 5px 8px;}
.qbg-barra-track{position:relative;height:10px;background:#f3f4f6;border-radius:99px;overflow:hidden;}
.qbg-barra-range{position:absolute;top:0;height:100%;background:#e5e7eb;border-radius:99px;}
.qbg-barra-fill{position:absolute;top:0;height:100%;background:var(--qbg-verde);border-radius:99px;transition:width .75s cubic-bezier(.22,1,.36,1);z-index:1;}
.qbg-barra-datas{display:flex;justify-content:space-between;font-size:.62rem;color:var(--qbg-cinza);margin-top:3px;}
.qbg-perc-num{font-weight:700;color:var(--qbg-verde);}

/* ── Detalhe ──
   2 colunas quando tem espaço, 1 coluna no mobile.
   Subobra indenta para alinhar com a barra.           */
.qbg-detail{
  padding:16px 18px 20px;
  background:var(--qbg-creme);
  border-top:1px solid var(--qbg-borda);
  border-bottom:1px solid var(--qbg-borda);
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:16px 24px;
}
/* detalhe de subobra: indenta para alinhar com a barra da sub */
.qbg-detail-sub{
  margin-left:var(--qbg-nome-w);
  border-top:none;
}

/* blocos que precisam de largura total */
.qbg-detail-bloco.qbg-full{grid-column:1/-1;}

.qbg-detail-bloco{display:flex;flex-direction:column;gap:6px;}
.qbg-detail-label{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--qbg-cinza);}
.qbg-detail-bloco p{font-size:.875rem;color:#374151;margin:0;line-height:1.6;}
.qbg-impacto-bloco .qbg-detail-label{color:var(--qbg-laranja);}
.qbg-impacto-bloco p{color:#7a2e00;}
.qbg-saiba-mais{display:inline-block;margin-top:4px;font-size:.8rem;font-weight:600;color:var(--qbg-laranja);text-decoration:none;}
.qbg-saiba-mais:hover{text-decoration:underline;}

/* etapas */
.qbg-etapas-lista{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
.qbg-etapa-header{display:flex;justify-content:space-between;gap:8px;}
.qbg-etapa-nome{font-size:.8rem;color:#374151;}
.qbg-etapa-perc{font-size:.75rem;font-weight:700;color:var(--qbg-cinza);white-space:nowrap;}
.qbg-etapa-ok .qbg-etapa-nome,.qbg-etapa-ok .qbg-etapa-perc{color:var(--qbg-verde);}
.qbg-etapa-bar{height:4px;background:#e5e7eb;border-radius:99px;overflow:hidden;margin-top:2px;}
.qbg-etapa-bar div{height:100%;background:var(--qbg-verde-mid);border-radius:99px;}

/* fotos — ocupa as 2 colunas */
.qbg-fotos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;}
.qbg-foto{margin:0;overflow:hidden;border-radius:6px;background:#e5e7eb;}
.qbg-foto a{display:block;overflow:hidden;}
.qbg-foto img{width:100%;height:88px;object-fit:cover;display:block;transition:transform .3s;}
.qbg-foto:hover img{transform:scale(1.05);}
.qbg-foto figcaption{font-size:.67rem;color:var(--qbg-cinza);padding:3px 6px;line-height:1.3;}

/* ── Secundárias ── */
.qbg-secundarias{margin-top:20px;border:1px solid var(--qbg-borda);border-radius:var(--qbg-radius);overflow:hidden;}
.qbg-secundarias summary{padding:12px 16px;font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--qbg-cinza);cursor:pointer;background:#f9f8f6;list-style:none;display:flex;align-items:center;gap:8px;}
.qbg-secundarias summary::before{content:'▶';font-size:.55rem;transition:transform .2s;}
.qbg-secundarias[open] summary::before{transform:rotate(90deg);}
.qbg-sec-intro{font-size:.78rem;color:var(--qbg-cinza);padding:10px 16px 0;margin:0;}
.qbg-sec-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;padding:10px 16px 16px;}
.qbg-sec-item{background:#fff;border:1px solid var(--qbg-borda);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:5px;}
.qbg-sec-header{display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.qbg-sec-nome{font-size:.82rem;font-weight:600;color:var(--qbg-verde);}
.qbg-sec-tipo{font-size:.6rem;color:var(--qbg-cinza);text-transform:uppercase;letter-spacing:.04em;margin-left:auto;}
.qbg-sec-agora{font-size:.78rem;color:#6b7280;margin:0;line-height:1.4;}
.qbg-sec-bar{margin:2px 0;}
.qbg-sec-bar div{background:var(--qbg-verde-mid);}
.qbg-sec-datas{font-size:.67rem;color:var(--qbg-cinza);}

/* animações */
.qbg-detail:not([hidden]),.qbg-subobras:not([hidden]){animation:qbg-in .18s ease;}
@keyframes qbg-in{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}

/* mobile */
@media(max-width:600px){
  :root{--qbg-nome-w:100px;}
  .qbg-detail{grid-template-columns:1fr;}
  .qbg-detail-sub{margin-left:0;}
  .qbg-barra-datas span:first-child,.qbg-barra-datas span:last-child{display:none;}
  .qbg-resumo-item{flex:1 1 120px;}
}
