/* Calendar/List UI base + v0.5.6 improvements */
:root{ --vh-bg:#f7f8fa; --vh-card:#ffffff; --vh-border:#e6e8ef; --vh-text:#212529; --vh-muted:#6c757d; --vh-primary:#2563eb; --vh-today:#fff7e6; --vh-shadow:0 2px 8px rgba(18,21,26,.06); }
.vh-cal-heading{ margin:0 0 8px; font-size:20px; line-height:1.25; font-weight:700; }
.vh-calendar-wrapper{ position:relative; }
.vh-cal.card{ background:var(--vh-card); border:1px solid var(--vh-border); border-radius:16px; box-shadow:var(--vh-shadow); padding:12px; font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; color:var(--vh-text); }
.vh-cal-head{ display:flex; align-items:center; justify-content:space-between; padding:8px 6px 12px; border-bottom:1px solid var(--vh-border); }
.vh-title{ font-weight:700; font-size:18px; }
.vh-nav{ text-decoration:none; font-size:20px; line-height:1; color:var(--vh-primary); padding:6px 10px; border-radius:10px; }
.vh-filterbar{ display:flex; align-items:center; margin:0 0 10px; gap:12px; flex-wrap:nowrap; justify-content:space-between; }
.vh-view-toggle{ display:flex; gap:6px; flex:0 0 auto; }
.vh-view-btn{ border:1px solid var(--vh-border); background:#fff; padding:8px 12px; border-radius:10px; cursor:pointer; }
.vh-view-btn.is-active{ border-color:var(--vh-primary); color:#fff; background:var(--vh-primary); }
.vh-filterbar label{ font-size:13px; color:var(--vh-muted); display:flex; gap:6px; align-items:center; flex:1 1 auto; justify-content:flex-end; }
.vh-filterbar select{ border:1px solid var(--vh-border); border-radius:10px; padding:8px 12px; background:#fff; color:var(--vh-text); max-width:60vw; }
/* Month grid */
.vh-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:10px; padding:12px 4px 6px; }
.vh-col{ min-height:110px; background:#fff; border:1px solid var(--vh-border); border-radius:12px; padding:10px; position:relative; }
.vh-head{ min-height:auto; background:transparent; border:none; text-align:center; font-weight:600; color:var(--vh-muted); padding:6px 0; }
.vh-empty{ background:transparent; border:none; }
.vh-day.is-today{ background:var(--vh-today); box-shadow:inset 0 0 0 2px #ffd699; }
.vh-daynum{ position:absolute; top:8px; right:10px; font-size:12px; color:var(--vh-muted); }
.vh-ev{ margin-top:22px; line-height:1.3; font-size:13px; position:relative; }
.vh-ev-link{ color:var(--vh-text); text-decoration:none; }
.vh-badge{ display:inline-block; font-size:11px; padding:2px 6px; border-radius:999px; background:#eef2ff; border:1px solid #e5e7eb; margin-right:6px; }
/* List view */
.vh-list{ display:flex; flex-direction:column; gap:10px; padding:12px 6px; }
.vh-list-item{ display:flex; gap:12px; align-items:flex-start; border:1px solid var(--vh-border); border-radius:12px; padding:12px; background:#fff; }
.vh-list-when{ min-width:140px; }
.vh-list-date{ font-weight:600; }
.vh-list-time{ font-size:13px; color:var(--vh-muted); }
.vh-list-title{ font-weight:600; text-decoration:none; color:var(--vh-text); }
.vh-list-meta{ font-size:13px; color:var(--vh-muted); margin-top:4px; display:flex; gap:12px; flex-wrap:wrap; }
@media (max-width:740px){
  .vh-list-item{ flex-direction:column; }
  .vh-list-when{ min-width:auto; display:flex; gap:8px; }
  .vh-filterbar{ gap:8px; }
  .vh-filterbar select{ max-width:70vw; }
}
