/* ===========================================================
   DIÁRIO DE BORDO v2 · gamificação do Programa CCL 2.0 (27/09/2026, frontend-design)
   O passaporte como objeto: capa de couro vinho com dourado; toca, abre, mostra as páginas.
   Selos e carimbos com cara de carimbo de viagem (tinta gasta via máscara SVG estática).
   Usa a paleta e as fontes do portal (variáveis do :root). Só aparece pra aluna logada.
   Leve no celular: sem backdrop-filter, sem partículas, animação só no toque.
   =========================================================== */
#diario{display:none}
body.is-student #diario.db-pronto{display:block}
#diario{--papel:#f6efe2;--papel2:#ede2cd;--tinta-vinho:#6a2049;--tinta-rosa:#c93f74;--tinta-ouro:#a8773f;--tinta-ameixa:#7d3257;
  --ouro-1:#f6e2bf;--ouro-2:#d2a877;--ouro-3:#b8894f;--vazio:#dcc3cf}

.db-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:start}
.db-col{display:grid;gap:24px;min-width:0}
@media(max-width:900px){.db-grid{grid-template-columns:minmax(0,1fr)}}

.db-card{background:#fff;border:1px solid var(--linha);border-radius:var(--r);padding:24px 22px 22px;box-shadow:0 18px 40px -30px rgba(74,23,51,.45);min-width:0}
.db-card h3{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:1.6rem;color:var(--vinho);line-height:1.12;margin:6px 0 8px}
.db-card p{font-size:.95rem}
.db-mut{color:var(--suave);font-size:.86rem}
.db-sub{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:1.3rem;color:var(--vinho);margin:20px 0 2px}

/* ================= PALCO DO PASSAPORTE ================= */
.db-palco{display:flex;flex-direction:column;align-items:center;min-width:0}
.db-livro{position:relative;width:100%;display:flex;justify-content:center;perspective:1600px}

/* ---------- capa (vinho liso + hot stamping champanhe) ---------- */
.db-capa-wrap{position:relative;display:block;width:min(100%,318px);padding:34px 0 0;border:0;background:none;cursor:pointer;font:inherit;transform-origin:0 70%;transition:transform .25s ease}
div.db-capa-wrap{cursor:default}
.db-capa-bil{position:absolute;top:0;right:16px;width:62%;height:84px;background:linear-gradient(180deg,#fffaf2,#f7ecdd);border-radius:8px 8px 0 0;
  box-shadow:0 -4px 14px -8px rgba(74,23,51,.35);transform:rotate(4deg);transform-origin:100% 100%;padding:9px 12px;text-align:left;overflow:hidden}
.db-capa-bil b{display:block;font-family:"Cormorant Garamond",serif;font-weight:600;font-size:.98rem;color:var(--vinho);line-height:1}
.db-capa-bil span{display:block;margin-top:6px;padding-top:5px;border-top:1px dashed rgba(74,23,51,.3);font:500 .5rem "Outfit";letter-spacing:.18em;text-transform:uppercase;color:var(--suave)}
.db-capa{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;width:100%;aspect-ratio:5/7;padding:26px 22px 20px;color:var(--ouro-1);
  border-radius:10px 16px 16px 10px;
  background:
    radial-gradient(120% 60% at 20% -5%,rgba(255,255,255,.12),transparent 55%),
    radial-gradient(90% 60% at 95% 105%,rgba(0,0,0,.22),transparent 60%),
    repeating-linear-gradient(37deg,rgba(255,255,255,.014) 0 1px,transparent 1px 3px),
    linear-gradient(90deg,rgba(0,0,0,.22) 0,rgba(0,0,0,0) 12px),
    linear-gradient(165deg,#65204a,var(--vinho) 75%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),0 30px 50px -24px rgba(74,23,51,.75),0 12px 18px -12px rgba(74,23,51,.5)}
button.db-capa-wrap:hover{transform:rotateY(-8deg) translateY(-2px)}
button.db-capa-wrap:focus-visible{outline:3px solid var(--rosa-claro);outline-offset:6px;border-radius:14px}
.db-ouro{background:linear-gradient(120deg,#f8e6c6 0%,#d6ad78 30%,#f6e0b8 52%,#b78a50 78%,#ecd1a2 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.db-capa-pass{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:2.15rem;letter-spacing:.14em;line-height:1;padding-left:.14em;margin-top:4px}
.db-capa-script{font-family:"Sacramento",cursive;font-size:1.75rem;line-height:1;margin-top:2px}
.db-capa-rosa{width:54%;max-width:172px;margin:10px 0 6px;flex:none}
.db-capa-rosa svg,.db-capa-rota svg{display:block;width:100%;height:auto;overflow:visible}
.db-capa-prog{font:500 .54rem/1.5 "Outfit";letter-spacing:.24em;text-transform:uppercase;max-width:30ch;margin-bottom:8px}
.db-capa-lema{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;font-size:1.02rem;letter-spacing:.03em;line-height:1.2}
.db-capa-selo{position:absolute;top:-12px;right:-12px;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-size:1.1rem;color:var(--vinho);background:radial-gradient(circle at 35% 30%,#fbecd2,#dcb57f 70%,#b98b52);box-shadow:0 8px 16px -6px rgba(46,12,31,.6),inset 0 0 0 3px rgba(255,255,255,.35);animation:dbAcena 2.8s ease-in-out 1s 3}
@keyframes dbAcena{0%,100%{transform:rotate(0)}10%{transform:rotate(-14deg)}20%{transform:rotate(10deg)}30%{transform:rotate(0)}}
.db-dica-surpresa{color:var(--vinho);letter-spacing:.08em;text-align:center;font-size:.64rem;max-width:30ch;line-height:1.6}
.db-dica-surpresa::before,.db-dica-surpresa::after{display:none}
.db-capa-rota{width:100%;margin-top:auto}
.db-capa-nome{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:1.3rem;letter-spacing:.12em;text-transform:uppercase;line-height:1.1;margin-top:4px}
.db-capa-data{font:500 .62rem "Outfit";letter-spacing:.34em;margin-top:3px}
.db-capa-lacre{position:absolute;left:-8px;right:-8px;top:54%;background:linear-gradient(90deg,#e9cfa6,#f7e7cc 50%,#e2c393);color:var(--vinho);
  font:500 .62rem "Outfit";letter-spacing:.2em;text-transform:uppercase;padding:9px 10px;box-shadow:0 8px 16px -8px rgba(46,12,31,.7);transform:rotate(-4deg)}
.db-dica{margin-top:16px;font:500 .7rem "Outfit";letter-spacing:.24em;text-transform:uppercase;color:var(--rosa);display:flex;align-items:center;gap:10px}
.db-dica::before,.db-dica::after{content:"";width:22px;height:1px;background:var(--rosa-claro)}

/* animação de abrir / fechar (só transform e opacity) */
.db-capa-wrap.db-abrindo{animation:dbCapaAbre .5s cubic-bezier(.55,.05,.7,.35) forwards;pointer-events:none}
.db-capa-wrap.db-fechando{animation:dbCapaFecha .55s cubic-bezier(.2,.7,.3,1) both}
@keyframes dbCapaAbre{to{transform:rotateY(-88deg);opacity:.2}}
@keyframes dbCapaFecha{from{transform:rotateY(-88deg);opacity:.2}to{transform:none;opacity:1}}
.db-miolo.db-entrando{animation:dbMioloAbre .6s cubic-bezier(.2,.7,.3,1) both;transform-origin:0 50%}
@keyframes dbMioloAbre{from{transform:perspective(1600px) rotateY(24deg) scale(.94);opacity:0}to{transform:none;opacity:1}}

/* ---------- livro aberto ---------- */
.db-miolo{position:relative;width:100%;max-width:460px;padding:7px;border-radius:12px;
  background:linear-gradient(90deg,#3f1229,var(--vinho2) 20%,var(--vinho2) 80%,#3f1229);
  box-shadow:0 30px 50px -26px rgba(74,23,51,.8),0 10px 16px -10px rgba(74,23,51,.45)}
.db-folhas{display:grid;grid-template-columns:minmax(0,1fr);border-radius:6px;overflow:hidden}
.db-folha{position:relative;min-width:0;padding:18px 18px 14px;color:var(--texto);
  background:
    radial-gradient(circle at 50% 46%,rgba(168,119,63,.05) 0 30%,transparent 31%),
    repeating-radial-gradient(circle at 50% 118%,transparent 0 11px,rgba(168,119,63,.06) 11px 12px),
    repeating-linear-gradient(112deg,rgba(210,168,119,.07) 0 1px,transparent 1px 8px),
    linear-gradient(180deg,var(--papel),var(--papel2));
  display:flex;flex-direction:column}
.db-miolo .db-folha{display:none}
.db-miolo[data-pag="id"] .db-folha-id,.db-miolo[data-pag="mes"] .db-folha-mes,.db-miolo[data-pag="hist"] .db-folha-hist{display:flex}
.db-folha-topo{display:flex;justify-content:space-between;gap:8px;font:500 .56rem "Outfit";letter-spacing:.22em;text-transform:uppercase;color:var(--suave);
  padding-bottom:8px;border-bottom:1px solid rgba(210,168,119,.35);margin-bottom:12px}
.db-folha-pe{margin-top:auto;padding-top:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;font:400 .72rem "Outfit";color:var(--muted)}
.db-folha-pe .db-pn{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:.95rem;color:var(--suave)}
.db-virar{width:36px;height:36px;border-radius:50%;border:1px solid var(--linha);background:#fff;color:var(--vinho);font:400 1.1rem/1 "Outfit";cursor:pointer;display:grid;place-items:center}
.db-virar:disabled{opacity:.3;cursor:default}
.db-virar:not(:disabled):hover{border-color:var(--rosa);color:var(--rosa)}

/* página de identificação: foto, nome, embarque, status, meu destino, assinatura e carimbos da viagem */
.db-id-tit{text-align:center;position:relative}
.db-id-tit h4{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:2rem;letter-spacing:.12em;padding-left:.12em;color:var(--vinho);line-height:1}
.db-id-tit .db-id-sc{font-family:"Sacramento",cursive;font-size:1.65rem;color:var(--rosa);line-height:1.05;margin-top:2px}
.db-id-cab{display:flex;gap:14px;align-items:stretch;margin-top:14px}
.db-retrato{flex:none;width:92px;height:116px;border-radius:6px;border:1.5px dashed var(--rosa-claro);background:rgba(255,255,255,.6);color:var(--rosa);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;cursor:pointer;overflow:hidden;padding:8px;
  font:500 .62rem/1.3 "Outfit";letter-spacing:.08em;text-transform:uppercase}
.db-retrato svg{width:24px;height:24px}
.db-retrato.tem{border:3px solid #fff;padding:0;box-shadow:0 6px 14px -6px rgba(74,23,51,.45)}
.db-retrato img{width:100%;height:100%;object-fit:cover}
.db-retrato:hover{border-color:var(--rosa)}
.db-campos{display:grid;gap:8px;min-width:0;flex:1;align-content:start}
.db-campo{min-width:0}
.db-campo small{display:block;font:500 .54rem "Outfit";letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.db-campo span{display:block;font:500 .82rem/1.3 "Outfit";letter-spacing:.08em;text-transform:uppercase;color:var(--vinho);overflow-wrap:anywhere}
.db-campo.nome span{font-family:"Cormorant Garamond",serif;font-size:1.45rem;letter-spacing:.02em;text-transform:none;font-weight:600;line-height:1.1}
.db-status{display:inline-block!important;border:1.5px solid var(--vinho-claro);border-radius:3px;padding:2px 8px;margin-top:3px;color:var(--vinho-claro)!important;font-size:.72rem!important}
.db-destino{margin-top:14px;position:relative}
.db-destino-txt{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:1.3rem!important;line-height:1.25;color:var(--vinho);margin-top:2px}
.db-assina{margin-top:12px}
.db-assina-linha{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;min-height:52px;border-bottom:1px solid rgba(74,23,51,.3);padding-bottom:2px}
.db-assina-img{height:52px;width:auto;max-width:70%;display:block}
.db-convite-campo{display:block;width:100%;text-align:left;margin-top:4px;border:1px dashed var(--rosa-claro);background:rgba(255,255,255,.55);border-radius:8px;
  padding:10px 12px;font:400 .88rem "Outfit";color:var(--rosa);cursor:pointer}
.db-assina .db-convite-campo{border:0;background:none;padding:6px 0;margin:0}
.db-convite-campo:hover{border-color:var(--rosa);color:var(--vinho)}
.db-link{background:none;border:0;padding:4px 0;font:400 .74rem "Outfit";color:var(--suave);text-decoration:underline;text-underline-offset:3px;cursor:pointer;flex:none}
.db-especiais{margin-top:16px;padding-top:10px;border-top:1px solid rgba(210,168,119,.35)}
.db-especiais>small{display:block;font:500 .54rem "Outfit";letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.db-esp-g{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 14px;margin-top:10px}
.db-embarquei{display:block;width:150px;flex:none;transform:rotate(-7deg);color:var(--tinta-rosa)}
.db-embarquei svg{display:block;width:100%;height:auto;overflow:visible}
/* carimbo secreto: retangular, dupla borda, tinta dourada gasta (máscara CSS de pontinhos, estática) */
.db-secreto{position:relative;flex:none;transform:rotate(var(--g,6deg));color:var(--tinta-ouro)}
.db-sec-in{display:flex;flex-direction:column;align-items:center;text-align:center;width:112px;padding:8px 8px 7px;border:2px solid currentColor;border-radius:4px;outline:1px solid currentColor;outline-offset:-6px;
  -webkit-mask-image:radial-gradient(circle,rgba(0,0,0,.25) 0 .7px,#000 .9px);mask-image:radial-gradient(circle,rgba(0,0,0,.25) 0 .7px,#000 .9px);-webkit-mask-size:7px 6px;mask-size:7px 6px}
.db-sec-in i{font-style:normal;font-size:.9rem;line-height:1}
.db-sec-in b{font:600 .66rem/1.25 "Outfit";letter-spacing:.12em;text-transform:uppercase;margin-top:3px}
.db-sec-in em{font:500 .58rem "Outfit";font-style:normal;letter-spacing:.16em;margin-top:4px}
.db-sec-vazio{color:var(--vazio);transform:rotate(3deg)}
.db-sec-vazio .db-sec-in{border-style:dashed;outline-style:dashed;-webkit-mask-image:none;mask-image:none}
.db-sec-vazio .db-sec-in b{font-size:.7rem}
.db-sec-novo{position:absolute;z-index:1;top:-10px;right:-8px;background:var(--rosa);color:#fff;border-radius:999px;padding:2px 8px;font:600 .56rem "Outfit";letter-spacing:.14em;text-transform:uppercase;transform:rotate(calc(-1 * var(--g,6deg)))}
.db-revela{animation:dbRevela 1.1s .45s cubic-bezier(.3,1.4,.5,1) both}
.db-destaque::before{content:"";position:absolute;inset:-12px;border-radius:14px;background:radial-gradient(closest-side,rgba(240,220,194,.9),rgba(240,220,194,0));z-index:-1;opacity:.55}
.db-revela::before{animation:dbBrilho 2.4s .6s ease-out both}
@keyframes dbRevela{0%{transform:rotate(var(--g,6deg)) scale(2.2);opacity:0}55%{transform:rotate(var(--g,6deg)) scale(.9);opacity:1}100%{transform:rotate(var(--g,6deg)) scale(1)}}
@keyframes dbBrilho{0%{opacity:0}25%{opacity:1}100%{opacity:.55}}

/* página da parada */
.db-mes-cab small{font:500 .6rem "Outfit";letter-spacing:.24em;text-transform:uppercase;color:var(--rosa)}
.db-mes-cab h4{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:1.55rem;line-height:1.05;color:var(--vinho);margin:2px 0 3px}
.db-mes-cab p{font-size:.8rem;color:var(--suave)}
.db-mes-cab p b{font-weight:500;color:var(--vinho-claro)}
.db-semanas{margin-top:10px}
.db-sem{display:grid;grid-template-columns:50px repeat(4,minmax(0,1fr));gap:2px;align-items:center;padding:6px 0;border-top:1px dashed rgba(210,168,119,.45)}
.db-sem:first-child{border-top:0}
.db-sn{font:500 .58rem/1.25 "Outfit";letter-spacing:.14em;text-transform:uppercase;color:var(--suave)}
.db-sn b{display:block;font-family:"Cormorant Garamond",serif;font-weight:600;font-size:1.3rem;letter-spacing:0;color:var(--vinho);line-height:1}
.db-futura .db-sn{opacity:.6}

/* selos (4 formatos de carimbo) */
.db-selo{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}
.db-selo svg{width:44px;height:44px;display:block;fill:none;stroke:currentColor;overflow:visible}
.db-selo svg .f{fill:currentColor;stroke:none}
.db-selo em{font:500 .54rem "Outfit";font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.db-selo:not(.on){color:var(--vazio)}
.db-selo:not(.on) svg .c1{stroke-dasharray:3 3}
.db-selo:not(.on) svg .c2{opacity:0}
.db-selo:not(.on) svg .f{opacity:.45}
.db-selo.on em{color:var(--vinho)}
.db-k-aula.on{color:var(--tinta-vinho)}
.db-k-planner.on{color:var(--tinta-rosa)}
.db-k-desafio.on{color:var(--tinta-ouro)}
.db-k-apoio.on{color:var(--tinta-ameixa)}
.db-selo.on svg{opacity:.92}
.db-novo svg{animation:dbCarimba .55s cubic-bezier(.3,1.4,.5,1) both}
@keyframes dbCarimba{0%{transform:scale(1.9);opacity:0}60%{transform:scale(.92);opacity:1}100%{transform:scale(1)}}

/* carimbo do mês */
.db-carimbo-mes{display:flex;align-items:center;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(210,168,119,.35)}
.db-carimbo{flex:none;width:118px;height:118px;color:var(--vazio)}
.db-carimbo svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;overflow:visible}
.db-carimbo svg text{fill:currentColor;stroke:none}
.db-carimbo:not(.on) svg .c1{stroke-dasharray:4 4}
.db-carimbo.on{color:var(--tinta-vinho);transform:rotate(-9deg)}
.db-carimbo.on svg{opacity:.9}
.db-carimbo.db-novo svg{animation:dbCarimba .6s cubic-bezier(.3,1.4,.5,1) both}
.db-carimbo-txt{font-size:.84rem;line-height:1.45;color:var(--suave);min-width:0}
.db-carimbo-txt b{display:block;font-family:"Cormorant Garamond",serif;font-weight:600;font-size:1.15rem;color:var(--vinho);line-height:1.15;margin-bottom:2px}
.db-pontos{display:flex;gap:5px;margin-top:6px}
.db-pontos i{width:9px;height:9px;border-radius:50%;border:1px solid var(--rosa-claro)}
.db-pontos i.on{background:var(--rosa);border-color:var(--rosa)}
.db-aviso-fut{font-size:.8rem;color:var(--suave);background:rgba(254,245,249,.9);border:1px dashed var(--rosa-claro);border-radius:10px;padding:8px 10px;margin-top:8px}

/* índice de páginas (abas) */
.db-abas{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:14px;flex-wrap:wrap;max-width:100%}
.db-aba{height:36px;min-width:36px;padding:0 10px;border-radius:999px;border:1px solid var(--linha);background:#fff;color:var(--vinho);
  font:500 .72rem "Outfit";letter-spacing:.08em;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.db-aba:hover{border-color:var(--rosa)}
.db-aba[aria-selected="true"]{background:var(--vinho);color:var(--champanhe-l);border-color:var(--vinho)}
.db-aba.fut{color:var(--muted)}
.db-aba .ok{color:var(--champanhe)}
.db-palco[data-pag="id"] .db-aba-m[aria-selected="true"]{background:#fff;color:var(--vinho);border-color:var(--linha)}
.db-hist{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;margin-top:16px}
.db-hist .db-carimbo{width:150px;height:150px}
.db-corrente.on{color:var(--tinta-rosa);transform:rotate(-8deg)}
.db-hist p{font-size:.9rem;color:var(--suave);line-height:1.5;max-width:30ch}
.db-hist p b{display:block;font-family:"Cormorant Garamond",serif;font-weight:600;font-size:1.25rem;color:var(--vinho);margin-bottom:2px}
.db-hist-linhas{margin:18px 6px 0;display:grid;gap:22px}
.db-hist-linhas span{display:block;border-bottom:1px solid rgba(210,168,119,.4)}
.db-fechar{margin-top:10px;background:none;border:0;color:var(--suave);font:400 .8rem "Outfit";text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:6px}

/* desktop: o passaporte abre em duas páginas */
@media(min-width:901px){
  .db-miolo{max-width:760px}
  .db-folhas{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .db-miolo[data-pag] .db-folha-id,.db-miolo[data-pag="id"] .db-folha-mes{display:flex}
  .db-folha-id{box-shadow:inset -18px 0 22px -18px rgba(74,23,51,.35)}
  .db-folha-mes,.db-folha-hist{box-shadow:inset 18px 0 22px -18px rgba(74,23,51,.35)}
  .db-folha-id .db-folha-pe .db-virar{visibility:hidden}
  .db-aba-id{display:none}
  .db-palco[data-pag="id"] .db-aba-m[aria-selected="true"]{background:var(--vinho);color:var(--champanhe-l);border-color:var(--vinho)}
  .db-capa-wrap{width:340px}
}

/* convite (ainda sem Ponto de Partida) */
.db-convite{margin-top:18px;width:100%;max-width:460px;background:#fff;border:1px solid var(--linha);border-radius:var(--r);padding:20px;text-align:center;box-shadow:0 18px 40px -30px rgba(74,23,51,.45)}
.db-convite h3{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:1.5rem;color:var(--vinho);line-height:1.12}
.db-convite p{font-size:.92rem;color:var(--texto);margin-top:8px}
.db-convite .db-embarquei{margin:14px auto 12px;color:var(--vazio);transform:rotate(-5deg)}
.db-convite .btn{white-space:normal;justify-content:center}
.db-convite .db-mut{margin-top:12px}

/* ================= ESTA SEMANA · cartão de embarque ================= */
.db-bilhete{padding:0;overflow:visible;position:relative}
.db-bil-topo{padding:22px 22px 18px;background:linear-gradient(135deg,var(--vinho),var(--vinho2));color:#fff;border-radius:var(--r) var(--r) 0 0;position:relative;overflow:hidden}
.db-bil-topo::after{content:none;position:absolute;right:-10px;top:50%;width:120px;height:120px;margin-top:-60px;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='none' stroke='%23f0dcc2' stroke-opacity='.16' stroke-width='5' stroke-linejoin='round' d='M18 56 C26 46 26 40 30 34 C34 28 22 26 24 16 C25 8 39 8 40 16 C42 26 30 28 34 34 C38 40 38 46 46 56'/%3E%3C/svg%3E")}
.db-bil-topo .eyebrow{color:var(--champanhe-l)}
.db-bil-linha{display:flex;align-items:flex-end;gap:10px;margin-top:6px;position:relative}
.db-bil-linha .db-num{color:#fff;font-size:3rem;padding:0;opacity:1}
.db-bil-linha span{font-size:.95rem;opacity:.9;padding-bottom:6px}
.db-bil-prazo{position:relative;font-size:.86rem;color:var(--champanhe-l);margin-top:2px}
.db-barra{position:relative;height:8px;background:rgba(255,255,255,.14);border-radius:999px;overflow:hidden;margin-top:14px}
.db-barra span{display:block;height:100%;background:linear-gradient(90deg,var(--champanhe),var(--champanhe-l));border-radius:999px;transition:width .6s}
.db-picote{position:relative;height:0;border-top:2px dashed var(--linha);margin:0 18px}
.db-picote::before,.db-picote::after{content:"";position:absolute;top:-12px;width:22px;height:22px;border-radius:50%;background:var(--blush);border:1px solid var(--linha)}
.db-picote::before{left:-30px;clip-path:inset(0 0 0 50%)}
.db-picote::after{right:-30px;clip-path:inset(0 50% 0 0)}
.db-bil-corpo{padding:8px 20px 18px}
.db-tarefa{display:flex;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--linha)}
.db-tarefa:first-child{border-top:0}
.db-tarefa>.db-selo{flex:none}
.db-tarefa>.db-selo svg{width:42px;height:42px}
.db-tarefa>.db-selo em{display:none}
.db-t-txt{flex:1;min-width:0}
.db-t-txt b{font-weight:500;color:var(--vinho);display:block;font-size:.98rem;line-height:1.3}
.db-t-txt small{display:block;color:var(--suave);font-size:.8rem;line-height:1.4;margin-top:2px}
.db-btn{flex:none;border:1.5px solid var(--rosa);background:#fff;color:var(--rosa);border-radius:999px;padding:9px 16px;font:500 .82rem "Outfit";cursor:pointer;min-height:42px;min-width:84px;transition:background .2s,color .2s}
.db-btn:hover:not(:disabled){background:var(--blush)}
.db-btn.feito{background:var(--rosa);color:#fff}
.db-btn.feito:hover:not(:disabled){background:var(--rosa-vivo)}
.db-btn:disabled{opacity:.55;cursor:default}
.db-foto{display:inline-flex;align-items:center;gap:6px;margin-top:8px;border:1px dashed var(--rosa-claro);border-radius:999px;padding:6px 12px;font:500 .76rem "Outfit";color:var(--rosa);cursor:pointer}
.db-foto svg{width:15px;height:15px}
.db-desafio{background:var(--blush);border-left:3px solid var(--rosa-claro);border-radius:4px 12px 12px 4px;padding:10px 12px;margin:8px 0 2px;font-size:.9rem;color:var(--texto);font-style:italic;font-family:"Cormorant Garamond",serif;font-size:1.08rem;line-height:1.35}
.db-check{flex:none;font:500 .7rem "Outfit";letter-spacing:.06em;color:var(--suave);border:1px dashed var(--rosa-claro);border-radius:999px;padding:8px 12px;text-align:center;line-height:1.2}
.db-check.on{background:var(--blush2);border:1px solid var(--rosa-claro);color:var(--vinho)}
/* v3 (30/09): quanto da gravação ela já viu (o selo chega sozinho com a metade) */
.db-grav{display:block;margin-top:6px;font-size:.78rem;line-height:1.35;color:var(--vinho)}
.db-foto-prev{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:.8rem;color:var(--suave)}
.db-foto-prev img{width:50px;height:50px;object-fit:cover;border-radius:8px;border:3px solid #fff;box-shadow:0 4px 10px -4px rgba(74,23,51,.4);transform:rotate(-3deg)}

/* ================= MINHA JORNADA ================= */
.db-num{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:3rem;line-height:.95;color:var(--vinho)}
.db-jn{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
.db-jn>div{background:var(--blush);border-radius:14px;padding:14px 14px 12px}
.db-jn span{display:block;font-size:.82rem;color:var(--suave);margin-top:4px;line-height:1.3}
.db-jn .db-num{font-size:2.7rem;color:var(--vinho);margin:0}
.db-mochila{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
@media(min-width:1100px){.db-mochila{grid-template-columns:repeat(3,minmax(0,1fr))}}
.db-item{position:relative;display:block;padding:10px 12px 10px 30px;border-radius:6px 12px 12px 6px;border:1px dashed var(--rosa-claro);color:var(--muted);font-size:.84rem;line-height:1.3;min-height:58px}
.db-item small{display:block;font:500 .54rem "Outfit";letter-spacing:.2em;text-transform:uppercase;margin-bottom:2px;color:var(--muted)}
.db-furo{position:absolute;left:10px;top:50%;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;border:1.5px solid var(--rosa-claro);background:#fff}
.db-item.aceso{border:1px solid var(--champanhe);background:linear-gradient(135deg,#fbefdc,var(--champanhe-l));color:var(--vinho);font-weight:400}
.db-item.aceso small{color:var(--tinta-ouro)}
.db-item.aceso .db-furo{border-color:var(--champanhe)}

/* ================= ESTRADA DA TURMA ================= */
.db-estrada{position:relative;height:54px;margin:18px 14px 6px}
.db-via{position:absolute;left:0;right:0;top:25px;height:0;border-top:3px dotted var(--rosa-claro)}
.db-andado{position:absolute;left:0;top:24px;height:5px;border-radius:999px;background:linear-gradient(90deg,var(--rosa-claro),var(--rosa))}
.db-parada{position:absolute;top:17px;width:21px;height:21px;margin-left:-10.5px;border-radius:50%;background:#fff;border:2px solid var(--rosa-claro);display:grid;place-items:center;font-size:.62rem;color:#fff}
.db-parada.ok{background:var(--vinho);border-color:var(--vinho)}
.db-parada:not(.ok){color:var(--rosa);font-weight:600}
.db-parada.db-fim{width:28px;height:28px;margin-left:-14px;top:13px;background:#fbefdc;border-color:var(--champanhe);color:var(--tinta-ouro)}
.db-parada.db-fim svg{width:15px;height:15px}
.db-aqui{position:absolute;top:-6px;width:34px;margin-left:-17px;text-align:center}
.db-aqui svg{width:30px;height:24px;display:block;margin:0 auto}
.db-paradas{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}
.db-paradas li{display:flex;align-items:center;gap:10px;font-size:.88rem;color:var(--texto)}
.db-paradas li i{flex:none;width:12px;height:12px;border-radius:50%;border:2px solid var(--rosa-claro);background:#fff}
.db-paradas li.ok i{background:var(--vinho);border-color:var(--vinho)}
.db-paradas li.seg{color:var(--suave);font-style:italic}
.db-paradas li.seg i,.db-paradas li.fim i{width:20px;height:20px;display:grid;place-items:center;font:600 .66rem "Outfit";font-style:normal;color:var(--rosa);margin:0 -4px}
.db-paradas li.fim{margin-top:4px;padding-top:8px;border-top:1px dashed var(--linha)}
.db-paradas li.fim i{border-color:var(--champanhe);color:var(--tinta-ouro);background:#fbefdc}
.db-paradas li.fim i svg{width:13px;height:13px}
.db-fim-txt{margin:0!important;font-size:.88rem!important;color:var(--vinho)!important;white-space:normal!important}
.db-fim-txt b{display:block;font:500 .56rem "Outfit";letter-spacing:.2em;text-transform:uppercase;color:var(--tinta-ouro)}
.db-paradas li span{margin-left:auto;font-size:.78rem;color:var(--suave);white-space:nowrap}
.db-lista-paradas{font-size:.86rem;color:var(--vinho);margin-top:12px;background:var(--blush);border-radius:12px;padding:10px 12px}
.db-lista-paradas b{font-weight:500}
.db-erro{font-size:.9rem;color:var(--suave)}

/* janela de assinar / escrever o destino (sem backdrop-filter) */
.db-modal{position:fixed;inset:0;z-index:300;background:rgba(46,12,31,.55);display:flex;align-items:flex-end;justify-content:center;padding:16px}
@media(min-width:600px){.db-modal{align-items:center}}
.db-modal-box{width:100%;max-width:440px;background:var(--papel);border-radius:18px;padding:22px 20px 18px;box-shadow:0 30px 60px -20px rgba(46,12,31,.6);animation:dbSobe .3s ease-out both}
@keyframes dbSobe{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.db-modal-box h3{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:1.5rem;line-height:1.15;color:var(--vinho);margin:4px 0 6px}
.db-modal-box textarea{width:100%;margin-top:12px;border:1px solid var(--linha);border-radius:12px;padding:12px;background:#fff;resize:vertical;
  font-family:"Cormorant Garamond",serif;font-style:italic;font-size:1.25rem;color:var(--vinho);line-height:1.3}
.db-modal-box textarea:focus{outline:2px solid var(--rosa-claro);border-color:var(--rosa-claro)}
.db-pad{display:block;width:100%;height:auto;aspect-ratio:5/2;margin-top:12px;background:#fff;border:1px dashed var(--rosa-claro);border-radius:12px;touch-action:none;cursor:crosshair;
  background-image:linear-gradient(transparent calc(100% - 38px),rgba(74,23,51,.2) calc(100% - 38px),rgba(74,23,51,.2) calc(100% - 37px),transparent calc(100% - 37px))}
.db-modal-acoes{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}
.db-modal .db-fechar{display:block;margin:8px auto 0}

@media(max-width:420px){
  .db-card{padding:22px 18px 20px}
  .db-bil-topo{padding:20px 18px 16px}
  .db-bil-corpo{padding:6px 16px 16px}
  .db-folha{padding:16px 14px 12px}
  .db-sem{grid-template-columns:44px repeat(4,minmax(0,1fr))}
  .db-selo svg{width:40px;height:40px}
  .db-carimbo{width:104px;height:104px}
  .db-retrato{width:84px;height:106px}
  .db-embarquei{width:138px}
  .db-sec-in{width:104px}
  .db-tarefa{gap:10px}
  .db-btn{min-width:76px;padding:9px 12px}
}
/* recado na tela inteira: fundo embaçado + aviãozinho com a carta. UM só backdrop-filter, e só enquanto o recado está aberto */
html.db-travado,html.db-travado body{overflow:hidden}
.db-recado{position:fixed;inset:0;z-index:9000;display:grid;place-items:center;padding:24px 16px;
  background:rgba(46,12,31,.38);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);animation:dbRecIn .35s ease-out both}
.db-recado.db-saindo{animation:dbRecOut .28s ease-in forwards}
@keyframes dbRecIn{from{opacity:0}to{opacity:1}}
@keyframes dbRecOut{to{opacity:0}}
.db-recado{grid-template-rows:auto auto;align-content:center;gap:18px}
.db-recado-voo{display:flex;align-items:center;background:none;border:0;padding:0;cursor:pointer;max-width:100%;
  animation:dbRecVoa 3.2s cubic-bezier(.25,.65,.3,1) .15s both, dbRecPaira 3.6s ease-in-out 3.4s infinite}
.db-recado-voo:focus-visible{outline:3px solid #f5c6da;outline-offset:10px;border-radius:14px}
/* o banner: faixa de pano puxada pelo avião, com rabo de andorinha, ondulando */
.db-recado-banner{display:block;transform-origin:100% 50%;animation:dbPano 1.6s ease-in-out infinite}
.db-recado-pano{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;color:var(--vinho);
  padding:12px 22px 12px 30px;min-width:min(58vw,250px);max-width:min(62vw,300px);
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%,16px 50%);
  background:linear-gradient(180deg,rgba(255,255,255,.35),transparent 40%,rgba(120,80,40,.10)),linear-gradient(180deg,#f6efe2,#e6d8bf);
  box-shadow:0 18px 30px -16px rgba(20,4,12,.7)}
.db-recado-eyebrow{font:500 .6rem "Outfit";letter-spacing:.22em;text-transform:uppercase;color:var(--tinta-rosa,#c93f74)}
.db-recado-txt{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:1.3rem;line-height:1.12}
.db-recado-cordas{width:34px;height:40px;color:rgba(246,239,226,.9);flex:none}
.db-recado-cordas svg{width:100%;height:100%;display:block}
.db-recado-aviao{width:74px;height:58px;color:#e3c28f;flex:none;margin-left:-2px;filter:drop-shadow(0 8px 10px rgba(20,4,12,.45))}
.db-recado-aviao svg{width:100%;height:100%;display:block}
.db-recado-dica{margin:0;text-align:center;font:500 .72rem "Outfit";letter-spacing:.14em;text-transform:uppercase;color:#fff;opacity:0;
  animation:dbRecIn .5s ease-out 3.2s forwards;text-shadow:0 1px 6px rgba(20,4,12,.6)}
/* atravessa a tela vindo da esquerda e para no meio */
@keyframes dbRecVoa{0%{transform:translate(-130vw,-4vh) rotate(-3deg)}72%{transform:translate(10px,-3px) rotate(1.5deg)}88%{transform:translate(-3px,2px) rotate(-.5deg)}100%{transform:none}}
@keyframes dbRecPaira{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes dbPano{0%,100%{transform:skewY(0) scaleY(1)}25%{transform:skewY(-2.2deg) scaleY(.97)}75%{transform:skewY(2deg) scaleY(1.02)}}
.db-recado.db-parado .db-recado-voo,.db-recado.db-parado .db-recado-banner{animation:none}
.db-recado.db-parado .db-recado-dica{animation:none;opacity:1}
@media(max-width:420px){.db-recado-aviao{width:58px;height:46px}.db-recado-cordas{width:24px}.db-recado-txt{font-size:1.12rem}.db-recado-pano{padding:10px 16px 10px 26px}}
/* recadinho do aviãozinho */
.db-correio{position:relative;display:flex;align-items:center;gap:0;margin-top:18px;background:none;border:0;padding:0;cursor:pointer;max-width:100%;
  transform:translateX(-120vw);opacity:0}
.db-correio.db-voa{animation:dbVoa 2.6s cubic-bezier(.2,.7,.25,1) forwards}
.db-correio.db-pousado{transform:none;opacity:1}
.db-correio.db-voa .db-correio-aviao,.db-correio.db-pousado .db-correio-aviao{animation:dbPlaina 3.2s ease-in-out 2.6s infinite}
.db-correio-faixa{background:#f6efe2;color:var(--vinho);font:600 .7rem/1.35 "Outfit";letter-spacing:.06em;text-transform:uppercase;
  padding:9px 16px 9px 14px;border-radius:4px;box-shadow:0 10px 18px -12px rgba(74,23,51,.55);
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%,7px 50%);max-width:26ch;text-align:center}
.db-correio-fio{width:26px;height:0;border-top:1.5px dashed rgba(168,119,63,.8);flex:none}
.db-correio-aviao{width:40px;height:32px;color:#c79a5c;flex:none;display:block}
.db-correio-aviao svg{width:100%;height:100%;display:block;filter:drop-shadow(0 4px 4px rgba(74,23,51,.25))}
@keyframes dbVoa{
  0%{transform:translate(-120vw,-70px) rotate(-6deg);opacity:1}
  55%{transform:translate(12px,-14px) rotate(3deg);opacity:1}
  75%{transform:translate(-4px,4px) rotate(-1deg)}
  100%{transform:none;opacity:1}}
@keyframes dbPlaina{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(-4deg)}}
@media(prefers-reduced-motion:reduce){
  .db-correio{transform:none!important;opacity:1!important;animation:none!important}
  .db-correio-aviao{animation:none!important}
}
@media(prefers-reduced-motion:reduce){
  .db-capa-wrap,.db-miolo,.db-selo svg,.db-carimbo svg,.db-revela,.db-revela::before,.db-capa-selo,.db-modal-box{animation:none!important;transition:none!important}
}

/* gestor-infra 27/09: o item "Diário de Bordo" do menu só aparece pra aluna logada (visitante não tem passaporte) */
body:not(.is-student) .menu a[href="#diario"]{display:none}
