:root {
  --oe-grad: radial-gradient(1200px 600px at 10% -20%, rgba(13,110,253,.18), transparent 60%),
             radial-gradient(900px 500px at 90% 0%, rgba(25,135,84,.14), transparent 60%),
             radial-gradient(900px 500px at 50% 120%, rgba(220,53,69,.10), transparent 60%);
}

.hero { background: var(--oe-grad); }

.card-hover { transition: transform .15s ease, box-shadow .15s ease; }
.card-hover:hover { transform: translateY(-2px); box-shadow: 0 .5rem 1rem rgba(0,0,0,.08); }

.badge-soft { background: rgba(13,110,253,.10); color: #0d6efd; border: 1px solid rgba(13,110,253,.18); }
.badge-soft-danger { background: rgba(220,53,69,.10); color: #dc3545; border: 1px solid rgba(220,53,69,.18); }

.file-tile {
  aspect-ratio: 16/10;
  background: linear-gradient(135deg, rgba(0,0,0,.02), rgba(0,0,0,.06));
  border-radius: .75rem;
  display: grid;
  place-items: center;
}

.file-tile i { font-size: 2.25rem; opacity: .75; }

/* Vídeo: thumbnail + ícone play */
.video-thumb {
  position: relative;
  aspect-ratio: 16/10;
  border-radius: .75rem;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(0,0,0,.04), rgba(0,0,0,.10));
}

.video-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.video-thumb .video-play {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  pointer-events: none;
}

.video-thumb .video-play span {
  width: 56px;
  height: 56px;
  border-radius: 999px;
  background: rgba(0,0,0,.55);
  display: grid;
  place-items: center;
  color: #fff;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}

.video-thumb .video-play i { font-size: 2rem; line-height: 1; }

.video-thumb.is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255,255,255,.10), rgba(255,255,255,.25), rgba(255,255,255,.10));
  animation: oeShimmer 1.2s infinite;
  opacity: .65;
}

@keyframes oeShimmer {
  0% { transform: translateX(-60%); }
  100% { transform: translateX(60%); }
}

/* Modal: vídeo sempre cabe na tela */
.modal-video {
  max-height: 70vh;
  height: auto;
  object-fit: contain;
}

/* PDF preview block */
.pdf-preview {
  height: 220px;
  border: 1px solid rgba(0,0,0,.08);
  background: #fff;
}

/* Botão de desbloqueio (Arquitetura) */
.btn-restricted {
  background: #0d6efd;
  color: #fff;
  border: 0;
  padding: .45rem .65rem;
  font-size: .85rem;
  line-height: 1.1;
}
.btn-restricted:hover,
.btn-restricted:focus {
  background: #dc3545;
  color: #fff;
}


/* Galeria VM */
.vm-photo-wrap{display:flex;justify-content:center;align-items:center;min-height:220px;}
.vm-photo{max-height:220px;width:auto;max-width:80%;height:220px;object-fit:contain;}
.vm-filename{white-space:normal;overflow:visible;text-overflow:unset;overflow-wrap:anywhere;word-break:break-word;line-height:1.15;}


/* Mural (home) */
.mural-fit{
  width:100%;
  height:280px;
  object-fit:contain;
  background:#f8f9fa;
}
.mural-text-scroll{
  max-height:280px;
  overflow:auto;
  padding-right:.25rem;
}


/* Home: grid 46/27/27 */
.oe-cards-grid{display:grid;gap:1rem;}
@media (min-width: 992px){
  .oe-cards-grid{grid-template-columns:46fr 27fr 27fr;align-items:stretch;}
}
