.dbding-favorite-button.dbding-favorite-button:not(.dbding-perk-favorite) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 5px 10px;
  border: 1px solid #987450;
  border-radius: 9px;
  background: #231b1e;
  color: #ffe7ca;
  font-family: inherit;
  font-size: .86rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
  cursor: pointer;
}
.dbding-favorite-button.dbding-favorite-button:not(.dbding-perk-favorite):is(:hover, [aria-pressed='true']) {
  background: #473323;
  color: #ffe8b1;
  border-color: #e3b26c;
}

.dbding-favorite-button.dbding-perk-favorite {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #fff;
  cursor: pointer;
}
.dbding-favorite-button.dbding-perk-favorite:hover { background: #fff1; }
.dbding-favorite-button.dbding-perk-favorite::before {
  --perk-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2.75 2.86 5.8 6.4.93-4.63 4.51 1.09 6.38L12 17.36l-5.72 3.01 1.09-6.38-4.63-4.51 6.4-.93Z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E");
  content: "";
  display: block;
  width: 24px;
  height: 24px;
  background-color: currentColor;
  -webkit-mask: var(--perk-star) center / contain no-repeat;
  mask: var(--perk-star) center / contain no-repeat;
}
.dbding-favorite-button.dbding-perk-favorite[aria-pressed='true']::before {
  --perk-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2.75 2.86 5.8 6.4.93-4.63 4.51 1.09 6.38L12 17.36l-5.72 3.01 1.09-6.38-4.63-4.51 6.4-.93Z' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.dbding-favorite-button:focus-visible { outline: 2px solid #f7cf88; outline-offset: 3px; }
.dbding-favorite-button:disabled { opacity: .65; cursor: progress; }
.dbding-favorite-notice {
  position: fixed;
  z-index: 10000;
  inset-inline-end: max(14px, env(safe-area-inset-right));
  bottom: max(14px, env(safe-area-inset-bottom));
  max-width: calc(100vw - 28px);
  padding: 10px 15px;
  border-radius: 10px;
  border: 1px solid #a78654;
  background: #231c1a;
  color: #ffe9c2;
  font-size: .92rem;
  box-shadow: 0 8px 32px #0008;
  pointer-events: none;
}
.dbding-favorite-notice.dbding-favorite-error { background: #42202a; border-color: #c67984; color: #ffdce0; }
.dbding-favorite-notice[hidden] { display: none; }
