:root {
  --button-size: 32px;
  --icon-size: 16px;

  --padding-ver: calc(0.3 * var(--icon-size));
  --padding-hor: calc(var(--icon-size) / 2);
  --padding-icon: calc((var(--button-size) - var(--icon-size)) / 2);

  --height: calc(var(--button-size) - 2 * var(--padding-ver));
  --width: calc(var(--button-size) - 2 * var(--padding-hor));
}

.shareon {
  font-size: 0 !important;
}

.shareon > * {
  display: inline-block;
  position: relative;

  height: var(--height);
  min-width: var(--width);

  margin: calc(var(--padding-ver) / 2);
  padding: var(--padding-ver) var(--padding-hor);

  background-color: #2d2d2d;
  border-radius: calc(var(--icon-size) / 1);
  border: none;
  box-sizing: content-box;
  color: white;
  line-height: 1.5;
  transition: opacity 300ms ease;
  vertical-align: middle;
}

.shareon > *:hover {
  border: none;
  cursor: pointer;
  opacity: 0.7;
}

.shareon > *:not(:empty) {
  font-size: calc(0.8 * var(--icon-size));
  text-decoration: none;
}

.shareon > *:not(:empty)::before {
  position: relative;

  height: 100%;
  width: calc(var(--icon-size) + var(--padding-icon));

  top: 0;
  left: 0;

  background-position: 0 50%;
}

.shareon > *::before {
  display: inline-block;
  position: absolute;

  height: var(--icon-size);
  width: var(--icon-size);

  top: var(--padding-icon);
  left: var(--padding-icon);

  background-repeat: no-repeat;
  background-size: var(--icon-size) var(--icon-size);
  content: "";
  vertical-align: bottom;
}

/* 카카오 추가 */
.shareon > .kakao {
  background-color: #3c1e1e;
  background-image: url("icons/kakaotalk.svg");
}
/* 네이버 추가 */
.shareon > .naver {
  background-color: #03C75A;
}
.shareon > .naver:before {
  background-image: url("icons/naver.svg");
}

.shareon > .bluesky {
  background-color: #0285ff;
}
.shareon > .bluesky:before {
  background-image: url("icons/bluesky.svg");
}

.shareon > .copy-url:before {
  background-image: url("icons/copy-url.svg");
}

.shareon > .copy-url.done:before {
  background-image: url("icons/copy-url-done.svg");
}

.shareon > .email:before {
  background-image: url("icons/email.svg");
}

.shareon > .facebook {
  background-color: #1877f2;
}
.shareon > .facebook:before {
  background-image: url("icons/facebook.svg");
}

.shareon > .fediverse {
  background-color: #8a54af;
}
.shareon > .fediverse:before {
  background-image: url("icons/fediverse.svg");
}

.shareon > .hackernews {
  background-color: #fb651e;
}
.shareon > .hackernews:before {
  background-image: url("icons/hackernews.svg");
}

.shareon > .linkedin {
  background-color: #0a66c2;
}
.shareon > .linkedin:before {
  background-image: url("icons/linkedin-in.svg");
}
.shareon > .linkedin:not(:empty):before {
  background-image: url("icons/linkedin.svg");
}

.shareon > .mastodon {
  background-color: #6364ff;
}
.shareon > .mastodon:before {
  background-image: url("icons/mastodon.svg");
}

.shareon > .messenger {
  background-color: #00b2ff;
}
.shareon > .messenger:before {
  background-image: url("icons/messenger.svg");
}

.shareon > .odnoklassniki {
  background-color: #ee8208;
}
.shareon > .odnoklassniki:before {
  background-image: url("icons/odnoklassniki.svg");
}

.shareon > .pinterest {
  background-color: #bd081c;
}
.shareon > .pinterest:before {
  background-image: url("icons/pinterest.svg");
}

.shareon > .pocket {
  background-color: #ef3f56;
}
.shareon > .pocket:before {
  background-image: url("icons/pocket.svg");
}

.shareon > .print:before {
  background-image: url("icons/print.svg");
}

.shareon > .reddit {
  background-color: #ff4500;
}
.shareon > .reddit:before {
  background-image: url("icons/reddit.svg");
}

.shareon > .teams {
  background-color: #6264a7;
}
.shareon > .teams:before {
  background-image: url("icons/teams.svg");
}

.shareon > .telegram {
  background-color: #26a5e4;
}
.shareon > .telegram:before {
  background-image: url("icons/telegram.svg");
}

.shareon > .tumblr {
  background-color: #36465d;
}
.shareon > .tumblr:before {
  background-image: url("icons/tumblr.svg");
}

.shareon > .twitter {
  background-color: #000;
}
.shareon > .twitter:before {
  background-image: url("icons/x.svg");
}

.shareon > .viber {
  background-color: #7360f2;
}
.shareon > .viber:before {
  background-image: url("icons/viber.svg");
}

.shareon > .vkontakte {
  background-color: #0077ff;
}
.shareon > .vkontakte:before {
  background-image: url("icons/vkontakte.svg");
}

.shareon > .web-share:before {
  background-image: url("icons/web-share.svg");
}

.shareon > .whatsapp {
  background-color: #25d366;
}
.shareon > .whatsapp:before {
  background-image: url("icons/whatsapp.svg");
}

/* 카피 토스트 추가 */
.copy-toast {
    position: fixed;
    bottom: 60px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: white;
    padding: 10px 20px;
    border-radius: 4px;
    z-index: 9999;
    animation: fadeInOut 2s ease-in-out;
}

@keyframes fadeInOut {
    0% { opacity: 0; transform: translate(-50%, 20px); }
    15% { opacity: 1; transform: translate(-50%, 0); }
    85% { opacity: 1; transform: translate(-50%, 0); }
    100% { opacity: 0; transform: translate(-50%, -20px); }
}
