/* ====== Admin layout ====== */
.vimarte-admin-grid{
  display:grid;
  grid-template-columns: 420px 1fr;
  gap:16px;
  align-items:start;
}
@media (max-width: 960px){
  .vimarte-admin-grid{ grid-template-columns: 1fr; }
}
.vimarte-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
  padding:16px;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
}
.vimarte-muted{ opacity:.72; }
.vimarte-loading{ padding:12px; opacity:.75; font-weight:600; }

/* ====== Front ====== */
.vimarte-palinsesto { max-width: 1100px; margin: 0 auto; padding: 24px 12px; }
.vimarte-palinsesto__title { font-size: 28px; margin: 0 0 14px; }
.vimarte-palinsesto__list { display: grid; gap: 12px; }
.vimarte-palinsesto__item {
  width: 100%;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 14px;
  padding: 16px;
  background: #fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-size: 16px;
  cursor:pointer;
}
.vimarte-palinsesto__date { font-weight: 800; }
.vimarte-palinsesto__cta { opacity: .75; font-weight: 700; }

/* ====== Modal ====== */
.vimarte-modal { position: fixed; inset: 0; z-index: 999999; display:none; }
.vimarte-modal[aria-hidden="false"] { display:block; }
.vimarte-modal__backdrop { position:absolute; inset:0; background: rgba(0,0,0,.55); }
.vimarte-modal__panel {
  position:absolute; left:50%; top:50%; transform: translate(-50%,-50%);
  width: min(920px, calc(100vw - 24px));
  max-height: min(86vh, 780px);
  background:#fff; border-radius: 18px; overflow:hidden;
  box-shadow: 0 16px 40px rgba(0,0,0,.35);
  display:flex; flex-direction:column;
}
.vimarte-modal__header {
  padding: 14px 16px; border-bottom: 1px solid rgba(0,0,0,.08);
  display:flex; align-items:flex-start; justify-content:space-between; gap: 12px;
}
.vimarte-modal__kicker { font-size: 12px; opacity: .7; margin-bottom: 4px; }
.vimarte-modal__title { margin: 0; font-size: 18px; line-height: 1.2; }
.vimarte-modal__close {
  border:0; background: transparent; font-size: 28px; line-height: 1;
  cursor:pointer; padding: 6px 10px; border-radius: 10px;
}
.vimarte-modal__close:hover { background: rgba(0,0,0,.06); }
.vimarte-modal__body { padding: 14px 16px; overflow:auto; -webkit-overflow-scrolling: touch; }

html.vimarte-modal-open { overflow: hidden; }

/* ====== Opera cards ====== */
.vimarte-opera { border: 1px solid rgba(0,0,0,.10); border-radius: 14px; padding: 12px; margin-bottom: 12px; }
.vimarte-opera__top { display:flex; flex-wrap:wrap; gap: 8px; align-items:center; margin-bottom: 6px; }
.vimarte-opera__num { font-weight: 900; }
.vimarte-opera__code, .vimarte-opera__cat {
  font-size: 12px; padding: 2px 8px; border-radius: 999px; background: rgba(0,0,0,.06);
}
.vimarte-opera__title { margin: 0 0 6px; font-size: 16px; }
.vimarte-opera__desc { margin: 0; opacity: .92; font-size: 14px; line-height: 1.45; }

/* Preview box */
.vimarte-preview__head{ margin-bottom:8px; }
.vimarte-preview__sub{ margin-bottom:12px; }
