.cw {
  --cw-fab-size: 58px;
  position: fixed;
  z-index: 95;
  right: max(16px, env(safe-area-inset-right));
  bottom: calc(max(16px, env(safe-area-inset-bottom)) + var(--cw-bottom-reserve, 0px));
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-end;
  gap: 12px;
}
.cw * { box-sizing: border-box; }
.cw-fab {
  position: relative;
  width: var(--cw-fab-size);
  height: var(--cw-fab-size);
  padding: 0;
  flex: none;
  border: 1px solid #c9a86a;
  border-radius: 50%;
  background: #c9a86a;
  color: #0a0a0b;
  box-shadow: 0 12px 40px rgba(0,0,0,.4);
  cursor: pointer;
  transition: transform .3s, box-shadow .3s;
}
.cw-fab:hover { transform: scale(1.05); box-shadow: 0 16px 50px rgba(201,168,106,.3); }
.cw-fab-open, .cw-fab-close {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  transition: opacity .25s, transform .3s;
}
.cw-fab-close { font: 26px/1 Arial, sans-serif; opacity: 0; transform: rotate(-45deg); }
.cw-fab[aria-expanded="true"] .cw-fab-open { opacity: 0; transform: rotate(45deg); }
.cw-fab[aria-expanded="true"] .cw-fab-close { opacity: 1; transform: none; }
.cw-menu {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  max-height: calc(100dvh - 100px - var(--cw-bottom-reserve, 0px));
  overflow-y: auto;
  padding: 6px;
}
.cw-menu[hidden] { display: none; }
.cw-item { display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 50%; background: none; color: inherit; font: inherit; text-decoration: none; cursor: pointer; }
.cw-ic {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  flex: none;
  border: 1px solid #4a4640;
  border-radius: 50%;
  background: #19191b;
  color: #f4f2ee;
  transition: transform .25s;
}
.cw-item:hover .cw-ic { transform: scale(1.08); }
.cw-tg .cw-ic { background: transparent; border: 0; }
.cw-wa .cw-ic { background: #25601f; border-color: #2f7a27; }
.cw-ic img { display: block; width: 25px; height: 25px; object-fit: contain; }
.cw-tg .cw-ic img { width: 46px; height: 46px; }
.cw-fab:focus-visible, .cw-item:focus-visible, .cw-mail-card :focus-visible { outline: 3px solid #f4d99f; outline-offset: 3px; }
.cw-mail-card {
  position: absolute;
  right: calc(100% + 8px);
  bottom: calc(var(--cw-fab-size) + 18px);
  display: flex;
  align-items: center;
  width: max-content;
  max-width: calc(100vw - 96px);
  min-height: 46px;
  padding-left: 14px;
  border: 1px solid #514a3e;
  border-radius: 23px;
  background: #19191b;
  color: #f0ede7;
  box-shadow: 0 6px 22px rgba(0,0,0,.28);
  font: 500 13px/1.4 'Manrope', 'Segoe UI', Arial, sans-serif;
  text-align: left;
}
.cw-mail-card[hidden] { display: none; }
.cw-mail[aria-expanded="true"] .cw-ic { border-color: #8c7753; color: #d8b97d; }
.cw-mail-text { min-width: 0; padding: 6px 0; }
.cw-mail-address { white-space: nowrap; cursor: text; user-select: all; -webkit-user-select: all; border-radius: 3px; }
.cw-mail-copy { position: relative; display: grid; place-items: center; flex: none; width: 44px; height: 44px; margin-left: 9px; padding: 0; border: 0; border-radius: 0 22px 22px 0; background: none; color: #d4b578; cursor: pointer; }
.cw-mail-copy::before { content: ''; position: absolute; left: 0; top: 14px; bottom: 14px; width: 1px; background: #494237; }
.cw-mail-copy:hover { background: rgba(201,168,106,.09); color: #f4d99f; }
.cw-copy-done, .cw-mail-card[data-copy-state="copied"] .cw-copy-icon { display: none; }
.cw-mail-card[data-copy-state="copied"] .cw-copy-done { display: block; }
.cw-mail-status { max-width: 145px; margin: 3px 0 0; color: #c6bca9; font-size: 10.5px; font-weight: 400; line-height: 1.4; }
.cw-mail-status:empty, .cw-mail-card[data-copy-state="copied"] .cw-mail-status { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 620px) {
  .cw { --cw-fab-size: 52px; right: max(14px, env(safe-area-inset-right)); bottom: calc(max(14px, env(safe-area-inset-bottom)) + var(--cw-bottom-reserve, 0px)); }
}
@media (prefers-reduced-motion: reduce) {
  .cw-fab, .cw-fab-open, .cw-fab-close, .cw-ic { transition: none; }
}
