/*
 * ChouChou Condo 1.7.18 · unified free-state solid lock.
 * One simple keyhole padlock identifies locked monthly-rent features. Paid
 * residents see no lock at all; unknown/loading states stay visually quiet.
 */

.cc-premium-crown,
[data-cc-premium-crown] {
  display: none !important;
}

.prince-paid-feature-crown {
  display: none !important;
}

[data-prince-ai-paid-lock] {
  font-size: 0 !important;
}

[data-prince-ai-paid-lock] > .cc-premium-lock-icon {
  font-size: 16px !important;
}

.cc-premium-lock-icon[hidden],
[data-cc-premium-lock-marker][hidden] {
  display: none !important;
}

/* Membership visibility is also enforced at the document-state level. This
   prevents any feature-specific display rule from reviving a paid lock. */
html[data-cc-premium-state="paid"] [data-cc-premium-lock-marker],
html[data-cc-premium-state="unknown"] [data-cc-premium-lock-marker] {
  display: none !important;
}

html[data-cc-premium-state="paid"] .cc-premium-toast [data-cc-premium-lock-marker],
html[data-cc-premium-state="unknown"] .cc-premium-toast [data-cc-premium-lock-marker] {
  display: inline-flex !important;
}

.cc-premium-lock-icon {
  --cc-lock-size: 1.15em;
  position: relative;
  z-index: 1;
  display: inline-flex;
  width: var(--cc-lock-size);
  height: var(--cc-lock-size);
  flex: 0 0 var(--cc-lock-size);
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  color: currentColor;
  line-height: 1;
  vertical-align: -.14em;
}

.cc-premium-lock-icon > svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.cc-premium-lock-shackle,
.cc-premium-lock-body {
  fill: currentColor;
  stroke: none;
}

.cc-premium-lock-keyhole {
  fill: var(--cc-lock-keyhole, #fff9f2);
  stroke: none;
}

.cc-premium-lock-icon--room {
  --cc-lock-size: clamp(22.5px, 1.485vw, 32.4px);
  --cc-lock-keyhole: #5f3445;
  color: #fff4d8;
  filter:
    drop-shadow(0 1px 0 rgba(98, 43, 61, .88))
    drop-shadow(0 0 5px rgba(255, 239, 197, .45))
    drop-shadow(0 3px 5px rgba(33, 12, 21, .56));
}

.cc-premium-lock-icon--button {
  --cc-lock-size: 1.24em;
  --cc-lock-keyhole: rgba(255, 249, 242, .98);
  margin-inline-start: .48em;
  color: currentColor;
}

.cc-premium-lock-icon--quota {
  --cc-lock-size: 1.32em;
  --cc-lock-keyhole: #fff8f1;
  margin-inline: .27em .1em;
  color: #94365d;
}

.cc-premium-lock-icon--story {
  --cc-lock-size: clamp(15px, 1.15vw, 20px);
  --cc-lock-keyhole: #fff8f1;
  color: #92385e;
}

.cc-premium-lock-icon--nav {
  --cc-lock-size: 1.14em;
  --cc-lock-keyhole: #fff8f1;
  margin-inline-start: .36em;
  color: #92385e;
}

.cc-premium-lock-icon--toast {
  --cc-lock-size: 25px;
  --cc-lock-keyhole: #6a2945;
  color: #f5d98f;
  filter: drop-shadow(0 2px 5px rgba(36, 11, 24, .34));
}

.cc-premium-control-marker {
  position: relative;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  line-height: 1;
  white-space: nowrap;
  pointer-events: none;
}

.cc-premium-control-marker--sibling {
  margin-inline-start: 7px;
  padding: 6px 8px;
  border: 1px solid rgba(123, 49, 82, .34);
  border-radius: 999px;
  color: #92385e;
  background: rgba(255, 249, 245, .94);
  box-shadow: 0 3px 10px rgba(74, 26, 46, .12);
}

.cc-premium-control-marker--sibling .cc-premium-lock-icon--button {
  margin-inline-start: 0;
}

.cc-premium-toast {
  position: fixed;
  left: 50%;
  bottom: max(36px, calc(env(safe-area-inset-bottom) + 24px));
  z-index: 2147483646;
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: min(88vw, 430px);
  box-sizing: border-box;
  padding: 10px 19px 10px 13px;
  border: 1px solid rgba(242, 206, 122, .92);
  border-radius: 999px;
  color: #fff9e8;
  background:
    radial-gradient(circle at 14% 0, rgba(255, 231, 158, .2), transparent 34%),
    linear-gradient(135deg, rgba(112, 43, 70, .985), rgba(65, 22, 43, .985));
  box-shadow:
    0 0 0 2px rgba(91, 37, 58, .52),
    0 0 0 3px rgba(247, 221, 153, .24),
    0 14px 38px rgba(43, 14, 29, .34),
    inset 0 1px 0 rgba(255, 255, 255, .18);
  font-family: "Noto Serif SC", "Songti SC", "Microsoft JhengHei", Georgia, serif;
  font-size: clamp(12px, 1.08vw, 15px);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .055em;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, 12px) scale(.97);
  transition: opacity .14s ease, transform .18s ease, visibility 0s linear .18s;
}

.cc-premium-toast.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translate(-50%, 0) scale(1);
  transition-delay: 0s;
}

.cc-chat-premium-perk {
  display: inline-flex;
  align-items: center;
  gap: .18em;
  margin-inline-start: .38em;
  padding-inline-start: .42em;
  border-inline-start: 1px solid rgba(145, 74, 101, .25);
  color: #92385e;
  font-family: Georgia, "Noto Serif SC", serif;
  font-weight: 800;
  white-space: nowrap;
}

.cc-chat-premium-value {
  color: inherit;
  font: inherit;
}

@media (max-width: 767px) {
  .cc-premium-lock-icon--room {
    --cc-lock-size: clamp(16.2px, 4.5vw, 22.5px);
  }

  .cc-premium-lock-icon--toast {
    --cc-lock-size: 22px;
  }

  .cc-premium-toast {
    bottom: max(22px, calc(env(safe-area-inset-bottom) + 13px));
    gap: 8px;
    padding: 9px 14px 9px 11px;
    letter-spacing: .035em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cc-premium-toast { transition: none; }
}
