.twl-vol-calendar{
  border:1px solid #ddd;
  border-radius:14px;
  padding:16px;
}
.twl-vol-calendar-title{ margin-top:0; }
.twl-vol-day{ margin-top:18px; }
.twl-vol-occ{
  border:1px solid #e6e6e6;
  border-radius:12px;
  padding:12px;
  margin:10px 0;
}
.twl-vol-occ-head{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:baseline;
}
.twl-vol-occ-time{ font-weight:800; }
.twl-vol-occ-title{ font-size:1.05em; font-weight:650; }
.twl-vol-occ-loc{ opacity:.8; }
.twl-vol-needs{ margin:10px 0 0 0; padding-left:0; list-style:none; }
.twl-vol-need{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:8px 0;
  border-top:1px dashed #eee;
}
.twl-vol-need:first-child{ border-top:none; }
.twl-vol-need-title{ font-weight:600; }
.twl-vol-open{
  display:inline-block;
  border:1px solid #c7e3cc;
  padding:0 8px;
  border-radius:999px;
  margin-right:6px;
  font-size:12px;
}
.twl-vol-full{
  display:inline-block;
  border:1px solid #e3c7c7;
  padding:0 8px;
  border-radius:999px;
  margin-right:6px;
  font-size:12px;
}
.twl-vol-qty{ opacity:.7; font-size:12px; }
.twl-vol-muted{ opacity:.75; }
.twl-vol-error{ color:#b32d2e; }
.twl-vol-success{
  border:1px solid #c7e3cc;
  padding:10px 12px;
  border-radius:10px;
  margin:10px 0;
}
.twl-vol-empty{ opacity:.8; padding:10px 0; }
.twl-vol-inline{ display:inline; margin:0; }
.twl-vol-btn{
  border:1px solid #ccc;
  background:#fff;
  padding:6px 10px;
  border-radius:10px;
  cursor:pointer;
}
.twl-vol-btn[disabled]{ opacity:.4; cursor:not-allowed; }
.twl-vol-btn-cancel{ border-color:#e3c7c7; }
