﻿/* Mobile first (default) */

html,
body {
  width: 100%;
  min-height: 100%;
  overflow-x: hidden;
}

.term_page {
  width: 100%;
  box-sizing: border-box;
  padding: 44px 16px 72px;
  background-color: #ffffff;
}

.term_document {
  width: min(920px, 100%);
  margin: 0 auto;
  color: #1f2933;
}

.term_header {
  margin-bottom: 34px;
  padding-bottom: 20px;
  border-bottom: 1px solid #e6ebf0;
}

.term_header h1 {
  margin: 0;
  color: #111827;
  font-size: clamp(20px, 2vw, 25px);
  font-weight: 900;
  line-height: 1.25;
}

.term_section {
  padding: 24px 0;
  border-bottom: 1px solid #eef2f6;
}

.term_section h2 {
  margin: 0 0 12px;
  color: #182433;
  font-size: clamp(14px, 2.2vw, 18px);
  font-weight: 900;
  line-height: 1.35;
}

.term_section p,
.term_section li {
  color: #3f4d5d;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.8;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.term_section p {
  margin: 0 0 10px;
}

.term_section p:last-child {
  margin-bottom: 0;
}

.term_section ol {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 22px;
}

.term_section p + ol,
.term_section ol + p {
  margin-top: 10px;
}

.term_addendum {
  border-bottom: 0;
}

@media (max-width: 640px) {
  .term_page {
    padding: 30px 16px 54px;
  }

  .term_header {
    margin-bottom: 20px;
  }

  .term_section {
    padding: 20px 0;
  }

  .term_section p,
  .term_section li {
    font-size: 14px;
    line-height: 1.75;
  }
}

body {
  font-family: "Pretendard", "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", sans-serif;
  margin: 0;
  overflow-y: auto;

  /* background: linear-gradient(180deg, #20354c 0%, #274969 55%, #1c3148 100%); */
  background-attachment: fixed;
}

.site_toast_root {
  position: fixed;
  top: 17px;
  left: 50%;
  z-index: 3000;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: min(calc(100% - 40px), 420px);
  pointer-events: none;
  transform: translateX(-50%);
}

.site_toast {
  max-width: 100%;
  border-radius: 999px;
  padding: 11px 18px;
  background-color: rgba(0, 0, 0, 0.8);
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  opacity: 0;
  transform: translateY(-26px) scale(0.94);
  will-change: opacity, transform;
}

.site_toast.is_visible {
  opacity: 1;
  transform: translateY(0);
  animation: toast-drop-bounce 520ms cubic-bezier(0.2, 0.9, 0.24, 1.2) both;
}

.site_toast.is_hiding {
  animation: toast-pop-away 420ms cubic-bezier(0.34, -0.35, 0.68, 1) both;
}

@keyframes toast-drop-bounce {
  0% {
    opacity: 0;
    transform: translateY(-38px) scale(0.92);
  }
  58% {
    opacity: 1;
    transform: translateY(7px) scale(1.03);
  }
  78% {
    transform: translateY(-3px) scale(0.99);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes toast-pop-away {
  0% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  34% {
    opacity: 1;
    transform: translateY(8px) scale(1.03);
  }
  100% {
    opacity: 0;
    transform: translateY(-34px) scale(0.9);
  }
}

@media (prefers-reduced-motion: reduce) {
  .site_toast,
  .site_toast.is_visible,
  .site_toast.is_hiding {
    animation: none;
    transition: opacity 120ms ease;
    transform: none;
  }

  .site_toast.is_hiding {
    opacity: 0;
  }
}

input,
button,
select,
textarea {
  font-family: inherit;
}

textarea {
  overflow: hidden;
  resize: none;
}

.fw-100 {
  font-weight: 100;
}

.fw-200 {
  font-weight: 200;
}

.fw-300 {
  font-weight: 300;
}

.fw-400 {
  font-weight: 400;
}

.fw-500 {
  font-weight: 500;
}

.fw-600 {
  font-weight: 600;
}

.fw-700 {
  font-weight: 700;
}

.fw-800 {
  font-weight: 800;
}

.fw-900 {
  font-weight: 900;
}

.font_playwrite {
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
}

.site_header {
  width: 100%;
  background-color: #ffffff;
  box-sizing: border-box;
  padding: 0 16px;
}

.site_header_inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding: 12px 0 20px 0;
}

.site_title {
  margin: 0;
  color: #000;
  font-size: clamp(20px, 2.2vw, 26px);
  font-weight: 900;
  letter-spacing: 1.2px;
  line-height: 1.2;
  flex-shrink: 0;
}

.site_title_link {
  color: inherit;
  text-decoration: none;
  display: inline-block;
}

.site_title_link:visited {
  color: inherit;
}

.choice_color_pack {
  display: flex;
  gap: 10px;
  padding: 5px 0 0 3px;
}

.site_title_link:focus-visible {
  outline: 2px solid #7aaef2;
  outline-offset: 3px;
  border-radius: 4px;
}

.site_nav {
  order: 3;
  flex: 0 0 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 32px;
  padding: 0 0 0px 0;
}

.site_nav_link {
  color: #333333;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.site_nav_link:hover {
  color: #418fde;
}

.site_nav_link.is_active {
  color: #418fde;
}

.site_nav_link:focus-visible {
  outline: 2px solid #7aaef2;
  outline-offset: 3px;
  border-radius: 4px;
}

.timeline {
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  font-weight: 400;
  font-size: clamp(14px, 1.8vw, 22px);
  font-style: normal;
  color: #418fde;
  text-decoration: none;
  position: relative;
  padding-bottom: 4px;
  letter-spacing: normal;
}

.login_button {
  border: 1px solid #ddd;
  background-color: #ffffff;
  color: #000;
  border-radius: 999px;
  padding: 9px 18px;
  min-height: 38px;
  font-size: clamp(12px, 1.1vw, 15px);
  font-weight: 700;
  cursor: pointer;
}

.login_button:hover {
  border: 1px solid #ccc;

}

.login_button:active {
  transform: translateY(0);
}

.header_actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.create_timeline_button {
  border: 0;
  background-color: #418fde;
  color: #ffffff;
  border-radius: 999px;
  padding: 9px 16px;
  min-height: 38px;
  font-size: clamp(12px, 1vw, 14px);
  font-weight: 700;
  cursor: pointer;
}

.contribution_timeline_button {
  border: 0;
  background-color: #ffd43b;
  color: #000;
  border-radius: 999px;
  padding: 9px 16px;
  min-height: 38px;
  font-size: clamp(12px, 1vw, 14px);
  font-weight: 700;
  cursor: pointer;
}

.contribution_timeline_button:hover {
  background-color: #ffbf00;
}

.create_timeline_button:hover {
  background-color: #327ecb;
}

.timeline_view_comment_box {
  margin-top: 2px;
  border-top: 0px solid #e5e5e5;
  padding-top: 0px;
}

.feedback_page {
  min-height: 70vh;
  background-color: #ffffff;
}

.feedback_inner {
  width: min(100% - 40px, 720px);
  margin: 0 auto;
}

.feedback_hero {
  padding: 72px 0 24px;
}

.feedback_title {
  margin: 0;
  color: #1d1d1d;
  font-size: clamp(20px, 2.5vw, 23px);
  font-weight: 800;
  line-height: 1.05;
}

.feedback_title span {
  color: #418fde;
  font-weight: 400;
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
}

.feedback_desc {
  margin: 14px 0 0;
  color: #888;
  font-size: clamp(14px, 1.5vw, 16px);
  font-weight: 600;
  line-height: 1.2;
}

.feedback_comments {
  padding: 0px 0 80px;
}

.faq_page {
  min-height: 70vh;
  background-color: #ffffff;
}

.faq_inner {
  width: min(100% - 40px, 860px);
  margin: 0 auto;
  text-align: center;
}

.faq_hero {
  padding: 72px 0 24px;
}

.faq_title {
  margin: 0;
  color: #1d1d1d;
  font-size: clamp(24px, 2.7vw, 30px);
  font-weight: 700;
  line-height: 1.08;
}

.faq_title span {
  color: #418fde;
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  font-weight: 400;
}

.faq_desc {
  margin: 12px 0 0;
  color: #888888;
  font-size: clamp(14px, 1.5vw, 16px);
  font-weight: 600;
  line-height: 1.45;
  word-break: keep-all;
}

.faq_board {
  padding: 0 0 80px;
}

.faq_search_form {
  margin: 0;
}

.faq_search_box {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  background-color: #ffffff;
  padding: 0 7px 0 16px;
  box-sizing: border-box;
}

.faq_search_box i {
  flex: 0 0 auto;
  color: #8a98a8;
  font-size: 15px;
}

.faq_search_box input {
  flex: 1 1 auto;
  min-width: 0;
  height: 48px;
  border: 0;
  background: transparent;
  color: #1f2933;
  font-size: 15px;
  font-weight: 600;
  outline: none;
}

.faq_search_box input::placeholder {
  color: #a8b2bd;
  font-weight: 500;
}

.faq_search_box button,
.faq_write_submit,
.faq_write_button {
  border: 0;
  background-color: #418fde;
  color: #ffffff;
  cursor: pointer;
}

.faq_search_box button {
  flex: 0 0 auto;
  min-height: 38px;
  border-radius: 8px;
  padding: 0 16px;
  font-size: 13px;
  font-weight: 800;
}

.faq_search_box button:hover,
.faq_write_submit:hover,
.faq_write_button:hover {
  background-color: #327ecb;
}

.faq_category_tabs {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 18px 0 16px;
  overflow-x: auto;
  padding-bottom: 2px;
}

.faq_category_tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border: 1px solid #d8e1ea;
  border-radius: 999px;
  padding: 0 14px;
  background-color: #ffffff;
  color: #4d5d6f;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}

.faq_category_tab:hover,
.faq_category_tab.is_active {
  border-color: #418fde;
  background-color: #f3f8ff;
  color: #327ecb;
}

.faq_list {
  border-top: 1px solid #e5eaf0;
}

.faq_item {
  border-bottom: 1px solid #e5eaf0;
}

.faq_question {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 18px;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 62px;
  border: 0;
  background-color: #ffffff;
  color: #1d1d1d;
  padding: 0;
  text-align: left;
  cursor: pointer;
}

.faq_question:hover .faq_question_text {
  color: #327ecb;
}

.faq_question_text {
  min-width: 0;
  font-size: clamp(15px, 1.6vw, 17px);
  font-weight: 700;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.faq_question_meta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  border-radius: 5px;
  background-color: #eef2f6;
  color: #607080;
  padding: 0 8px;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.faq_question i {
  color: #9aa6b2;
  font-size: 13px;
  transition: transform 160ms ease;
}

.faq_question[aria-expanded="true"] i {
  transform: rotate(180deg);
}

.faq_answer {
  padding: 0 0 24px;
}

.faq_answer_content {
  color: #3f4d5d;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.75;
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-align: left;
}

.faq_answer_content p:first-child {
  margin-top: 0;
}

.faq_answer_content p:last-child {
  margin-bottom: 0;
}

.faq_answer_content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

.faq_empty {
  margin: 0;
  border-bottom: 1px solid #e5eaf0;
  padding: 34px 0;
  color: #8a96a3;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
}

.faq_board_footer {
  display: grid;
  gap: 14px;
  margin-top: 24px;
}

.faq_pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.faq_page_button {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  height: 34px;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  background-color: #ffffff;
  color: #334455;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  box-sizing: border-box;
}

.faq_page_button:hover,
.faq_page_button.is_active {
  border-color: #418fde;
  background-color: #418fde;
  color: #ffffff;
}

.faq_write_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  justify-self: end;
  min-height: 40px;
  border-radius: 999px;
  padding: 0 16px;
  font-size: 14px;
  font-weight: 800;
}

.faq_contact_box {
  display: grid;
  justify-items: center;
  gap: 8px;
  margin-top: 18px;
  padding-top: 28px;
  text-align: center;
}

.faq_contact_title {
  margin: 0;
  color: #1d1d1d;
  font-size: clamp(16px, 1.8vw, 18px);
  font-weight: 900;
  line-height: 1.35;
  word-break: keep-all;
}

.faq_contact_desc {
  margin: 0;
  color: #7b8794;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  word-break: keep-all;
}

.faq_contact_actions {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.faq_contact_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  border: 0;
  border-radius: 999px;
  padding: 0 16px;
  background-color: #418fde;
  color: #ffffff;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  box-sizing: border-box;
}

.faq_contact_button:hover {
  background-color: #327ecb;
}

.faq_contact_button.is_kakao {
  background-color: #fee500;
  color: #3c1e1e;
}

.faq_contact_button.is_kakao:hover {
  background-color: #f4dc00;
}

.faq_admin_actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
}

.faq_admin_actions form {
  margin: 0;
}

.faq_admin_link {
  border: 0;
  background: transparent;
  color: #327ecb;
  padding: 0;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.faq_admin_link.is_danger {
  color: #d64545;
}

.faq_write_modal {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: grid;
  place-items: center;
  padding: 20px;
  box-sizing: border-box;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: opacity 140ms ease, visibility 140ms ease;
}

.faq_write_modal.is_open {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}

.faq_write_backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.34);
}

.faq_write_dialog {
  position: relative;
  z-index: 1;
  width: min(920px, 100%);
  max-height: min(86vh, 820px);
  overflow-y: auto;
  border-radius: 14px;
  background-color: #ffffff;
  padding: 24px;
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.18);
  box-sizing: border-box;
}

.faq_write_header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.faq_write_header h3 {
  margin: 0;
  color: #181818;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.25;
}

.faq_write_close {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 0;
  background: transparent;
  color: #444444;
  font-size: 18px;
  cursor: pointer;
}

.faq_write_form {
  display: grid;
  gap: 14px;
}

.faq_write_field {
  display: grid;
  gap: 7px;
}

.faq_write_field label {
  color: #2f3b4a;
  font-size: 13px;
  font-weight: 900;
}

.faq_write_field input,
.faq_write_field select,
.faq_write_field textarea {
  width: 100%;
  min-height: 42px;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  background-color: #ffffff;
  color: #1f2933;
  font-size: 14px;
  font-weight: 600;
  padding: 0 12px;
  box-sizing: border-box;
}

.faq_write_field textarea {
  min-height: 220px;
  padding: 12px;
  resize: vertical;
  overflow: auto;
}

.faq_write_field input:focus,
.faq_write_field select:focus,
.faq_write_field textarea:focus {
  border-color: #418fde;
  box-shadow: 0 0 0 3px rgba(65, 143, 222, 0.14);
  outline: none;
}

.faq_editor_box {
  min-width: 0;
}

.faq_editor_box iframe,
.faq_editor_box table {
  max-width: 100%;
}

.faq_write_actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 4px;
}

.faq_write_cancel,
.faq_write_submit {
  min-height: 40px;
  border-radius: 999px;
  padding: 0 16px;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

.faq_write_cancel {
  border: 1px solid #c7ced7;
  background-color: #ffffff;
  color: #495769;
}

.faq_write_cancel:hover {
  background-color: #f7f9fc;
}

.feedback_comment_list_title {
  margin-top: 30px;
}

.feedback_timekeeper_badge {
  display: inline-flex;
  align-items: center;
  min-height: 14px;
  border-radius: 6px;
  background-color: #418fde;
  color: #ffffff;
  padding: 2px 5px 3px 5px;
  font-size: clamp(11px, 1.2vw, 12px);
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
}

.timeline_view_comment_title {
  margin: 0 0 14px;
  color: #1d1d1d;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.25;
}

.timeline_view_comment_form {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.timeline_view_comment_avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
}

.timeline_view_comment_input {
  flex: 1;
  min-width: 0;
  resize: none;
  border: 1px solid #dddddd;
  border-radius: 8px;
  background-color: #ffffff;
  padding: 10px 12px;
  color: #333333;
  font-size: 14px;
  line-height: 1.5;
  box-sizing: border-box;
}

.timeline_view_comment_input:focus {
  outline: none;
  border-color: #6ea5de;
  box-shadow: 0 0 0 3px rgba(65, 143, 222, 0.16);
}

.timeline_view_comment_submit_row {
  display: flex;
  justify-content: flex-end;
  margin-top: 8px;
}

.timeline_view_comment_submit {
  min-height: 34px;
  border: 0;
  border-radius: 999px;
  background-color: #418fde;
  color: #ffffff;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.timeline_view_comment_submit:hover {
  background-color: #327ecb;
}

.timeline_view_comment_submit:disabled,
.timeline_view_reply_submit:disabled,
.timeline_event_modal_comment_submit:disabled {
  cursor: default;
  opacity: 0.45;
}

.timeline_view_comment_list {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 25px;
}

.timeline_view_comment_empty {
  margin: 0;
  color: #9aa5b1;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.5;
}

.timeline_view_comment_item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.timeline_view_comment_body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.timeline_view_comment_head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.timeline_view_comment_name {
  color: #888888;
  font-size: clamp(12px, 1.2vw, 14px);
  font-weight: 800;
}

.timeline_view_comment_date {
  color: #bdbdbd;
  font-size: 12px;
  font-weight: 400;
}

.timeline_view_comment_event {
  display: flex;
  align-items: center;
  gap: 4px;
  max-width: 100%;
  border: 1px solid #dfe6ee;
  border-radius: 8px;
  padding: 5px;
  background-color: #f8fbff;
  color: inherit;
  text-decoration: none;
  box-sizing: border-box;
  min-height: 42px;
}

.timeline_view_comment_event_thumb {
  width: 30px;
  aspect-ratio: 1 / 1;
  border-radius: 5px;
  object-fit: cover;
  background-color: #eeeeee;
  flex: 0 0 auto;
}

.timeline_view_comment_event_info {
  display: block;
  min-width: 0;
  line-height: 1.35;
  margin-left: 6px;
}

.timeline_view_comment_event_date {
  display: inline;
  color: #1d1d1d;
  font-size: 13px;
  font-weight: 800;
  line-height: inherit;
}

.timeline_view_comment_event_title {
  display: inline;
  margin-left: 8px;
  color: #4f5f70;
  font-size: 13px;
  font-weight: 600;
  line-height: inherit;
  white-space: normal;
}

.timeline_view_comment_text {
  margin: 0;
  color: #555555;
  font-size: clamp(13px, 1.2vw, 15px);
  font-weight: 500;
  line-height: 1.5;
}

.timeline_view_comment_item.is_deleted {
  color: #a0a7b0;
  
}

.timeline_view_comment_meta {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 9px;
  color: #bdbdbd;
  font-size: 12px;
  font-weight: 400;
}

.timeline_view_comment_meta button {
  border: 0;
  background: transparent;
  color: #c0c0c0;
  padding: 0;
  font-size: 12px;
  font-weight: 400;
  cursor: pointer;
}

.timeline_view_reply_form {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 2px;
}

.timeline_view_edit_form {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 2px;
}

.timeline_view_reply_form[hidden],
.timeline_view_edit_form[hidden] {
  display: none;
}

.timeline_view_reply_input {
  width: 100%;
  min-width: 0;
  resize: none;
  border: 1px solid #dddddd;
  border-radius: 8px;
  background-color: #ffffff;
  padding: 10px 12px;
  color: #333333;
  font-size: 14px;
  line-height: 1.5;
  box-sizing: border-box;
}

.timeline_view_reply_input:focus {
  outline: none;
  border-color: #6ea5de;
  box-shadow: 0 0 0 3px rgba(65, 143, 222, 0.16);
}

.timeline_view_reply_submit_row {
  display: flex;
  justify-content: flex-end;
}

.timeline_view_reply_submit {
  min-height: 32px;
  border: 0;
  border-radius: 999px;
  background-color: #418fde;
  color: #ffffff;
  padding: 7px 13px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.timeline_view_reply_submit:hover {
  background-color: #327ecb;
}

.timeline_view_reply_item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding-top: 2px;
  background-color: #f9f9f9;
  padding:15px;
  border-radius: 8px;
  margin-top: 8px;
}

.site_footer {
  width: 100%;
  margin-top: 56px;
  background-color: #183153;
  color: rgba(255, 255, 255, 0.78);
}

.site_footer_inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 50px 16px 50px;
  box-sizing: border-box;
}

.site_footer_top {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px 28px;
  margin-bottom: 20px;
}

.site_footer_logo {
  color: #ffffff;
  font-size: 16px;
  font-weight: 700;
}

.site_footer_logo span {
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  font-weight: 400;
}

.site_footer_link {
  color: rgba(255, 255, 255, 0.82);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

.site_footer_feedback_btn {
  border: 0;
  padding: 0;
  background-color: transparent;
  font-family: inherit;
  cursor: pointer;
}

.site_footer_link:hover {
  color: #ffffff;
}

.site_footer_info {
  margin: 0;
  color: rgba(255, 255, 255, 0.68);
  font-size: clamp(11px, 1.2vw, 13px);
  font-style: normal;
  font-weight: 400;
  line-height: 1.2;
}

.site_footer_info_pack {
  display: flex;
  gap: 20px;
}

.site_footer_info strong {
  display: inline-block;
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 700;
}

.site_footer_copy {
  margin: 10px 0 0;
  color: rgba(255, 255, 255, 0.3);
  font-size: clamp(10px, 1.2vw, 12px);
  font-weight: 500;
  letter-spacing: 0.2px;
}

.account_menu {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #d8d8d8;
  background-color: #ffffff;
  border-radius: 999px;
  padding: 5px 10px 5px 6px;
  min-height: 38px;
  cursor: pointer;
}

.account_avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: block;
  object-fit: cover;
}

.account_menu i {
  font-size: 14px;
  color: #333333;
}

.account_menu:hover {
  border-color: #c3c3c3;
}

.account_dropdown {
  position: relative;
}

.account_menu .fa-angle-down {
  transition: transform 160ms ease;
}

.account_dropdown.open .account_menu .fa-angle-down {
  transform: rotate(180deg);
}

.account_dropdown_menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 190px;
  background-color: #ffffff;
  border: 1px solid #dadada;
  border-radius: 16px;
  padding: 8px;
  display: none;
  gap: 2px;
  z-index: 100;
}

.account_dropdown.open .account_dropdown_menu {
  display: grid;
}

.account_dropdown_menu[hidden] {
  display: none;
}

body.modal_open {
  overflow: hidden;
}

.login_modal {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 300;
}

.leave_modal {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 300;
}

.login_modal[hidden] {
  display: none;
}

.leave_modal[hidden] {
  display: none;
}

.login_modal_backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.3);
}

.leave_modal_backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.3);
}

.login_modal_dialog {
  position: relative;
  z-index: 1;
  width: min(92vw, 350px);
  background-color: #ffffff;
  border-radius: 14px;
  padding: 28px;
  box-sizing: border-box;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.16);
}

.leave_modal_dialog {
  position: relative;
  z-index: 1;
  width: min(92vw, 350px);
  background-color: #ffffff;
  border-radius: 14px;
  padding: 28px;
  box-sizing: border-box;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.16);
}

.signup_modal_dialog {
  position: relative;
  z-index: 1;
  width: min(92vw, 350px);
  background-color: #ffffff;
  border-radius: 14px;
  padding: 28px;
  box-sizing: border-box;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.16);
}

.password_modal_dialog {
  position: relative;
  z-index: 1;
  width: min(92vw, 350px);
  background-color: #ffffff;
  border-radius: 14px;
  padding: 28px;
  box-sizing: border-box;
  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.16);
}

.login_modal_header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 14px;
}

.login_modal_header h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  color: #181818;
}

.leave_modal_header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 14px;
}

.leave_modal_header h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  color: #181818;
}

.leave_modal_header h2 span {
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  font-weight: 400;
}

.signup_modal_header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 14px;
}

.password_modal_header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 14px;
}

.signup_modal_header h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  color: #181818;
}

.password_modal_header h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  color: #181818;
}

.login_modal_close {
  border: 0;
  background: transparent;
  font-size: 18px;
  font-weight: 700;
  color: #444;
  cursor: pointer;
  padding: 4px;
  line-height: 1;
  margin-top: 1px;
}

.leave_modal_close {
  border: 0;
  background: transparent;
  font-size: 18px;
  font-weight: 700;
  color: #444;
  cursor: pointer;
  padding: 4px;
  line-height: 1;
  margin-top: 1px;
}

.signup_modal_close {
  border: 0;
  background: transparent;
  font-size: 18px;
  font-weight: 700;
  color: #444;
  cursor: pointer;
  padding: 4px;
  line-height: 1;
  margin-top: 1px;
}

.password_modal_close {
  border: 0;
  background: transparent;
  font-size: 18px;
  font-weight: 700;
  color: #444;
  cursor: pointer;
  padding: 4px;
  line-height: 1;
  margin-top: 1px;
}

.login_modal_form {
  display: grid;
  gap: 12px;
}

.leave_modal_form {
  display: grid;
  gap: 12px;
}

.leave_password_box input {
  padding-right: 8px;
}

.leave_submit_button {
  min-height: 44px;
  border: 0;
  border-radius: 8px;
  background-color: #fc5050;
  color: #ffffff;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

.leave_submit_button:hover {
  background-color: #e24646;
}

.signup_modal_form {
  display: grid;
  gap: 12px;
}

.password_modal_form {
  display: grid;
  gap: 12px;
}

.login_subtitle {
  font-size: 14px;
  font-weight: 500;
  color: #888;
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  margin: 2px 0 5px 0;
}

.signup_subtitle {
  font-size: 14px;
  font-weight: 500;
  color: #888;
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  margin: 2px 0 5px 0;
}

.password_subtitle {
  font-size: 14px;
  font-weight: 500;
  color: #888;
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  margin: 2px 0 5px 0;
}

.sr_only,
.sound_only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.login_field {
  position: relative;
}

.signup_field {
  position: relative;
}

.password_field {
  position: relative;
}

.login_input_box {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 45px;
  border: 1px solid #d6d6d6;
  border-radius: 8px;
  background-color: #fff;
  padding: 0 12px;
  box-sizing: border-box;
  color: #8d8d8d;
}

.signup_input_box {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 45px;
  border: 1px solid #d6d6d6;
  border-radius: 8px;
  background-color: #fff;
  padding: 0 12px;
  box-sizing: border-box;
  color: #8d8d8d;
}

.password_input_box {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: 45px;
  border: 1px solid #d6d6d6;
  border-radius: 8px;
  background-color: #fff;
  padding: 0 12px;
  box-sizing: border-box;
  color: #8d8d8d;
}

.login_input_box.is_autofilled,
.signup_input_box.is_autofilled,
.password_input_box.is_autofilled {
  background-color: #eaf1ff;
}

.login_input_icon {
  font-size: 14px;
  color: #8d8d8d;
  flex: 0 0 auto;
}

.signup_input_icon {
  font-size: 14px;
  color: #8d8d8d;
  flex: 0 0 auto;
}

.password_input_icon {
  font-size: 14px;
  color: #8d8d8d;
  flex: 0 0 auto;
}

.login_input_box input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: 0;
  background: transparent;
  padding: 0;
  font-size: 14px;
  color: #222;
  outline: none;
}

.signup_input_box input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: 0;
  background: transparent;
  padding: 0;
  font-size: 14px;
  color: #222;
  outline: none;
}

.password_input_box input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: 0;
  background: transparent;
  padding: 0;
  font-size: 14px;
  color: #222;
  outline: none;
}

.login_input_box input:-webkit-autofill,
.login_input_box input:-webkit-autofill:hover,
.login_input_box input:-webkit-autofill:focus,
.signup_input_box input:-webkit-autofill,
.signup_input_box input:-webkit-autofill:hover,
.signup_input_box input:-webkit-autofill:focus,
.password_input_box input:-webkit-autofill,
.password_input_box input:-webkit-autofill:hover,
.password_input_box input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px #eaf1ff inset;
  box-shadow: 0 0 0 1000px #eaf1ff inset;
  transition: background-color 9999s ease-out;
}

.login_input_box input::placeholder {
  color: #8d8d8d;
}

.signup_input_box input::placeholder {
  color: #8d8d8d;
}

.password_input_box input::placeholder {
  color: #8d8d8d;
}

.login_password_box input {
  padding-right: 8px;
}

.login_field_error {
  margin: 10px 0 0;
  color: #fc5050;
  font-size: clamp(11px, 1vw, 13px);
  font-weight: 600;
  line-height: 1.35;
}

.login_field_error i {
  margin-right: 2px;
  font-size: 10px;
}

.login_field.has_error .login_input_box {
  border-color: #fc5050;
}

.signup_password_box input {
  padding-right: 8px;
}

.signup_field_error {
  margin: 10px 0 0;
  color: #fc5050;
  font-size: clamp(11px, 1vw, 13px);
  font-weight: 600;
  line-height: 1.35;
}

.signup_field_error i {
  margin-right: 2px;
  font-size: 10px;
}

.signup_field.has_error .signup_input_box {
  border-color: #fc5050;
}

.password_field_error {
  margin: 10px 0 0;
  color: #fc5050;
  font-size: clamp(11px, 1vw, 13px);
  font-weight: 600;
  line-height: 1.35;
}

.password_field_error i {
  margin-right: 2px;
  font-size: 10px;
}

.password_field.has_error .password_input_box {
  border-color: #fc5050;
}

.signup_password_toggle_button {
  border: 0;
  background: transparent;
  padding: 0;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #9a9a9a;
  flex: 0 0 auto;
}

.signup_password_toggle_button .signup_password_toggle_show {
  display: none;
}

.signup_password_toggle_button.is_visible .signup_password_toggle_hide {
  display: none;
}

.signup_password_toggle_button.is_visible .signup_password_toggle_show {
  display: inline-block;
}

.signup_submit_button {
  height: 45px;
  border: 0;
  border-radius: 8px;
  background-color: #418fde;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.signup_submit_button:hover {
  background-color: #327ecb;
}

.signup_divider {
  width: 100%;
  height: 1px;
  border: 0;
  background-color: #e7e7e7;
  margin: 10px 0 4px;
}

.signup_login_button {
  height: 45px;
  border: 1px solid #d6d6d6;
  border-radius: 8px;
  background-color: #fff;
  color: #212121;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.signup_login_button:hover {
  background-color: #f8f8f8;
}

.password_submit_button {
  height: 45px;
  border: 0;
  border-radius: 8px;
  background-color: #418fde;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.password_submit_button:hover {
  background-color: #327ecb;
}

.password_divider {
  width: 100%;
  height: 1px;
  border: 0;
  background-color: #e7e7e7;
  margin: 10px 0 4px;
}

.password_login_button {
  height: 45px;
  border: 1px solid #d6d6d6;
  border-radius: 8px;
  background-color: #fff;
  color: #212121;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.password_login_button:hover {
  background-color: #f8f8f8;
}

.password_modal {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 300;
}

.password_modal[hidden] {
  display: none;
}

.password_modal_backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.3);
}

.password_toggle_button {
  border: 0;
  background: transparent;
  padding: 0;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #9a9a9a;
  flex: 0 0 auto;
}

.password_toggle_button .password_toggle_show {
  display: none;
}

.password_toggle_button.is_visible .password_toggle_hide {
  display: none;
}

.password_toggle_button.is_visible .password_toggle_show {
  display: inline-block;
}

.keep_login_row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
  cursor: pointer;
}

.keep_login_row input[type="checkbox"] {
  margin: 0;
}

.keep_login_row span {
  font-size: 14px;
  font-weight: 500;
  color: #2d2d2d;
}

.login_submit_button {
  height: 45px;
  border: 0;
  border-radius: 8px;
  background-color: #418fde;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.login_submit_button:hover {
  background-color: #327ecb;
}

.login_help_links {
  margin: 2px 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 12px;
  font-weight: 500;
}

.login_help_links a {
  color: #2d2d2d;
  text-decoration: none;
}

.login_help_links a:hover {
  text-decoration: underline;
}

.login_help_links span {
  color: #888;
}

.login_divider {
  width: 100%;
  height: 1px;
  border: 0;
  background-color: #e7e7e7;
  margin: 10px 0 4px;
}

.social_login_group {
  display: grid;
  gap: 8px;
}

.social_login_button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  height: 45px;
  border: 1px solid #d6d6d6;
  border-radius: 8px;
  background-color: #fff;
  color: #212121;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.social_login_button i {
  width: 16px;
  text-align: center;
  font-size: 15px;
}

.social_login_icon {
  width: 18px;
  height: 18px;
  object-fit: contain;
}

.social_login_button:hover {
  background-color: #f8f8f8;
}

.social_login_button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.social_login_button.is_google {
  border-color: #dadce0;
  color: #202124;
}

.social_login_button.is_kakao {
  border-color: #fee500;
  background-color: #fee500;
  color: #3c1e1e;
}

.social_login_button.is_kakao:hover {
  background-color: #f4dc00;
}

.social_login_button.is_naver {
  border-color: #03c75a;
  background-color: #03c75a;
  color: #fff;
}

.social_login_button.is_naver:hover {
  background-color: #02b351;
}

.signup_modal {
  position: fixed;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 300;
}

.signup_modal[hidden] {
  display: none;
}

.signup_modal_backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.3);
}

.account_dropdown_item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  color: #1c1c1c;
  text-decoration: none;
  font-size: clamp(13px, 1.1vw, 15px);
  font-weight: 600;
  line-height: 1.3;
}

.account_dropdown_item i {
  width: 16px;
  text-align: center;
  font-size: clamp(13px, 1.1vw, 15px);
  color: #3b3b3b;
}

.account_dropdown_item:hover {
  background-color: #f5f7fa;
}

.mypage_page {
  width: 100%;
  max-width: 1200px;
  min-height: 520px;
  margin: 0 auto;
  padding: 44px 0px 70px;
  box-sizing: border-box;
}

.mypage_layout {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  gap: 34px;
  align-items: start;
}

.mypage_sidebar {
  min-width: 0;
}

.mypage_profile_card {
  position: relative;
  min-width: 0;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  background-color: #ffffff;
  padding: 26px 20px 18px;
  box-sizing: border-box;
}

.mypage_profile_settings {
  position: absolute;
  top: 14px;
  right: 14px;
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid #d8e1ea;
  border-radius: 50%;
  background-color: #ffffff;
  color: #607080;
  font-size: 15px;
  cursor: pointer;
}

.mypage_profile_settings:hover {
  background-color: #f8fbff;
  color: #327ecb;
}

.mypage_profile_overview {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.mypage_profile_avatar {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  object-fit: cover;
  background-color: #eef2f6;
}

.mypage_profile_name {
  margin: 14px 0 0;
  color: #1d1d1d;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.25;
}

.mypage_profile_email {
  margin: 6px 0 0;
  color: #8a96a3;
  font-size: clamp(13px, 1.1vw, 16px);
  font-weight: 500;
  line-height: 1.3;
}

.mypage_profile_email .mypage_profile_badge {
  margin-left: 6px;
  vertical-align: middle;
}

.mypage_profile_badges {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
}

.mypage_profile_badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 0px 8px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  cursor: pointer;
}

.mypage_profile_badge.is_free {
  background-color: #eef2f6;
  color: #607080;
}

.mypage_profile_badge.is_standard {
  background-color: #eef2f6;
  color: #607080;
}

.mypage_profile_badge.is_pro {
  background-color: #d7b583;
  color: #4a391f;
}

.mypage_profile_divider {
  width: 100%;
  height: 1px;
  border: 0;
  background-color: #e8edf2;
  margin: 20px 0 12px;
}

.mypage_profile_nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.mypage_profile_nav_item {
  display: flex;
  align-items: center;
  min-height: 42px;
  border-radius: 8px;
  padding: 10px 12px;
  color: #333333;
  font-size: clamp(14px, 2vw, 16px);
  font-weight: 700;
  text-decoration: none;
  box-sizing: border-box;
}

.mypage_profile_nav_item:hover,
.mypage_profile_nav_item.is_active {
  background-color: #f3f8ff;
  color: #327ecb;
}

.mypage_content {
  min-width: 0;
  min-height: 420px;
  text-align: center;
  width: 100%;
}

.mypage_empty_state {
  text-align: center;
  width: 100%;
}

.mypage_timeline_grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  padding: 0;
  text-align: left;
}

.mypage_empty_message{
  color: #8a96a3;
  font-size: clamp(14px, 2vw, 16px);
  font-weight: 500;
  padding: 0px 0 30px 0;
}

.no_contents{
  margin: 30px 0 10px 0;
  font-size: clamp(16px, 2vw, 25px);
  color: #8a96a3;
  display:block;
}

.mypage_layout {
  display: flex;
  flex-direction: column;
  gap: 24px;
  text-align: center;
}

.mypage_profile_card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  width: 100%;
  border: 0;
  border-radius: 0;
  padding: 0;
  background-color: transparent;
  text-align: center;
  box-shadow: none;
}

.mypage_profile_avatar {
  width: 84px;
  height: 84px;
}

.mypage_profile_info {
  min-width: 0;
  width: 100%;
  text-align: center;
}

.mypage_profile_name_row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 0;
}

.mypage_profile_name {
  margin: 0;
  font-size: 24px;
}

.mypage_profile_settings {
  position: static;
  flex: 0 0 auto;
}

.mypage_profile_email {
  margin-top: 6px;
  text-align: center;
}

.mypage_profile_nav {
  flex-direction: row;
  justify-content: center;
  width: 100%;
  gap: 20px;
  border-bottom: 1px solid #e5eaf0;
}

.mypage_profile_nav_item {
  min-height: 44px;
  border-radius: 0;
  padding: 10px 4px 12px;
  border-bottom: 2px solid transparent;
  color: #777777;
}

.mypage_profile_nav_item:hover,
.mypage_profile_nav_item.is_active {
  background-color: transparent;
  border-bottom-color: #327ecb;
  color: #327ecb;
}

.myinfo_form {
  flex: none;
  width: 500px;
  max-width: 500px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
  text-align: left;
}

.myplans_content {
  display: flex;
  justify-content: center;
}

.myplans_badge_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  width: min(100%, 760px);
}

.myplans_badge_card {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  background-color: #ffffff;
  padding: 28px 28px;
  box-sizing: border-box;
  text-align: center;
}

.myplans_badge_card.is_featured {
  border-color: #418fde;
}

.myplans_badge_tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  border-radius: 5px;
  padding: 0 8px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

.myplans_badge_tag.is_traveler {
  background-color: #eef2f6;
  color: #607080;
}

.myplans_badge_tag.is_keeper {
  background-color: #d7b583;
  color: #4a391f;
  font-weight: 800;
}

.myplans_badge_image {
  display: block;
  width: 124px;
  height: 180px;
  object-fit: contain;
  margin: 18px 0 16px;
}

.myplans_badge_title {
  margin: 0;
  color: #1d1d1d;
  font-size: 22px;
  font-weight: 900;
  line-height: 1.25;
}

.myplans_badge_desc {
  min-height: 42px;
  margin: 10px 0 18px;
  color: #6d7885;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.45;
  word-break: keep-all;
}

.myplans_action_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 200px;
  min-height: 44px;
  border: 0;
  border-radius: 999px;
  padding: 0 16px;
  box-sizing: border-box;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}

.myplans_action_button.is_primary {
  background-color: #418fde;
  color: #ffffff;
}

.myplans_action_button.is_primary:hover {
  background-color: #327ecb;
}

.myplans_action_button.is_secondary {
  border: 1px solid #d8e1ea;
  background-color: #ffffff;
  color: #263547;
  width: 150px;
}

.myplans_action_button.is_secondary:hover {
  background-color: #f8fbff;
  color: #327ecb;
}

.myplans_action_button:disabled {
  color: #949595;
  cursor: default;
}

.myplans_action_button:disabled:hover {
  background-color: #ffffff;
  color: #949595;
}

.myplans_keeper_actions {
  display: flex;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 10px;
  width: 100%;
}

.myplans_keeper_actions .myplans_action_button {
  width: 150px;
  padding: 0 12px;
}

.myplans_payments_modal[hidden] {
  display: none;
}

.myplans_payments_modal {
  position: fixed;
  inset: 0;
  z-index: 10020;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  box-sizing: border-box;
}

.myplans_payments_modal_backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(15, 23, 42, 0.48);
}

.myplans_payments_modal_dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 520px);
  border-radius: 8px;
  background-color: #ffffff;
  padding: 30px;
  box-sizing: border-box;
  box-shadow: 0 18px 54px rgba(15, 23, 42, 0.22);
}

.myplans_payments_modal_close {
  position: absolute;
  top: 14px;
  right: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background-color: #f3f6f9;
  color: #52606f;
  cursor: pointer;
}

.myplans_payments_modal_kicker {
  margin: 0 0 20px;
  color: #000;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.2;
}

.myplans_payments_modal_kicker span{
  color: #418fde;
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  font-weight: 400;
}

.myplans_payments_modal_title {
  margin: 0 0 22px;
  color: #6d7885;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
}

.myplans_payment_history_item {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.myplans_payment_history_main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  padding: 0 14px;
  box-sizing: border-box;
  color: #263547;
  font-size: 14px;
  font-weight: 800;
}

.myplans_payment_method_tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 24px;
  border-radius: 5px;
  background-color: #eef2f6;
  color: #52606f;
  padding: 0 8px;
  box-sizing: border-box;
  font-size: 12px;
  font-weight: 900;
}

.myplans_payment_history_actions {
  display: flex;
  gap: 10px;
}

.myplans_payment_cancel_button,
.myplans_payment_receipt_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  min-height: 42px;
  border-radius: 999px;
  padding: 0 14px;
  box-sizing: border-box;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}

.myplans_payment_cancel_button {
  border: 1px solid #e5484d;
  background-color: #e5484d;
  color: #ffffff;
}

.myplans_payment_cancel_button:disabled {
  border-color: #f1c3c5;
  background-color: #f8dada;
  color: #b16468;
  cursor: default;
}

.myplans_payment_receipt_button {
  border: 1px solid #d8e1ea;
  background-color: #ffffff;
  color: #263547;
}

.myplans_payment_receipt_button:disabled {
  color: #949595;
  cursor: default;
}

.myplans_payment_notice {
  margin: 0;
  color: #6d7885;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.5;
  word-break: keep-all;
}

.myplans_payment_empty {
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  padding: 22px 16px;
  color: #6d7885;
  font-size: 14px;
  font-weight: 800;
  text-align: center;
}

.myplans_payment_empty p {
  margin: 0;
}

.mybadge_content {
  text-align: center;
}

.mybadge_grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  width: 100%;
}



.mybadge_card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
  min-width: 0;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  background-color: #ffffff;
  padding: 30px 20px;
  box-sizing: border-box;
  text-align: center;
}

.mybadge_card[hidden] {
  display: none;
}



.mybadge_tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  border-radius: 5px;
  background-color: #eef2f6;
  color: #607080;
  padding: 0 8px;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

.mybadge_image {
  display: block;
  width: 120px;
  border-radius: 8px;
  filter: grayscale(1);
  object-fit: cover;
}

.mybadge_card.is_earned .mybadge_image {
  filter: none;
}

.mybadge_body {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.mybadge_title {
  margin: 0;
  color: #1d1d1d;
  font-size: clamp(17px, 1.5vw, 20px);
  font-weight: 900;
  line-height: 1.3;
}

.mybadge_desc {
  margin: 0;
  color: #6d7885;
  font-size: clamp(14px, 1vw, 16px);
  font-weight: 700;
  line-height: 1.45;
  word-break: keep-all;
}

.mybadge_count {
  color: #999999;
  font-size: clamp(12px, 1.5vw, 14px);
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
  border: 1px solid #d8e1ea;
  border-radius: 999px;
  padding: 11px 20px;
}

@media (max-width: 640px) {
  .myplans_badge_grid {
    grid-template-columns: 1fr;
  }

  .mybadge_grid {
    grid-template-columns: 1fr;
  }

  .mybadge_card {
    padding: 18px 16px;
  }

  .mybadge_image {
    width: 96px;
    height: 96px;
  }

  .myplans_keeper_actions {
    flex-wrap: wrap;
  }

  .myplans_keeper_actions .myplans_action_button {
    width: 150px;
  }

  .myplans_payments_modal {
    padding: 14px;
  }

  .myplans_payments_modal_dialog {
    padding: 26px 18px 20px;
  }

  .myplans_payment_history_main {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .myplans_payment_history_main span:last-child {
    grid-column: 1 / -1;
    justify-self: end;
  }
}

.myinfo_content {
  display: flex;
  justify-content: center;
  width: 100%;
}

.myinfo_field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.myinfo_field label,
.myinfo_label {
  color: #2f3b4a;
  font-size: 13px;
  font-weight: 800;
}

.myinfo_input_box {
  width: 100%;
  box-sizing: border-box;
}

.myinfo_input_box input:disabled {
  background-color: #f5f7fa;
}

.myinfo_input_box.is_readonly,
.myinfo_input_box input[readonly] {
  background-color: #f5f7fa;
}

.signup_input_error {
  display: none;
  margin: 0;
  color: #fc5050;
  font-size: clamp(11px, 1vw, 13px);
  font-weight: 600;
  line-height: 1.35;
}

.signup_input_error.is_visible {
  display: block;
}

.myinfo_profile_upload_row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  align-items: stretch;
  width: 100%;
}

.myinfo_profile_upload_row.has_image {
  grid-template-columns: 64px 1fr;
}

.myinfo_profile_upload {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 40px;
  border: 2px dashed #bfd3e8;
  border-radius: 6px;
  background: #f5faff;
  color: #4b6887;
  padding: 12px;
  text-align: center;
  font-size: 13px;
  font-weight: 600;
  box-sizing: border-box;
  cursor: pointer;
  order: 1;
  transition: border-color 140ms ease, background-color 140ms ease;
}

.myinfo_profile_upload:hover,
.myinfo_profile_upload.dragover {
  border-color: #6ea5de;
  background: #edf6ff;
}

.myinfo_profile_upload_row.has_image .myinfo_profile_upload {
  min-height: 66px;
  height: 66px;
}

.myinfo_profile_thumb_list {
  display: none;
  order: 0;
}

.myinfo_profile_thumb_list.has_image {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.myinfo_profile_thumb_item {
  position: relative;
  width: 64px;
  height: 64px;
  overflow: hidden;
  border-radius: 8px;
  background: #f5f7fa;
  flex: 0 0 64px;
  cursor: pointer;
}

.myinfo_profile_thumb_img {
  display: block;
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 8px;
  transition: filter 160ms ease;
}

.myinfo_profile_remove {
  position: absolute;
  top: 4px;
  right: 4px;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: #ffffff;
  font-size: 18px;
  line-height: 1;
  padding: 0;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  text-shadow: 0 1px 4px rgba(17, 24, 39, 0.55);
  transition: opacity 160ms ease;
}

.myinfo_profile_thumb_item:hover .myinfo_profile_thumb_img,
.myinfo_profile_thumb_item:focus-within .myinfo_profile_thumb_img {
  filter: brightness(0.72);
}

.myinfo_profile_thumb_item:hover .myinfo_profile_remove,
.myinfo_profile_thumb_item:focus-within .myinfo_profile_remove {
  opacity: 1;
  pointer-events: auto;
}

.myinfo_profile_remove:hover {
  background: transparent;
  color: #ffffff;
}

.myinfo_action_row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  width: 100%;
  margin-top: 18px;
}

.myinfo_delete_button,
.myinfo_save_button {
  min-height: 44px;
  border-radius: 999px;
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

.myinfo_delete_button {
  border: 1px solid #c7ced7;
  background-color: #ffffff;
  color: #333333;
}

.myinfo_delete_button:hover {
  background-color: #f8f8f8;
}

.myinfo_save_button {
  border: 0;
  background-color: #418fde;
  color: #ffffff;
}

.myinfo_save_button:hover {
  background-color: #327ecb;
}

.index_cover_section {
  width: min(1200px, 100%);
  margin: 0 auto;
  padding: 26px 0 4px;
  box-sizing: border-box;
}

.index_cover_list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.index_cover_item {
  width: 100%;
  margin: 0;
}

.index_cover_image {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}

.index_intro_section {
  width: min(1200px, 100%);
  margin: 0 auto;
  padding: 60px 0 40px;
  box-sizing: border-box;
  text-align: center;
}

.index_intro_title {
  margin: 0;
  color: #1d1d1d;
  font-size: clamp(24px, 3.2vw, 38px);
  font-weight: 700;
  line-height: 1.15;
}

.index_intro_title span {
  color: #327ecb;
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  font-weight: 400;
} 


.index_intro_subtitle {
  margin: 10px 0 0;
  color: #666666;
  font-size: clamp(14px, 1.6vw, 18px);
  font-weight: 600;
  line-height: 1.45;
}

.index_category_section {
  width: min(1200px, 100%);
  margin: 0 auto;
  padding: 0 0 24px;
  box-sizing: border-box;
}

.index_category_grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}

.index_category_card {
  min-width: 0;
  border: 1px solid #e5eaf0;
  border-radius: 12px;
  background-color: #ffffff;
  padding: 30px 18px;
  box-sizing: border-box;
  text-align: center;
}

.index_category_icon {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: #f3f8ff;
  color: #418fde;
  font-size: 20px;
}

.index_category_title {
  margin: 16px 0 0;
  color: #1d1d1d;
  font-size: 22px;
  font-weight: 800;
  line-height: 1.15;
}

.index_category_kicker {
  margin: 7px 0 0;
  color: #888888;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  word-break: keep-all;
}

.index_category_desc {
  margin: 16px 0 0 0px;
  color: #555555;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.55;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.index_category_action {
  display: flex;
  justify-content: center;
  margin-top: 28px;
}

.index_timeline_create_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 190px;
  min-height: 48px;
  border: 0;
  border-radius: 999px;
  background-color: #418fde;
  color: #ffffff;
  padding: 0 24px;
  box-sizing: border-box;
  font-family: inherit;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}

.index_timeline_create_button:hover {
  background-color: #327ecb;
}

.timeline_page {
  width: 100%;
  padding: 0;
  box-sizing: border-box;
}

.timeline_section {
  max-width: 1200px;
  margin: 0 auto;
}

.timeline_section_head {
  margin-bottom: 18px;
}

.timeline_section_title {
  margin: 30px 0 0 0;
  font-size: clamp(16px, 3vw, 23px);
  font-weight: 700;
  color: #171717;
  line-height: 1.2;
  cursor: pointer;
}

.timeline_section_title span {
  color: #327ecb;
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  font-weight: 400;
}

.timeline_grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  padding: 0 0 30px 0;
}

.timeline_card {
  position: relative;
  isolation: isolate;
  background-color: #ffffff;
  border: 1px solid #ebebeb;
  border-radius: 14px;
  padding: 12px;
  box-sizing: border-box;
}

.timeline_card_link {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}

.timeline_card_thumb_wrap {
  position: relative;
  margin-bottom: 11px;
}

.timeline_card_thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  display: block;
  object-fit: cover;
  border-radius: 10px;
  cursor: pointer;
}

.timeline_card_category {
  margin: 0 0 10px 10px;
  font-size: 13px;
  font-weight: 600;
  color: #7f7f7f;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.timeline_card_category_icon {
  font-size: 10px;
  color: #2f7de1;
}

.timeline_category_dot {
  color: #b9c9d3;
}

.timeline_card_category_icon.timeline_category_dot.is-history {
  color: #639aed;
}

.timeline_card_category_icon.timeline_category_dot.is-person {
  color: #62d3bc;
}

.timeline_card_category_icon.timeline_category_dot.is-media {
  color: #a4d362;
}

.timeline_card_category_icon.timeline_category_dot.is-brand {
  color: #d3ac62;
}

.timeline_card_category_icon.timeline_category_dot.is-etc {
  color: #b9c9d3;
}

.timeline_card_title {
  margin: 0 0 10px 10px;
  font-size: 19px;
  font-weight: 700;
  color: #1d1d1d;
  line-height: 1.35;
  cursor: pointer;
  min-height: 52px;
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.timeline_card_title_text {
  min-width: 0;
}

.timeline_card_private_icon {
  flex: 0 0 auto;
  margin-top: 5px;
  font-size: 14px;
  color: #9aa3ad;
}

.timeline_card_wiki_badge {
  position: absolute;
  right: 8px;
  bottom: 8px;
  z-index: 2;
  flex: 0 0 auto;
  border-radius: 4px;
  background-color: #fbbf1e;
  color: #ffffff;
  padding: 3px 4px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}

.wiki_tag{
  display: inline-flex;
  align-items: center;
  border-radius: 4px;
  background-color: #fbbf1e;
  color: #ffffff;
  padding: 3px 4px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  vertical-align: middle;
  transform: translateY(-1px);
}

.timeline_card_meta {
  margin: 8px 0 0 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.timeline_card_meta[hidden] {
  display: none;
}

.timeline_card_author {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  color: #5d5d5d;
  line-height: 1.25;
  cursor: pointer;
}

.timeline_card_profile {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
}

.timeline_card_date {
  display: block;
  margin-top: 1px;
  font-size: 12px;
  font-weight: 400;
  color: #999;
}

.timeline_card_stats {
  margin: 12px 0 5px 10px;
  font-size: 14px;
  font-weight: 400;
  color: #a5a5a5;
  display: flex;
  align-items: center;
  gap: 20px;
}

.timeline_card_metric {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.timeline_card_stats i {
  color: #a5a5a5;
  cursor: pointer;
}

.timeline_card_favorite {
  position: relative;
  z-index: 2;
  margin-left: auto;
  padding: 0 4px;
  border: 0;
  background: transparent;
  color: #a5a5a5;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}

.timeline_card_favorite i,
.timeline_card_favorite.is_active i {
  color: inherit;
}

.timeline_card_favorite.is_active {
  color: #418fde;
}

.timeline_card_favorite:focus-visible {
  outline: 2px solid #7aaef2;
  outline-offset: 3px;
  border-radius: 4px;
}

@media (max-width: 1199px) {
  .index_cover_section,
  .index_intro_section,
  .index_category_section,
  .timeline_page,
  .alltimeline_page,
  .mypage_page {
    padding-right: 20px;
    padding-left: 20px;
  }

  .timeline_view_content_skin,
  .timeline_view_embed_section .timeline_v2_stage,
  .timeline_view_grid_table_wrap,
  .timeline_game_skin {
    width: calc(100% + 40px);
    max-width: none;
    margin-right: -20px;
    margin-left: -20px;
  }
}

@media (max-width: 640px) {
  .site_header {
    padding: 0 20px 16px 20px;
  }

  .index_cover_section {
    width: 100%;
  }

  .index_intro_section {
    width: 100%;
    padding: 22px 20px 2px;
  }

  .index_category_section {
    width: 100%;
    padding: 18px 20px 22px;
  }

  .index_category_grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .index_category_card {
    min-height: auto;
    padding: 22px 18px;
  }

  .mypage_page {
    padding: 28px 20px 48px;
  }

  .mypage_layout {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .mypage_profile_card {
    align-items: center;
  }

  .mypage_profile_avatar {
    width: 68px;
    height: 68px;
  }

  .mypage_profile_name {
    font-size: 21px;
  }

  .mypage_profile_nav {
    overflow-x: auto;
    white-space: nowrap;
    gap: 10px;
  }

  .mypage_timeline_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .myinfo_form {
    width: 100%;
    max-width: none;
  }

  .timeline_event_modal_close{
    top: 12px;
    right: 18px;
  }

  .timeline_page {
    padding: 0px 20px 32px;
  }

  .timeline_grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .timeline_view_content_grid {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 0 0px;
  }

  .timeline_view_content_section {
    padding: 0;
  }

  .timeline_view_embed_section .timeline_v2_stage {
    height: 520px;
    margin-top: 0;
  }

  .timeline_view_grid_table_wrap {
    width: calc(100% + 40px);
    height: 520px;
    max-height: none;
    overflow-x: hidden;
    overflow-y: auto;
    background-color: #e7e8e8;
    border-top: 1px solid #e4e7eb;
    border-bottom: 1px solid #e4e7eb;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .timeline_view_grid_table,
  .timeline_view_grid_table thead,
  .timeline_view_grid_table tbody,
  .timeline_view_grid_table tr,
  .timeline_view_grid_table th,
  .timeline_view_grid_table td {
    display: block;
  }

  .timeline_view_grid_table {
    min-width: 0;
    background-color: #f4f6f8;
  }

  .timeline_view_grid_table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
  }

  .timeline_view_grid_table tbody {
    padding: 14px 24px;
  }

  .timeline_view_grid_table tr {
    overflow: hidden;
    margin-bottom: 14px;
    border: 1px solid #e4e7eb;
    border-radius: 10px;
    background-color: #ffffff;
  }

  .timeline_view_grid_table td {
    display: grid;
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 12px;
    width: auto;
    min-width: 0;
    padding: 11px 12px;
    border-bottom: 1px solid #eef1f4;
  }

  .timeline_view_grid_table td::before {
    content: attr(data-label);
    color: #7b8591;
    font-size: 12px;
    font-weight: 800;
  }

  .timeline_view_grid_table td:last-child {
    border-bottom: 0;
  }

  .timeline_view_grid_table td.timeline_view_grid_media_cell {
    display: grid;
    width: 100%;
    max-width: none;
    grid-template-columns: 1fr;
    place-items: center;
    box-sizing: border-box;
    text-align: center;
  }

  .timeline_view_grid_media_cell::before {
    display: none;
  }

  .timeline_view_grid_desc_cell {
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .timeline_view_grid_media_thumb_wrap,
  .timeline_view_grid_media_fallback {
    width: 78px;
    height: 78px;
    margin: 0 auto;
  }

  .timeline_view_grid_empty {
    display: table-cell;
  }

  .timeline_view_content_skin {
    --content-card-width: 340px;
    min-height: 520px;
  }

  .timeline_view_content_controls {
    left: 8px;
  }

  .timeline_view_content_controls .btn_zoom {
    width: 42px;
    height: 42px;
    font-size: 18px;
  }

  .timeline_view_content_tag_filter {
    bottom: 0;
    left: calc(100% + 8px);
    max-width: min(240px, calc(100vw - 70px));
  }

  .timeline_view_content_skin_scroller {
    padding: 0 18px 24px 64px;
    scroll-padding-left: 64px;
  }

  .timeline_view_content_skin_track {
    gap: 16px;
    padding-top: 40px;
  }

  .timeline_view_content_event_title {
    font-size: 20px;
  }

  .timeline_view_embed_section .timeline_v2_controls {
    left: 8px;
  }

  .timeline_view_embed_section .timeline_v2_controls .btn_zoom {
    width: 42px;
    height: 42px;
    font-size: 18px;
  }

  .timeline_event_modal {
    padding: 14px;
  }

  .timeline_event_modal_scroll {
    padding: 22px 18px;
  }

  .timeline_event_modal_title {
    font-size: 21px;
  }

  .timeline_view_author_groups {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .timeline_view_content_primary,
  .timeline_view_content_secondary {
    min-height: 260px;
  }

  .timeline_view_related_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  .timeline_view_media_grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .timeline_view_related_card {
    padding: 10px;
  }

  .timeline_view_related_body {
    gap: 8px;
  }

  .timeline_view_related_thumb,
  .timeline_view_related_separator_thumb {
    width: 54px;
    height: 54px;
  }

  .timeline_view_related_separator_thumb::before {
    left: 8px;
    right: 8px;
  }

  .alltimeline_page {
    padding-top: 24px;
  }

  .alltimeline_search_section {
    margin-bottom: 24px;
  }

  .alltimeline_search_box {
    height: 50px;
    padding-left: 14px;
    gap: 9px;
  }

  .alltimeline_search_box button {
    padding: 0 14px;
  }

  .alltimeline_keywords {
    align-items: flex-start;
    gap: 7px;
  }

  .alltimeline_keywords_title {
    flex: 0 0 100%;
    margin-right: 0;
    text-align: center;
  }

  .alltimeline_category_tabs {
    flex: 1;
    min-width: 0;
  }

  .alltimeline_filter_actions {
    margin-left: 4px;
  }

  .alltimeline_grid {
    grid-template-columns: 1fr;
  }

  .alltimeline_pagination {
    margin-top: 28px;
    gap: 5px;
  }

  .faq_hero {
    padding: 34px 0 18px;
  }

  .faq_board {
    padding-bottom: 54px;
  }

  .faq_search_box {
    min-height: 50px;
    padding-left: 14px;
  }

  .faq_search_box button {
    padding: 0 13px;
  }

  .faq_category_tabs {
    gap: 7px;
  }

  .faq_question {
    grid-template-columns: minmax(0, 1fr) auto 18px;
    gap: 10px;
    min-height: 60px;
  }

  .faq_question_meta {
    grid-column: auto;
    justify-self: end;
    margin-top: 0;
  }

  .faq_question i {
    grid-column: auto;
    grid-row: auto;
    justify-self: end;
  }

  .faq_answer {
    padding-bottom: 20px;
  }

  .faq_board_footer {
    align-items: stretch;
    flex-direction: column;
  }

  .faq_pagination {
    order: 2;
  }

  .faq_write_button {
    order: 1;
    width: 100%;
  }

  .faq_contact_box {
    margin-top: 10px;
    padding-top: 24px;
  }

  .faq_contact_actions {
    width: 100%;
  }

  .faq_contact_button {
    flex: 1 1 150px;
    min-width: 0;
  }

  .faq_write_dialog {
    max-height: 90vh;
    padding: 20px 16px;
  }

  .alltimeline_page_button {
    min-width: 32px;
    height: 32px;
  }

  .site_header_inner {
    height: auto;
    padding: 20px 0 5px;
    flex-wrap: wrap;
    row-gap: 8px;
  }

  .site_title {
    order: 1;
  }

  .header_actions {
    order: 2;
  }

  .site_nav {
    order: 3;
    flex: 0 0 100%;
    justify-content: flex-start;
    gap: 28px;
    padding-top: 2px;
  }

  .site_nav_link {
    font-size: 14px;
  }

  .site_footer {
    margin-top: 40px;
  }

  .site_footer_inner {
    padding: 28px 20px 32px;
  }

  .site_footer_top {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
  }

  .site_footer_info {
    line-height: 1.6;
    word-break: keep-all;
    overflow-wrap: anywhere;
  }

  .site_footer_info_pack {
    flex-direction: column;
    gap: 4px;
  }

  .site_footer_info_pack span {
    display: block;
  }

  .site_footer_copy {
    line-height: 1.5;
  }

  .login_button {
    padding: 9px 18px;
    font-size: 14px;
  }

  .create_timeline_button {
    display: none;
  }

  .account_menu {
    min-height: 36px;
    padding: 4px 9px 4px 5px;
  }

  .account_avatar {
    width: 26px;
    height: 26px;
  }

  .account_dropdown_menu {
    top: calc(100% + 8px);
    min-width: 176px;
  }
}

.upgrade_page {
  min-height: 70vh;
  background-color: #ffffff;
}

.upgrade_inner {
  width: min(100% - 40px, 920px);
  margin: 0 auto;
  text-align: center;
}

.upgrade_hero {
  padding: 72px 0 24px;
}

.upgrade_title {
  margin: 0;
  color: #1d1d1d;
  font-size: clamp(22px, 2.7vw, 28px);
  font-weight: 800;
  line-height: 1.08;
}

.upgrade_title span {
  color: #418fde;
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  font-weight: 400;
}

.upgrade_desc {
  margin: 12px 0 0;
  color: #888888;
  font-size: clamp(14px, 1.5vw, 16px);
  font-weight: 600;
  line-height: 1.45;
  word-break: keep-all;
}

.upgrade_plan_section {
  padding: 0 0 34px;
}

.upgrade_plan_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.upgrade_plan_card {
  display: flex;
  align-items: stretch;
  justify-content: center;
  min-width: 0;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  background-color: #ffffff;
  padding: 28px;
  box-sizing: border-box;
  text-align: center;
}

.upgrade_plan_card.is_featured {
  border-color: #418fde;
}

.upgrade_badge_body {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  min-width: 0;
}

.upgrade_badge_image {
  display: block;
  width: 124px;
  height: 180px;
  object-fit: contain;
  margin: 18px 0 16px;
}

.upgrade_badge_title {
  margin: 0;
  color: #1d1d1d;
  font-size: 22px;
  font-weight: 900;
  line-height: 1.25;
}

.upgrade_badge_desc {
  min-height: 42px;
  margin: 10px 0 12px;
  color: #6d7885;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.45;
  word-break: keep-all;
}

.upgrade_badge_price {
  margin: 0 0 14px;
  color: #687483;
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
}

.upgrade_badge_price span {
  margin-left: 3px;
  font-size: 16px;
  font-weight: 500;
}

.upgrade_plan_emblem {
  flex: 0 0 128px;
  display: grid;
  place-items: center;
}

.upgrade_plan_emblem img {
  display: block;
  width: 118px;
  height: auto;
}

.upgrade_plan_body {
  flex: 1 1 auto;
  min-width: 0;
}

.upgrade_plan_summary {
  min-height: 48px;
  margin: 14px 0 0;
  color: #6d7885;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.3;
  word-break: keep-all;
}

.upgrade_plan_price {
  margin: 14px 0 12px;
  color: #687483;
  font-size: 30px;
  font-weight: 500;
  line-height: 1;
}

.upgrade_plan_price span {
  margin-left: 3px;
  font-size: 16px;
  font-weight: 500;
}

.upgrade_plan_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 200px;
  min-height: 44px;
  border: 0;
  border-radius: 999px;
  background-color: #418fde;
  color: #ffffff;
  padding: 0 16px;
  font-size: 14px;
  font-weight: 900;
  cursor: pointer;
}

.upgrade_plan_button:hover {
  background-color: #327ecb;
}

.upgrade_plan_button:disabled,
.upgrade_plan_button.is_standard {
  border: 1px solid #d8e1ea;
  background-color: #f4f7fa;
  color: #263547;
  cursor: default;
}

.upgrade_compare_section {
  padding: 0 0 80px;
}

.upgrade_compare_title {
  margin: 0 0 14px;
  color: #1d1d1d;
  font-size: clamp(17px, 1.8vw, 20px);
  font-weight: 900;
  line-height: 1.35;
}

.upgrade_compare_title span{
  font-weight: 400;
}

.upgrade_compare_table_wrap {
  overflow-x: auto;
  border: 1px solid #e1e7ee;
  border-radius: 8px;
  background-color: #ffffff;
}

.upgrade_compare_table {
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
}

.upgrade_compare_table th.upgrade_compare_section_header{
  background-color: #f8fbff;
  font-weight: 900;
  padding: 6px 18px;
}

.upgrade_compare_table th,
.upgrade_compare_table td {
  border-bottom: 1px solid #edf1f5;
  padding: 16px 18px;
  color: #334455;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  vertical-align: middle;
}

.upgrade_compare_table thead th {
  color: #1d1d1d;
  font-size: 13px;
  font-weight: 900;
}

.upgrade_compare_table th:first-child {
  text-align: left;
}

.upgrade_compare_table tbody tr:last-child th,
.upgrade_compare_table tbody tr:last-child td {
  border-bottom: 0;
}

.upgrade_compare_table i.fa-check {
  color: #418fde;
  font-weight: 900;
  font-size: 16px;
}

.upgrade_compare_table i.fa-minus {
  color: #b8c2cc;
}

.upgrade_payment_notes {
  display: grid;
  gap: 7px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  text-align: left;
}

.upgrade_payment_notes li {
  position: relative;
  padding-left: 13px;
  color: #6f7b87;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.55;
}

.upgrade_payment_notes li::before {
  content: "";
  position: absolute;
  top: 0.7em;
  left: 1px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background-color: #aeb7c0;
  transform: translateY(-50%);
}

.upgrade_payment_notes a {
  color: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (max-width: 640px) {
  .upgrade_inner {
    width: min(100% - 40px, 920px);
  }

  .upgrade_hero {
    padding: 34px 0 18px;
  }

  .upgrade_plan_grid {
    grid-template-columns: 1fr;
  }

  .upgrade_plan_card {
    gap: 18px;
    padding: 24px 18px;
  }

  .upgrade_plan_emblem {
    flex-basis: 102px;
  }

  .upgrade_plan_emblem img {
    width: 96px;
  }

  .upgrade_plan_summary {
    min-height: auto;
  }

  .upgrade_compare_section {
    padding-bottom: 54px;
  }
}

/* Timeline Edit Header */

/* Timeline-specific styles merged from timeline.css. Keep after base Hiscovery styles. */

.timeline_color_picker_row {
  display: flex;
  align-items: center;
  padding-top: 5px;
}

.timeline_color_set {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 5px;
}

.timeline_color_swatch,
.timeline_color_recent,
.timeline_color_picker_btn {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  border-radius: 50%;
  box-sizing: border-box;
}

.timeline_color_swatch,
.timeline_color_recent {
  border: 2px solid #ffffff;
  box-shadow: 0 0 0 1px rgba(24, 36, 51, 0.1);
  background: var(--timeline-color-value, #bebfbf);
  cursor: pointer;
  padding: 0;
}

.timeline_color_swatch {
  display: inline-grid;
  place-items: center;
  color: #ffffff;
}

.timeline_color_swatch i {
  font-size: 14px;
  line-height: 1;
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.16));
}

.timeline_recent_colors {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.timeline_recent_colors:empty {
  display: none;
}

.timeline_color_recent {
  padding: 0;
}

.timeline_color_recent:hover,
.timeline_color_picker_btn:hover {
  transform: translateY(-1px);
}

.timeline_color_picker_btn {
  display: inline-grid;
  place-items: center;
  border: 1px solid #dfe6ef;
  background: #ffffff;
  color: #26374a;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(24, 36, 51, 0.08);
}

.timeline_color_picker_btn i {
  font-size: 13px;
  line-height: 1;
}

.timeline_color_popover {
  position: fixed;
  z-index: 1800;
  width: 244px;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 18px 48px rgba(36, 54, 78, 0.22);
  padding: 14px 14px 16px;
  box-sizing: border-box;
}

.timeline_color_popover[hidden] {
  display: none !important;
}

.timeline_color_popover_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0 0 10px;
}

.timeline_color_popover_title {
  margin: 0;
  color: #111827;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.1;
}

.timeline_color_popover_title span {
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  font-weight: 500;
}

.timeline_color_close_btn {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border: 0;
  border-radius: 50%;
  background-color: transparent;
  color: #6b7684;
  cursor: pointer;
}

.timeline_color_close_btn:hover,
.timeline_color_close_btn:focus-visible {
  background-color: #f1f4f7;
  color: #222222;
  outline: none;
}

.timeline_color_close_btn i {
  font-size: 14px;
  line-height: 1;
}

.timeline_color_picker_mount {
  width: 216px;
}

.timeline_color_picker_mount .IroBox {
  border-radius: 8px !important;
  overflow: hidden;
}

.timeline_color_value_row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 32px;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}

.timeline_color_preview {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--timeline-color-value, #bebfbf);
  box-shadow: 0 0 0 1px rgba(24, 36, 51, 0.12);
}

.timeline_color_hex {
  width: 100%;
  min-width: 0;
  height: 30px;
  border: 0;
  border-radius: 4px;
  background: #f4f6f9;
  color: #2b3645;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
  text-transform: uppercase;
  box-sizing: border-box;
}

.timeline_color_hex:focus {
  outline: none;
  box-shadow: 0 0 0 2px rgba(65, 143, 222, 0.18);
}

.timeline_color_eyedropper {
  width: 32px;
  height: 30px;
  display: inline-grid;
  place-items: center;
  border: 1px solid #e5e9f0;
  border-radius: 6px;
  background: #ffffff;
  color: #596779;
  cursor: pointer;
}

.timeline_color_eyedropper:disabled {
  opacity: 0.35;
  cursor: default;
}

.timeline_color_select_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 34px;
  margin-top: 10px;
  border: 0;
  border-radius: 999px;
  background-color: #418fde;
  color: #ffffff;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

.timeline_color_select_btn:hover,
.timeline_color_select_btn:focus-visible {
  background-color: #327ecb;
  outline: none;
}

.timeline_excel_upload_open_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 40px;
  border: 1px solid #cfe0d9;
  border-radius: 8px;
  background: #f3fbf7;
  color: #1f8f72;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

.timeline_excel_upload_open_btn:hover {
  background: #e8f7ef;
}

.timeline_excel_upload_open_btn:disabled {
  cursor: default;
  opacity: 0.45;
}

.choice_color_unit {
  width: 17px;
  height: 17px;
  border-radius: 50%;
  color: #fff;
  border: 3px solid #ffffff;
  cursor: pointer;
  position: relative;

}

.color_picker {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid #ffffff;
  padding: 0;
  appearance: none;
  -webkit-appearance: none;
  font-size: 0;
  cursor: pointer;
  overflow: hidden;
  box-sizing: border-box;
}

.timeline_color_picker_row .color_picker {
  box-shadow: 0 0 0 1px rgba(24, 36, 51, 0.12);
}

.color_picker::-webkit-color-swatch-wrapper {
  padding: 0;
}

.color_picker::-webkit-color-swatch {
  border: 0;
  border-radius: 50%;
}

.timeline_public_choice_pack {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.timeline_category_select {
  width: 100%;
  min-height: 40px;
  border: 1px solid #d8e1ea;
  border-radius: 6px;
  background-color: #ffffff;
  color: #182433;
  font-size: 14px;
  font-weight: 600;
  padding: 0 12px;
  box-sizing: border-box;
}

.timeline_category_select:focus {
  outline: 2px solid rgba(65, 143, 222, 0.22);
  border-color: #418fde;
}

.timeline_category_dropdown {
  position: relative;
}

.timeline_category_dropdown_btn {
  width: 100%;
  min-height: 40px;
  border: 1px solid #d8e1ea;
  border-radius: 6px;
  background: #ffffff;
  color: #8a98a8;
  font-size: 14px;
  font-weight: 600;
  padding: 0 12px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  cursor: pointer;
}

.timeline_category_dropdown_btn.has-value {
  color: #182433;
}

.timeline_category_dropdown_btn:focus {
  outline: 2px solid rgba(65, 143, 222, 0.22);
  border-color: #418fde;
}

.timeline_category_dropdown_btn .fa-angle-down {
  transition: transform 160ms ease;
}

.timeline_category_dropdown.open .timeline_category_dropdown_btn .fa-angle-down {
  transform: rotate(180deg);
}

.timeline_category_dropdown_menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  background-color: #ffffff;
  border: 1px solid #d8e1ea;
  border-radius: 10px;
  padding: 8px;
  display: none;
  gap: 4px;
  z-index: 20;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
}

.timeline_category_dropdown.open .timeline_category_dropdown_menu {
  display: grid;
}

.timeline_category_dropdown_menu[hidden] {
  display: none;
}

.timeline_category_dropdown_item {
  width: 100%;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #334455;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
  padding: 10px 12px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.timeline_category_dropdown_item i {
  font-size: 10px;
  
}

.timeline_category_dot {
  color: #b9c9d3;
}

.timeline_category_dot.is-history,
.timeline_view_content_category .timeline_category_dot.is-history,
.timeline_card_category_icon.timeline_category_dot.is-history {
  color: #639aed;
}

.timeline_category_dot.is-person,
.timeline_view_content_category .timeline_category_dot.is-person,
.timeline_card_category_icon.timeline_category_dot.is-person {
  color: #62d3bc;
}

.timeline_category_dot.is-media,
.timeline_view_content_category .timeline_category_dot.is-media,
.timeline_card_category_icon.timeline_category_dot.is-media {
  color: #a4d362;
}

.timeline_category_dot.is-brand,
.timeline_view_content_category .timeline_category_dot.is-brand,
.timeline_card_category_icon.timeline_category_dot.is-brand {
  color: #d3ac62;
}

.timeline_category_dot.is-etc,
.timeline_view_content_category .timeline_category_dot.is-etc,
.timeline_card_category_icon.timeline_category_dot.is-etc {
  color: #b9c9d3;
}

.timeline_category_dropdown_item:hover,
.timeline_category_dropdown_item:focus {
  background: #f3f7fb;
  border-color: #d8e1ea;
  outline: none;
}

.timeline_category_dropdown_item.is-selected {
  background: #edf5ff;
  border-color: #b8d8fb;
  color: #185ea6;
}



.timeline_public_choice {
  border: 1px solid #d8e1ea;
  border-radius: 6px;
  padding: 13px;
  cursor: pointer;
  opacity: 0.6;
}

.public_choice_title {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: #182433;
  margin: 0 0 6px 0;
}

.timeline_private_limit_count {
  flex: 0 0 auto;
  margin-left: auto;
  border-radius: 999px;
  background-color: #f3f7fb;
  color: #6d7885;
  padding: 3px 8px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
}

.public_choice_description {
  font-size: 12px;
  font-weight: 400;
  color: #86919b;
  margin: 0;
}

.is-selected {
  border: 2px solid #000;
  opacity: 1;
}

.mypage_empty_state{
  text-align: center;
  width: 100%;
}

.mypage_timeline_grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  padding-bottom: 0;
  text-align: left;
}

.myreviews_comment_content {
  width: 500px;
  max-width: 100%;
  margin: 0 auto;
  text-align: left;
}

.myreviews_comment_list {
  margin-top: 0;
}

.color_on {
  border: 1px solid #418fde;
  border-radius: 50%;
  width: 25px;
  height: 25px;
  position: absolute;
  top: -5px;
  left: -5px;

}

.t_line_default {
  background-color: #bebfbf;
  border: 1px solid #bebfbf;
}

.t_white {
  background-color: #ffffff;
  border: 1px solid #d8d8d8;
}

.t_red {
  background-color: #ed5564;
  border: 1px solid #ed5564;
}

.t_carrot {
  background-color: #fb6e52;
  border: 1px solid #fb6e52;
}

.t_lemon {
  background-color: #ffce55;
  border: 1px solid #ffce55;
}

.t_green {
  background-color: #a0d468;
  border: 1px solid #a0d468;
}

.t_mint {
  background-color: #48cfae;
  border: 1px solid #48cfae;
}

.t_aqua {
  background-color: #4fc0e8;
  border: 1px solid #4fc0e8;
}

.t_ravender {
  background-color: #ac92ed;
  border: 1px solid #ac92ed;
}

.tag_pack {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.tag_unit {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  color: #333;
  border: 1px solid #d8e1ea;
  cursor: pointer;
}

.tag_unit button {
  font: inherit;
}

.event_tag_choice {
  background: #ffffff;
  opacity: 0.35;
}

.event_tag_choice.is-active {
  opacity: 1;
  border-color: #182433;
  background: #f8fbff;
}

.add_tag {
  background-color: #f8fbff;
  width: 12px;
}

.tag_color {
  width: 9px;
  height: 9px;
  border-radius: 50%;
}

.tag_event_count {
  color: inherit;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}

.tag_modal {
  position: fixed;
  inset: 0;
  z-index: 1400;
  display: grid;
  place-items: center;
  width: auto;
  max-height: none;
  box-sizing: border-box;
  padding: 20px;
  overflow: visible;
}

.tag_modal[hidden],
.tag_modal.is-hidden {
  display: none !important;
}

.tag_modal .event_media_modal_dialog {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: min(420px, 100%);
}

.tag_input_row {
  display: flex;
  gap: 5px;
  padding: 0;
}

.tag_add_btn {
  border: 0;
  background-color: #418fde;
  color: #fff;
  border-radius: 8px;
  padding: 9px 8px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  width: 60px;
}

.tag_list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 15px 0 0 0;
  margin-top: 10px;
  border-top: 1px solid #e7e7e7;
}

.tag_manage_unit {
  padding: 0;
  overflow: hidden;
  background: #ffffff;
}

.tag_manage_unit.is-editing {
  border-color: #182433;
  background: #f8fbff;
}

.tag_manage_name,
.tag_manage_delete {
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.tag_manage_name {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 2px 6px 10px;
}

.tag_manage_delete {
  padding: 6px 10px 6px 4px;
  color: #778391;
}

.tag_manage_delete:hover {
  color: #ed5564;
}

.tag_list_empty {
  margin: 0;
  color: #778391;
  font-size: 13px;
}

.tag_filter_box {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  flex-wrap: nowrap;
  position: absolute;
  background-color: #fff;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  padding: 10px;
  box-shadow: 0 4px 12px rgba(14, 34, 54, 0.1);
  width: max-content;
  min-width: 0;
  max-width: calc(100vw - 90px);
  gap: 8px;
  bottom: 0px;
  left: calc(100% + 10px);
  overflow-x: auto;
  overflow-y: hidden;
}

.tag_filter_box .tag_unit {
  white-space: nowrap;
  flex: 0 0 auto;
}

.timeline_tag_filter_unit {
  opacity: 0.35;
  background: #ffffff;
}

.timeline_tag_filter_unit.is-active {
  opacity: 1;
  /* border-color: #182433; */
  background: #f8fbff;
}

.timeline_tag_filter_all_toggle {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  box-sizing: border-box;
  padding: 0;
  border-color: #d8e1ea;
  opacity: 1;
}

.timeline_tag_filter_all_toggle.is-active {
  /* border-color: #182433; */
}

.timeline_tag_filter_all_toggle i {
  display: block;
  font-size: 13px;
  line-height: 1;
}

.timeline_tag_filter_count {
  order: 2;
  color: inherit;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}

.timeline_tag_filter_unit:focus-visible {
  outline: 2px solid #7aaef2;
  outline-offset: 2px;
}

.timeline_tag_filter_indicator {
  position: absolute;
  top: 6px;
  right: 6px;
  color: #418fde;
  font-size: 7px;
  line-height: 1;
  pointer-events: none;
}

.timeline_tag_filter_indicator[hidden] {
  display: none !important;
}

.tag_filter_box[hidden] {
  display: none !important;
}

/* Shared layout for tag filter popups that lay tags out 5-per-column (timeline view + content view). */
.tag_filter_box_grid {
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(5, max-content);
  grid-auto-columns: max-content;
  column-gap: 8px;
  row-gap: 8px;
  align-items: start;
  justify-items: start;
  max-width: calc(100vw - 92px);
  overflow-x: visible;
  overflow-y: hidden;
}

.tag_filter_box_grid .tag_unit {
  justify-self: start;
  justify-content: flex-start;
}

.tag_filter_box_grid .timeline_tag_filter_all_toggle {
  width: 32px;
  height: 32px;
  justify-content: center;
  justify-self: start;
}

.timeline_page {
  width: 100%;
  padding: 0px 0px 0px;
  box-sizing: border-box;
}

/* Keep timeline canvases/stages edge-to-edge even when page has side padding. */
.timeline_page .timeline_v2_stage,
.timeline_page .timeline_warp {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.timeline_section {
  max-width: 1200px;
  margin: 0 auto;
}

.timeline_section_head {
  margin-bottom: 18px;
}

.timeline_section_title {
  margin: 30px 0 0 0;
  font-size: clamp(16px, 3vw, 23px);
  font-weight: 700;
  color: #171717;
  line-height: 1.2;
}

.timeline_section_subtitle {
  margin: 2px 0 0;
  font-size: clamp(12px, 1.2vw, 14px);
  font-weight: 500;
  color: #999;

}

.timeline_view_title_section {
  background-color: #ffffff;
  border: 0px solid #ececec;
  border-radius: 16px;
  padding: 0px 0px;
}

.timeline_view_embed_section {
  max-width: none;
  margin: 0 0px;
}

.timeline_view_skin_panel[hidden] {
  display: none;
}

.timeline_view_skin_panel[data-timeline-view-panel="timeline"] {
  --timeline-view-stage-height: 600px;
}

.timeline_view_embed_section .timeline_v2_stage {
  height: var(--timeline-view-stage-height, 600px);
  margin-top: 0;
  background-color: #e7e8e8;
  overflow: hidden;
}

.timeline_view_height_resizer {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: 34px;
  margin: 0 calc(50% - 50vw);
  padding: 0;
  border: 0;
  background: #ffffff;
  cursor: ns-resize;
  touch-action: none;
}

.timeline_view_height_resizer span {
  display: block;
  width: min(164px, 32vw);
  height: 4px;
  border-radius: 999px;
  background: #e7e8e8;
  transition: height 140ms ease, background-color 140ms ease;
}

.timeline_view_height_resizer:hover span,
.timeline_view_height_resizer:focus-visible span,
.timeline_view_height_resizer.is_resizing span {
  height: 6px;
  background: #cfd6dd;
}

.timeline_view_height_resizer:focus-visible {
  outline: 2px solid #7aaef2;
  outline-offset: -8px;
}

@media (max-width: 640px) {
  .timeline_view_skin_panel[data-timeline-view-panel="timeline"] {
    --timeline-view-stage-height: 520px;
  }

  .timeline_view_height_resizer {
    height: 36px;
  }
}

.timeline_view_embed_section .timeline_v2_controls {
  position: absolute;
  top: 50%;
  left: 16px;
  transform: translateY(-50%);
}

.timeline_view_embed_section .timeline_v2_controls .btn_zoom {
  display: inline-grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border: 0;
  border-radius: 10px;
  background-color: #ffffff;
  color: #173a5b;
  font-size: 22px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 5px 10px rgba(7, 20, 33, 0.1);
}

.timeline_view_embed_section .timeline_v2_controls .btn_zoom:hover {
  background-color: #f2f8ff;
}

.timeline_view_embed_section .timeline_v2_controls .btn_zoom i {
  pointer-events: none;
}

.timeline_view_embed_box {
  width: 100%;
  height: 600px;
  margin-top: 16px;
  background-color: #ffffff;
  overflow: hidden;
}

.timeline_view_grid_table_wrap {
  width: min(1200px, calc(100% - 24px));
  height: 600px;
  max-height: 600px;
  margin: 0 auto;
  overflow: auto;
  border: 1px solid #e4e7eb;
  border-radius: 8px;
  background-color: #ffffff;
}

.timeline_view_grid_table {
  width: 100%;
  min-width: 920px;
  border-collapse: collapse;
  table-layout: fixed;
  color: #1c2430;
  font-size: 14px;
}

.timeline_view_grid_table th,
.timeline_view_grid_table td {
  border-bottom: 1px solid #edf0f3;
  padding: 14px 16px;
  text-align: left;
  vertical-align: top;
}

.timeline_view_grid_table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background-color: #f7f8fa;
  color: #5b6470;
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
}

.timeline_view_grid_tag_head {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

.timeline_view_grid_tag_head i {
  font-size: 10px;
  line-height: 1;
}

.timeline_view_grid_tag_head[aria-expanded="true"] i {
  transform: rotate(180deg);
}

.timeline_view_grid_tag_head_cell {
  position: sticky;
  overflow: visible;
}

.timeline_view_grid_tag_filter {
  top: calc(100% + 8px);
  z-index: 8;
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 6px;
  width: 200px;
  max-width: min(240px, calc(100vw - 20px));
  padding: 10px;
  border-radius: 12px;
  overflow-x: hidden;
  overflow-y: auto;
}

.timeline_view_grid_tag_filter .tag_unit {
  width: 100%;
  justify-content: flex-start;
  text-align: left;
}

.timeline_view_grid_tag_filter .timeline_tag_filter_all_toggle {
  align-self: center;
  justify-content: center;
  width: 32px;
  height: 32px;
}

.timeline_view_grid_table th:nth-child(1),
.timeline_view_grid_media_cell {
  width: 112px;
}

.timeline_view_grid_table th:nth-child(2),
.timeline_view_grid_date_cell {
  width: 160px;
}

.timeline_view_grid_table th:nth-child(3),
.timeline_view_grid_title_cell {
  width: 220px;
}

.timeline_view_grid_table th:nth-child(5),
.timeline_view_grid_tags_cell {
  width: 190px;
}

.timeline_view_grid_row {
  cursor: pointer;
  transition: background-color 140ms ease;
}

.timeline_view_grid_row[hidden] {
  display: none;
}

.timeline_view_grid_row:hover,
.timeline_view_grid_row:focus {
  background-color: #f8fbff;
  outline: none;
}

.timeline_view_grid_media_thumb_wrap,
.timeline_view_grid_media_fallback {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border-radius: 6px;
  overflow: hidden;
  background-color: #eef1f4;
  color: #6a7582;
}

.timeline_view_grid_media_thumb {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.timeline_view_grid_media_thumb_wrap.is-video::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.22);
}

.timeline_view_grid_media_icon {
  position: absolute;
  z-index: 1;
  color: #ffffff;
  font-size: 15px;
}

.timeline_view_grid_media_empty,
.timeline_view_grid_tag_empty {
  color: #9aa3ad;
}

.timeline_view_grid_date_cell {
  color: #425466;
  font-weight: 700;
  white-space: nowrap;
}

.timeline_view_grid_title_cell {
  color: #171717;
  font-weight: 800;
  line-height: 1.45;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.timeline_view_grid_desc_cell {
  color: #4f5965;
  line-height: 1.55;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

@media (max-width: 640px) {
  .timeline_view_grid_table_wrap {
    width: calc(100% + 40px);
    max-width: none;
    height: 520px;
    max-height: none;
    margin-right: -20px;
    margin-left: -20px;
    overflow-x: hidden;
    overflow-y: auto;
    border: 0;
    border-top: 1px solid #e4e7eb;
    border-bottom: 1px solid #e4e7eb;
    border-radius: 0;
    background-color: #e7e8e8;
  }

  .timeline_view_grid_table {
    min-width: 0;
    background-color: #f4f6f8;
  }

  .timeline_view_grid_table tbody {
    padding: 14px 24px;
  }

  .timeline_view_grid_table tr {
    overflow: hidden;
    margin-bottom: 14px;
    border-radius: 10px;
  }

  .timeline_view_grid_table td {
    min-width: 0;
  }

  .timeline_view_grid_table td.timeline_view_grid_media_cell {
    display: grid;
    width: 100%;
    max-width: none;
    grid-template-columns: 1fr;
    place-items: center;
    box-sizing: border-box;
    text-align: center;
  }

  .timeline_view_grid_media_cell::before {
    display: none;
  }

  .timeline_view_grid_desc_cell {
    white-space: normal;
    word-break: break-word;
    overflow-wrap: anywhere;
  }
}

.timeline_view_grid_tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.timeline_view_grid_tag {
  cursor: pointer;
}

.timeline_view_grid_empty {
  height: 180px;
  color: #8c96a3;
  font-weight: 700;
  text-align: center;
  vertical-align: middle;
}

.timeline_view_content_skin {
  --content-card-width: 350px;
  --content-line-color: #bebfbf;
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 600px;
  overflow: visible;
  background-color: #e7e8e8;
}

.timeline_view_content_controls {
  position: absolute;
  top: 50%;
  left: 16px;
  z-index: 12;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  transform: translateY(-50%);
}

.timeline_view_content_controls .btn_zoom {
  display: inline-grid;
  place-items: center;
  width: 50px;
  height: 50px;
  border: 0;
  border-radius: 10px;
  background-color: #ffffff;
  color: #173a5b;
  font-size: 22px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 5px 10px rgba(7, 20, 33, 0.1);
}

.timeline_view_content_controls .btn_zoom:hover {
  background-color: #f2f8ff;
}

.timeline_view_content_tag_button {
  position: relative;
}

.timeline_view_content_tag_filter {
  top: auto;
  bottom: 0;
  left: calc(100% + 10px);
  z-index: 20;
}

.timeline_view_content_tag_filter .tag_unit {
  justify-content: flex-start;
  text-align: left;
}

.timeline_view_content_tag_filter .timeline_tag_filter_all_toggle {
  display: grid;
  place-items: center;
  justify-content: center;
  text-align: center;
}

.timeline_view_content_skin_scroller {
  position: relative;
  flex: 1 0 auto;
  overflow-x: auto;
  overflow-y: visible;
  padding: 0 48px 34px 92px;
  box-sizing: border-box;
  cursor: grab;
  scroll-padding-left: 92px;
}

.timeline_view_content_skin_scroller:focus {
  outline: none;
}

.timeline_view_content_skin_scroller.is_dragging {
  cursor: grabbing;
  user-select: none;
}

.timeline_view_content_skin_line {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1;
  height: 4px;
  background-color: var(--content-line-color);
  pointer-events: none;
}

.timeline_view_content_edge_jump {
  --content-edge-jump-x: 50%;
  --content-edge-jump-y: 50%;
  position: absolute;
  top: 0;
  bottom: 0;
  z-index: 11;
  display: block;
  width: 5%;
  min-width: 44px;
  border: 0;
  padding: 0;
  background: transparent;
  color: #173a5b;
  cursor: pointer;
  opacity: 0;
  transition: opacity 160ms ease;
}

.timeline_view_content_edge_jump[hidden] {
  display: none;
}

.timeline_view_content_edge_jump:disabled {
  cursor: default;
  pointer-events: none;
}

.timeline_view_content_edge_jump.is_start {
  left: 0;
}

.timeline_view_content_edge_jump.is_end {
  right: 0;
}

.timeline_view_content_edge_jump i {
  position: absolute;
  left: var(--content-edge-jump-x);
  top: var(--content-edge-jump-y);
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #ffffff;
  font-size: 20px;
  box-shadow: 0 5px 10px rgba(7, 20, 33, 0.1);
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0.96);
  transition: transform 160ms ease, background-color 160ms ease;
}

.timeline_view_content_edge_jump:hover,
.timeline_view_content_edge_jump:focus-visible {
  opacity: 1;
}

.timeline_view_content_edge_jump:hover i,
.timeline_view_content_edge_jump:focus-visible i {
  transform: translate(-50%, -50%) scale(1);
}

.timeline_view_content_edge_jump:focus-visible {
  outline: 2px solid #7aaef2;
  outline-offset: -6px;
}

.timeline_view_content_skin_track {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  gap: 26px;
  width: max-content;
  min-width: 100%;
  padding-top: 40px;
}

.timeline_view_content_event_card {
  position: relative;
  flex: 0 0 var(--content-card-width);
  width: var(--content-card-width);
  overflow: visible;
  border-radius: 8px;
  background-color: #ffffff;
  cursor: pointer;
}

.timeline_view_content_event_card[hidden] {
  display: none;
}

.timeline_view_content_event_card:hover,
.timeline_view_content_event_card:focus {
  outline: none;
  
}

.timeline_view_content_event_connector {
  position: absolute;
  top: -40px;
  left: 50%;
  width: 2px;
  height: 40px;
  background-color: var(--content-event-color, var(--content-line-color));
  transform: translateX(-50%);
}

.timeline_view_content_event_body {
  border-radius: 8px;
  background-color: #ffffff;
}

.timeline_view_content_event_card .timeline_view_content_event_date {
  margin: 18px 18px 14px;
}

.timeline_view_content_event_card .timeline_view_content_event_title {
  margin: 0 18px;
  padding-right: 0;
  font-size: 22px;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.timeline_view_content_event_media {
  width: auto;
  margin: 16px 18px 0;
  overflow: hidden;
  border-radius: 8px;
  background-color: #eeeeee;
  box-sizing: border-box;
}

.timeline_view_content_event_media.timeline_event_modal_image_carousel {
  width: auto;
}

.timeline_view_content_event_media.is-video {
  position: relative;
}

.timeline_view_content_event_media .timeline_event_modal_image_frame {
  width: 100%;
  max-height: none;
  border-radius: 8px;
  overflow: hidden;
  background-color: #eeeeee;
}

.timeline_view_content_event_media .timeline_event_modal_image {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: none;
  object-fit: cover;
}

.timeline_view_content_event_media .timeline_view_media_play_badge {
  top: 8px;
  right: 8px;
}

.timeline_view_content_event_card .timeline_view_content_event_desc {
  margin: 16px 18px 0;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.timeline_view_content_event_links {
  margin: 14px 18px 0;
}

.timeline_view_content_event_tags {
  margin: 16px 18px 20px;
}

.timeline_view_content_skin_empty {
  flex: 1 1 auto;
  display: grid;
  min-width: min(520px, calc(100vw - 140px));
  min-height: 260px;
  place-items: center;
  color: #7b8591;
  font-size: 15px;
  font-weight: 800;
}

.timeline_view_content_skin_empty[hidden] {
  display: none;
}

.timeline_view_content_section {
  max-width: 1200px;
  margin: 50px auto 0;
  padding: 0 12px;
  box-sizing: border-box;
}

.timeline_view_content_grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}

.timeline_view_content_primary,
.timeline_view_content_secondary {
  min-height: 360px;
}

.timeline_view_content_primary {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.timeline_view_content_category {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  color: #7f7f7f;
  font-size: 13px;
  font-weight: 700;
}

.timeline_view_content_category i {
  color: #418fde;
  font-size: 8px;
}

.timeline_view_wiki_badge {
  margin-left: auto;
  border-radius: 4px;
  background-color: #fbbf1e;
  color: #ffffff;
  padding: 3px 6px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}

.wiki-label-edit{
  border-radius: 4px;
  background-color: #fbbf1e;
  color: #ffffff;
  padding: 3px 6px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;

}

.timeline_view_content_title {
  margin: 0;
  color: #1d1d1d;
  font-size: clamp(22px, 3vw, 30px);
  font-weight: 800;
  line-height: 1.25;
}

.timeline_view_content_year_range {
  display: inline-block;
  margin-left: 8px;
  color: #777777;
  font-size: 15px;
  font-weight: 500;
  white-space: nowrap;
  vertical-align: text-top;
  padding: 4px 0 0 0;
}

.timeline_view_content_cover {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  object-fit: cover;
  background-color: #eeeeee;
}

.timeline_view_content_desc {
  margin: 0;
  color: #555555;
  font-size: clamp(13px, 1.2vw, 15px);
  font-weight: 500;
  line-height: 1.5;
  word-break: keep-all;
}

.timeline_view_content_stats {
  margin-top: 2px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  color: #a5a5a5;
  font-size: 14px;
  font-weight: 400;
}

.timeline_view_content_metrics {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  min-width: 0;
}

.timeline_view_content_metric {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.timeline_view_like_button {
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  padding: 0;
  cursor: pointer;
}

.timeline_view_like_button.is_active,
.timeline_view_like_button.is_active i {
  color: #e2506d;
}

.timeline_view_like_button:focus-visible {
  outline: 2px solid #e2506d;
  outline-offset: 3px;
  border-radius: 4px;
}

.timeline_view_like_button:disabled {
  cursor: default;
  opacity: 0.72;
}

.timeline_view_content_metric i {
  color: #a5a5a5;
}

.timeline_view_content_bookmark {
  flex: 0 0 auto;
  border: 0;
  background: transparent;
  color: #a5a5a5;
  font-size: 18px;
  line-height: 1;
  padding: 0 4px;
  cursor: pointer;
}

.timeline_view_content_bookmark i {
  color: inherit;
}

.timeline_view_content_bookmark.is_active {
  color: #418fde;
}

.timeline_view_content_bookmark:focus-visible {
  outline: 2px solid #7aaef2;
  outline-offset: 3px;
  border-radius: 4px;
}

.timeline_view_content_divider {
  width: 100%;
  height: 1px;
  border: 0;
  background-color: #e5e5e5;
  margin: 4px 0 0;
}

.timeline_view_content_actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.timeline_view_content_action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  padding: 8px 13px;
  border: 1px solid #dddddd;
  border-radius: 999px;
  background-color: #ffffff;
  color: #333333;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
}

.timeline_view_content_action i {
  font-size: 13px;
}

.timeline_view_content_action:hover {
  border-color: #cccccc;
  background-color: #f8f8f8;
}

.timeline_view_content_action.is_primary {
  border-color: #418fde;
  background-color: #418fde;
  color: #ffffff;
}

.timeline_view_content_action.is_primary:hover {
  border-color: #327ecb;
  background-color: #327ecb;
}

.timeline_view_content_action.is_join {
  border-color: #fdc61d;
  background-color: #fdc61d;
  color: #222222;
}

.timeline_view_content_action.is_join:hover {
  border-color: #edb812;
  background-color: #edb812;
}

.timeline_view_content_action:focus-visible {
  outline: 2px solid #7aaef2;
  outline-offset: 3px;
}



.timeline_view_summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 30px;
  padding: 18px 20px;
  border: 1px solid #e4e4e4;
  border-radius: 10px;
  background-color: #f8f8f8;
  color: #1d1d1d;
  font-size: clamp(15px, 1.4vw, 18px);
  font-weight: 800;
  line-height: 1.2;
}

.timeline_view_summary_events {
  color: #327ecb;
  text-align: right;
  white-space: nowrap;
}
.timeline_view_content_secondary {
  border-radius: 8px;
}

.timeline_view_related {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.timeline_view_related_tag .tag_color {
  font-size: 8px;
  margin-right: 4px;
}

.timeline_view_related_title {
  margin: 0;
  color: #1d1d1d;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.25;
}

.timeline_view_related_grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
}

.timeline_view_media_grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.timeline_view_media_card {
  min-width: 0;
  cursor: pointer;
}

.timeline_view_media_thumb_wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 8px;
  overflow: hidden;
  background-color: #eeeeee;
}

.timeline_view_media_thumb {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.timeline_view_media_play_badge {
  position: absolute;
  top: 7px;
  right: 7px;
  z-index: 1;
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background-color: rgba(17, 24, 39, 0.72);
  color: #ffffff;
  font-size: 11px;
  pointer-events: none;
}

.timeline_view_media_play_badge i {
  margin-left: 2px;
}

.timeline_view_media_info {
  margin-top: 8px;
  min-width: 0;
}

.timeline_view_media_year {
  display: block;
  color: #1d1d1d;
  font-size: clamp(14px, 1vw, 16px);
  font-weight: 800;
  line-height: 1.25;
}

.timeline_view_media_title {
  margin: 3px 0 5px 0;
  color: #4f5f70;
  font-size: clamp(14px, 1vw, 16px);
  font-weight: 500;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.timeline_view_related_card {
  min-width: 0;
  padding: 12px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background-color: #ffffff;
  box-sizing: border-box;
}

.timeline_view_related_body {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
}

.timeline_view_related_thumb {
  display: block;
  width: 130px;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 8px;
  background-color: #eeeeee;
  flex: 0 0 auto;
}

.timeline_view_related_separator_thumb {
  position: relative;
  width: 130px;
  aspect-ratio: 1 / 1;
  border-radius: 8px;
  background-color: #f8f8f8;
  flex: 0 0 auto;
}

.timeline_view_related_separator_thumb::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 14px;
  right: 14px;
  height: 2px;
  transform: translateY(-50%);
  border-radius: 999px;
  background-color: #bebfbf;
}

.timeline_view_related_text {
  min-width: 0;
  flex: 1;
}

.timeline_view_related_tag {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  margin-top: 7px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  padding: 4px 8px;
}

.timeline_view_related_name {
  margin: 0;
  color: #333333;
  font-size: clamp(17px, 1.2vw, 20px);
  font-weight: 800;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding-left: 10px;
}

.timeline_view_related_desc {
  display: -webkit-box;
  margin: 4px 0 0;
  color: #777777;
  font-size: clamp(13px, 1.2vw, 15px);
  font-weight: 500;
  line-height: 1.35;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  padding-left: 10px;
}

.timeline_view_related_date {
  margin: 0 0 10px;
  color: #333333;
  font-size: clamp(13px, 1.2vw, 15px);
  font-weight: 700;
  line-height: 1.2;
  text-align: left;
  background-color: #f8f8f8;
  border-radius: 6px;
  padding: 8px 12px;
}

.timeline_view_author_box {
  margin-top: 24px;
  padding:0 0 20px 0;
}

.timeline_view_author_count {
  color: #327ecb;
  font-size: clamp(11px, 1.2vw, 13px);
  font-weight: 500;
  position: relative;
  top: -4px;
}

.timeline_view_author_title {
  margin: 0 0 14px;
  color: #1d1d1d;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.25;
}

.timeline_view_history_trigger {
  border: 0;
  padding: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  color: inherit;
}

.timeline_view_history_trigger:hover {
  color: #327ecb;
}

.timeline_view_author_groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.timeline_view_author_group {
  min-width: 0;
}

.timeline_view_author_list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.timeline_view_author_item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 44px;
}

.timeline_view_author_profile {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.timeline_view_author_avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
}

.timeline_view_author_name {
  color: #333333;
  font-size: 14px;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.timeline_view_creator_badge {
  position: relative;
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  color: #418fde;
  line-height: 1;
}

.timeline_view_creator_badge_shape {
  position: absolute;
  inset: 0;
  color: currentColor;
  font-size: 18px;
  line-height: 1;
}

.timeline_view_creator_badge_check {
  position: relative;
  z-index: 1;
  color: #ffffff;
  font-size: 8px;
  line-height: 1;
}

.timeline_view_participant_profile {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.timeline_view_participant_avatars {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}

.timeline_view_participant_avatars .timeline_view_author_avatar {
  border: 2px solid #ffffff;
  box-sizing: border-box;
}

.timeline_view_participant_avatars .timeline_view_author_avatar + .timeline_view_author_avatar {
  margin-left: -10px;
}

.timeline_view_author_tag {
  flex: 0 0 auto;
  padding: 5px 8px;
  border-radius: 999px;
  background-color: #418fde;
  color: #ffffff;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
}

.timeline_view_author_date {
  flex: 0 0 auto;
  color: #999999;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}



.timeline_event_modal[hidden] {
  display: none;
}

html.timeline_event_modal_open,
body.timeline_event_modal_open {
  height: 100%;
  overflow: hidden;
}

.timeline_event_modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  padding: 24px;
  box-sizing: border-box;
  overscroll-behavior: contain;
}

.timeline_event_modal_backdrop {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.42);
}

.timeline_event_modal_dialog {
  position: relative;
  width: min(560px, 100%);
  margin: auto 0;
  border-radius: 8px;
  background-color: #ffffff;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.24);
  overflow: visible;
  z-index: 1;
}

.timeline_event_modal_scroll {
  padding: 28px;
  box-sizing: border-box;
}

.timeline_event_modal_close {
  position: absolute;
  top: 20px;
  right: 24px;
  z-index: 2;
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.92);
  color: #333333;
  font-size: 17px;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12);
}

.timeline_event_modal_title {
  margin: 0;
  padding-right: 42px;
  color: #1d1d1d;
  font-size: 24px;
  font-weight: 800;
  line-height: 1.3;
}

.timeline_event_modal_date {
  margin: 8px 0 18px;
  color: #5f6f80;
  font-size: clamp(15px, 1.2vw, 18px);
  font-weight: 600;
  background-color: #f8f8f8;
  border-radius: 6px;
  padding: 8px 12px;
  text-align: center;
}

.timeline_event_modal_image {
  display: block;
  width: 100%;
  height: auto;
  background-color: #eeeeee;
  user-select: none;
  -webkit-user-drag: none;
}

.timeline_event_modal_image_carousel[hidden] {
  display: none;
}

.timeline_event_modal_image_carousel {
  position: relative;
  width: 100%;
  overflow: hidden;
  touch-action: pan-y;
}

.timeline_event_modal_image_track {
  display: flex;
  width: 100%;
  align-items: flex-start;
  transition: transform 220ms ease;
  will-change: transform;
}

.timeline_event_modal_image_carousel.is_dragging .timeline_event_modal_image_track {
  transition: none;
}

.timeline_event_modal_image_slide {
  flex: 0 0 100%;
  width: 100%;
}

.timeline_event_modal_image_frame {
  position: relative;
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  background-color: #eeeeee;
}

.timeline_event_modal_image_source {
  display: block;
  margin-top: 8px;
  color: rgba(95, 111, 128, 0.58);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
  white-space: nowrap;
}

.timeline_event_modal_image_caption {
  margin: 10px 2px 0;
  color: #526170;
  font-size: 14px;
  line-height: 1.6;
  white-space: pre-wrap;
}

.timeline_event_modal_image_source:hover {
  color: rgba(65, 143, 222, 0.82);
}

.timeline_event_modal_image_nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.88);
  color: #202428;
  font-size: 16px;
  cursor: pointer;
  opacity: 0;
  transform: translateY(-50%);
  transition: opacity 160ms ease, background-color 160ms ease;
}

.timeline_event_modal_image_carousel:hover .timeline_event_modal_image_nav,
.timeline_event_modal_image_carousel:focus-within .timeline_event_modal_image_nav {
  opacity: 1;
}

.timeline_event_modal_image_nav:hover {
  background-color: #ffffff;
}

.timeline_event_modal_image_nav.is_prev {
  left: 12px;
}

.timeline_event_modal_image_nav.is_next {
  right: 12px;
}

.timeline_event_modal_image_dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 12px;
  z-index: 2;
  display: flex;
  justify-content: center;
  gap: 7px;
  pointer-events: none;
}

.timeline_event_modal_image_dot {
  width: 8px;
  height: 8px;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background-color: rgba(255, 255, 255, 0.58);
  cursor: pointer;
  pointer-events: auto;
}

.timeline_event_modal_image_dot.is_active {
  background-color: #ffffff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
}

.timeline_event_modal_image_carousel:not(.has_multiple) .timeline_event_modal_image_nav,
.timeline_event_modal_image_carousel:not(.has_multiple) .timeline_event_modal_image_dots {
  display: none;
}

.timeline_event_modal_video {
  margin-top: 14px;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  overflow: hidden;
  background-color: #111111;
}

.timeline_event_modal_video_frame {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

.timeline_event_modal_desc {
  margin: 18px 0 0;
  color: #555555;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.6;
  white-space: pre-line;
}

.timeline_event_modal_links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.timeline_event_modal_link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 48px;
  padding: 8px 8px;
  border: 1px solid #d8e1ea;
  border-radius: 10px;
  background-color: #ffffff;
  color: #333333;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  box-sizing: border-box;
}

.timeline_event_modal_link span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  margin-left: 2px;
}

.timeline_event_modal_link.has_meta {
  padding: 8px;
}

.timeline_event_modal_link_image {
  flex: 0 0 auto;
  width: 62px;
  height: 62px;
  border-radius: 8px;
  background-color: #f3f5f7;
  object-fit: cover;
}

.timeline_event_modal_link_body {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  flex-direction: column;
  gap: 5px;
}

.timeline_event_modal_link_title {
  display: block;
  min-width: 0;
  overflow: hidden;
  color: #222222;
  font-size: 14px;
  font-weight: 850;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.timeline_event_modal_link_desc {
  display: -webkit-box;
  overflow: hidden;
  color: #777777;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.timeline_event_modal_link_arrow {
  flex: 0 0 auto;
  margin-left: auto;
  color: #999999;
  font-size: 14px;
}

/* .timeline_event_modal_link:hover {
  border-color: #418fde;
  color: #246faa;
}*/

.event_link_attached_item {
  position: relative;
  margin-top: 2px;
  padding-right: 42px;
}

.event_link_attached_item.has_meta {
  padding-right: 42px;
}

.event_link_attached_remove {
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
}

.timeline_event_modal_tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 18px;
}

.timeline_event_modal_tag {
  background-color: #ffffff;
}

.timeline_event_modal_stats {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #eeeeee;
  color: #999999;
  font-size: 13px;
  font-weight: 600;
}

.timeline_event_modal_stats span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.timeline_event_modal_comment {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 20px;
}

.timeline_event_modal_comment_input {
  width: 100%;
  min-width: 0;
  resize: none;
  border: 1px solid #dddddd;
  border-radius: 8px;
  padding: 10px 12px;
  color: #333333;
  font-size: 14px;
  line-height: 1.5;
  box-sizing: border-box;
}

.timeline_event_modal_comment_input:focus {
  outline: none;
  border-color: #6ea5de;
  box-shadow: 0 0 0 3px rgba(65, 143, 222, 0.16);
}

.timeline_event_modal_comment_submit {
  align-self: flex-end;
  min-height: 34px;
  border: 0;
  border-radius: 999px;
  background-color: #418fde;
  color: #ffffff;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.timeline_event_modal_comment_submit:hover {
  background-color: #327ecb;
}

.timeline_event_modal_comment_list {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid #eeeeee;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.timeline_event_modal_comment_item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.timeline_event_modal_comment_avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
}

.timeline_event_modal_comment_body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.timeline_event_modal_comment_head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.timeline_event_modal_comment_name {
  color: #333333;
  font-size: 14px;
  font-weight: 800;
}

.timeline_event_modal_comment_date {
  color: #bdbdbd;
  font-size: 12px;
  font-weight: 400;
}

.timeline_event_modal_comment_text {
  margin: 0;
  color: #555555;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
}

.timeline_view_resize_wrap {
  display: flex;
  justify-content: center;
  margin-top: 10px;
}

.timeline_view_resize_handle {
  width: 102px;
  height: 8px;
  border: 0;
  border-radius: 999px;
  background: #cdcdcd;

  cursor: ns-resize;
  padding: 0;
  touch-action: none;
}

.timeline_view_resize_handle:hover,
.timeline_view_resize_handle.is_dragging {
  background: #bbbbbb;
}

.timeline_view_resize_handle:focus-visible {
  outline: 2px solid #7aaef2;
  outline-offset: 2px;
}

body.timeline_resizing {
  cursor: ns-resize;
  user-select: none;
}

.timeline_loading_cursor {
  --timeline-loader-r: 18px;
  --timeline-loader-main: #418fde;
  --timeline-loader-soft: #eeeeee;
  --timeline-loader-g1: var(--timeline-loader-main) 96%, #0000;
  --timeline-loader-g2: var(--timeline-loader-soft) 96%, #0000;
  position: fixed;
  left: var(--timeline-loader-x, 50vw);
  top: var(--timeline-loader-y, 50vh);
  z-index: 10000;
  width: calc(2 * var(--timeline-loader-r));
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  pointer-events: none;
  opacity: 0;
  translate: 14px 14px;
  scale: 0.9;
  transition: opacity 0.16s ease, scale 0.16s ease;
  -webkit-mask: linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0);
  animation: timeline-loading-cursor-spin 2s infinite linear;
}

.timeline_loading_cursor:not(.has_position) {
  opacity: 0;
}

.timeline_loading_cursor::before,
.timeline_loading_cursor::after {
  content: "";
  grid-area: 1 / 1;
  width: 50%;
  background:
    radial-gradient(farthest-side, var(--timeline-loader-g1)) calc(var(--timeline-loader-r) + 0.866 * var(--timeline-loader-r) - var(--timeline-loader-r)) calc(var(--timeline-loader-r) - 0.5 * var(--timeline-loader-r) - var(--timeline-loader-r)),
    radial-gradient(farthest-side, var(--timeline-loader-g1)) calc(var(--timeline-loader-r) + 0.866 * var(--timeline-loader-r) - var(--timeline-loader-r)) calc(var(--timeline-loader-r) - 0.5 * var(--timeline-loader-r) - var(--timeline-loader-r)),
    radial-gradient(farthest-side, var(--timeline-loader-g2)) calc(var(--timeline-loader-r) + 0.5 * var(--timeline-loader-r) - var(--timeline-loader-r)) calc(var(--timeline-loader-r) - 0.866 * var(--timeline-loader-r) - var(--timeline-loader-r)),
    radial-gradient(farthest-side, var(--timeline-loader-g1)) 0 calc(-1 * var(--timeline-loader-r)),
    radial-gradient(farthest-side, var(--timeline-loader-g2)) calc(var(--timeline-loader-r) - 0.5 * var(--timeline-loader-r) - var(--timeline-loader-r)) calc(var(--timeline-loader-r) - 0.866 * var(--timeline-loader-r) - var(--timeline-loader-r)),
    radial-gradient(farthest-side, var(--timeline-loader-g1)) calc(var(--timeline-loader-r) - 0.866 * var(--timeline-loader-r) - var(--timeline-loader-r)) calc(var(--timeline-loader-r) - 0.5 * var(--timeline-loader-r) - var(--timeline-loader-r)),
    radial-gradient(farthest-side, var(--timeline-loader-g2)) calc(-1 * var(--timeline-loader-r)) 0,
    radial-gradient(farthest-side, var(--timeline-loader-g1)) calc(var(--timeline-loader-r) - 0.866 * var(--timeline-loader-r) - var(--timeline-loader-r)) calc(var(--timeline-loader-r) + 0.5 * var(--timeline-loader-r) - var(--timeline-loader-r));
  background-size: calc(2 * var(--timeline-loader-r)) calc(2 * var(--timeline-loader-r));
  background-repeat: no-repeat;
}

.timeline_loading_cursor::after {
  transform: rotate(180deg);
  transform-origin: right;
}

.timeline_loading_cursor.is_visible.has_position {
  opacity: 1;
  scale: 1;
}

@keyframes timeline-loading-cursor-spin {
  100% {
    rotate: -1turn;
  }
}

.timeline_view_embed_iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.timeline_embed_body {
  margin: 0;
  background-color: #ffffff;
  overflow-x: hidden;
  overflow-y: auto;
}

.timeline_view_embed_page {
  min-height: 100dvh;
}

.timeline_view_embed_page .timeline_view_embed_section,
.timeline_view_embed_page .timeline_v2_stage {
  height: 100dvh;
}

.timeline_embed_modal_dialog {
  width: min(560px, 100%);
}

.timeline_embed_navigation {
  position: relative;
  z-index: 20;
  padding: 12px 14px 1px 14px;
  background: #fff;
  border-bottom: 0px solid #e5eaf0;
}

.timeline_embed_navigation .timeline_view_title_row { justify-content: flex-start; gap: 8px; }
.timeline_embed_navigation .timeline_view_option_bar { margin-left: 0; overflow-x: auto; }
.timeline_embed_brand {
  display: inline-flex;
  align-items: baseline;
  flex: 0 0 auto;
  color: #111;
  font-size: clamp(16px, 1.8vw, 21px);
  font-weight: 900;
  letter-spacing: .7px;
  line-height: 1;
  text-decoration: none;
  margin-left:8px;
  margin-top:-2px;
}
.timeline_embed_brand span {
  color: #418fde;
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  font-size: .72em;
  font-weight: 400;
  letter-spacing: 0;
}
.timeline_embed_brand:hover { opacity: .72; }
.timeline_embed_brand:focus-visible { outline: 2px solid #7aaef2; outline-offset: 4px; border-radius: 3px; }
.timeline_view_embed_page .timeline_view_embed_section { height: calc(100dvh - 61px); }
.timeline_view_embed_page .timeline_view_skin_panel[data-timeline-view-panel="timeline"],
.timeline_view_embed_page .timeline_view_embed_section .timeline_v2_stage { height: calc(100dvh - 61px); }

.timeline_embed_options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid #d9e1ea;
  border-radius: 8px;
}
.timeline_embed_options legend { padding: 0 6px; font-weight: 700; }
.timeline_embed_options label { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }

@media (max-width: 640px) {
  .timeline_embed_navigation { padding: 8px 16px; }
  .timeline_embed_navigation .timeline_view_title_row { flex-wrap: nowrap; }
  .timeline_embed_navigation .timeline_view_option_bar span { white-space: nowrap; }
  .timeline_embed_brand { font-size: 15px; }
}

.timeline_embed_code_textarea {
  display: block;
  width: 100%;
  min-height: 132px;
  border: 1px solid #d9e1ea;
  border-radius: 8px;
  box-sizing: border-box;
  padding: 14px;
  background-color: #f8fafc;
  color: #182433;
  font-family: Consolas, "Courier New", monospace;
  font-size: 13px;
  line-height: 1.5;
  resize: vertical;
}

.timeline_embed_code_textarea:focus {
  border-color: #1f8f72;
  box-shadow: 0 0 0 3px rgba(31, 143, 114, 0.14);
  outline: none;
}

.timeline_embed_copy_btn {
  min-width: 112px;
}

.timeline_share_modal_dialog {
  width: min(360px, 100%);
}

.timeline_share_grid {
  display: flex;
  align-items: center;
  gap: 14px;
}

.timeline_share_button {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  border: 0;
  border-radius: 50%;
  padding: 0;
  background-color: transparent;
  cursor: pointer;
}

.timeline_share_button:disabled {
  cursor: progress;
  opacity: 0.68;
}

.timeline_share_button:hover,
.timeline_share_button:focus-visible {
  outline: none;
}

.timeline_share_icon {
  display: inline-grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: #eff4f8;
  color: #ffffff;
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
  transition: transform 160ms ease, box-shadow 160ms ease;
}

.timeline_share_button:hover .timeline_share_icon,
.timeline_share_button:focus-visible .timeline_share_icon {
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.16);
  transform: translateY(-2px);
}

.timeline_share_button.is_facebook .timeline_share_icon {
  background-color: #1877f2;
}

.timeline_share_button.is_x .timeline_share_icon {
  background-color: #111111;
}

.timeline_share_button.is_naver .timeline_share_icon {
  background-color: #03c75a;
}

.timeline_share_button.is_kakao .timeline_share_icon {
  background-color: #fee500;
  color: #191919;
}

.timeline_share_button.is_qr .timeline_share_icon {
  background-color: #418fde;
  color: #ffffff;
}

.timeline_download_modal_dialog {
  width: min(320px, 100%);
}

.timeline_download_modal_title {
  display: flex;
  align-items: center;
  gap: 8px;
}

.timeline_download_title_text {
  min-width: 0;
  color: #1d1d1d;
  font-family: inherit !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.25;
}

.timeline_download_keeper_tag {
  flex: 0 0 auto;
  font-family: inherit !important;
  font-size: 12px !important;
  line-height: 1;
}

.timeline_download_grid {
  justify-content: left;
}

.timeline_download_button {
  color: inherit;
  text-decoration: none;
}

.timeline_download_button.is_excel .timeline_download_icon {
  background-color: #1f8f4d;
}

.timeline_download_button.is_pdf .timeline_download_icon {
  background-color: #e34f4f;
}

.timeline_download_button.is_image .timeline_download_icon {
  background-color: #418fde;
}

.timeline_download_button:disabled,
.timeline_download_button[disabled] {
  cursor: not-allowed;
  opacity: 0.42;
}

.timeline_download_button:disabled .timeline_download_icon,
.timeline_download_button[disabled] .timeline_download_icon {
  box-shadow: none;
  transform: none;
}

.timeline_wiki_edit_notice_dialog {
  width: min(560px, 100%);
}

.timeline_wiki_edit_notice_intro {
  margin: 0 0 14px;
  color: #253244;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.55;
}

.timeline_wiki_edit_notice_list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 18px;
  color: #4f5f70;
  font-size: 14px;
  line-height: 1.55;
}

.timeline_wiki_edit_notice_check {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 18px;
  color: #182433;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

.timeline_wiki_edit_notice_check input {
  width: 18px;
  height: 18px;
  accent-color: #418fde;
  cursor: pointer;
}

.timeline_wiki_edit_notice_actions {
  margin-top: 20px;
}

.timeline_wiki_edit_notice_submit {
  min-width: 184px;
}

.timeline_wiki_edit_notice_submit:disabled {
  cursor: not-allowed;
  background-color: #b9c5d2;
  color: #ffffff;
}



.timeline_view_category {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  color: #7f7f7f;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.timeline_view_title_row {
  margin-top: 0px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 0 0 10px 0;
}

.timeline_view_title {
  margin: 0;
  font-size: clamp(20px, 3vw, 25px);
  font-weight: 800;
  color: #1d1d1d;
  line-height: 1.25;
}

.timeline_view_title_group {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-right: auto;
}

.timeline_view_public_tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 7px;
  border-radius: 5px;
  background-color: #63e6be;
  color: #0f4f3e;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  margin-left: 5px;
}

.timeline_view_edit_button {
  border: 1px solid #f2c43b;
  background-color: #ffd75e;
  color: #553b00;
  border-radius: 999px;
  padding: 9px 16px;
  min-height: 38px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.timeline_view_edit_button i {
  margin-right: 6px;
}

.timeline_view_edit_button:hover {
  background-color: #f8ca4a;
}

.timeline_view_edit_button:active {
  transform: translateY(1px);
}

.timeline_section_title i {
  color: #f6d37b;
  font-size: clamp(16px, 1.5vw, 20px);
  margin-left: 5px;
  cursor: pointer;
}

.timeline_grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  padding: 0 0 30px 0;
}

.timeline_card {
  position: relative;
  isolation: isolate;
  background-color: #ffffff;
  border: 1px solid #ebebeb;
  border-radius: 14px;
  padding: 12px;
  box-sizing: border-box;
}

.timeline_card_link {
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}

.timeline_card_thumb_wrap {
  position: relative;
  margin-bottom: 11px;
}

.timeline_card_thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  display: block;
  object-fit: cover;
  border-radius: 10px;
  cursor: pointer;
}

.timeline_card_category {
  margin: 0 0 10px 10px;
  font-size: 13px;
  font-weight: 600;
  color: #7f7f7f;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.timeline_card_category_icon {
  font-size: 10px;
  color: #2f7de1;
}

.timeline_card_title {
  margin: 0 0 10px 10px;
  font-size: 19px;
  font-weight: 700;
  color: #1d1d1d;
  line-height: 1.35;
  cursor: pointer;
  min-height: 52px;
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.timeline_card_title_text {
  min-width: 0;
}

.timeline_card_private_icon {
  flex: 0 0 auto;
  margin-top: 5px;
  font-size: 14px;
  color: #9aa3ad;
}

.timeline_card_wiki_badge {
  position: absolute;
  right: 8px;
  bottom: 8px;
  z-index: 2;
  flex: 0 0 auto;
  border-radius: 4px;
  background-color: #fbbf1e;
  color: #ffffff;
  padding: 3px 4px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}


.timeline_card_meta {
  margin: 8px 0 0 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.timeline_card_meta[hidden] {
  display: none;
}

.timeline_card_author {
  margin: 0;
  font-size: 13px;
  font-weight: 600;
  color: #5d5d5d;
  line-height: 1.25;
  cursor: pointer;
}

.timeline_card_profile {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  object-fit: cover;
}

.timeline_card_date {
  display: block;
  margin-top: 1px;
  font-size: 12px;
  font-weight: 400;
  color: #999;
}

.timeline_card_stats {
  margin: 12px 0 5px 10px;
  font-size: 14px;
  font-weight: 400;
  color: #a5a5a5;
  display: flex;
  align-items: center;
  gap: 20px;
}

.timeline_card_metric {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.timeline_card_stats i {
  color: #a5a5a5;
  cursor: pointer;
}

.timeline_card_favorite {
  position: relative;
  z-index: 2;
  margin-left: auto;
  padding: 0 4px;
  border: 0;
  background: transparent;
  color: #a5a5a5;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}

.timeline_card_favorite i,
.timeline_card_favorite.is_active i {
  color: inherit;
}

.timeline_card_favorite.is_active {
  color: #418fde;
}

.timeline_card_favorite:focus-visible {
  outline: 2px solid #7aaef2;
  outline-offset: 3px;
  border-radius: 4px;
}

.timeline_card_stats_sep {
  color: #a5a5a5;
}

.alltimeline_page {
  padding-top: 32px;
}

.alltimeline_search_section {
  margin-bottom: 28px;
}

.alltimeline_search_form {
  margin: 0;
  display: flex;
  justify-content: center;
}

.alltimeline_search_box {
  width: min(680px, 100%);
  height: 54px;
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid #dfe6ee;
  border-radius: 10px;
  padding: 0 8px 0 18px;
  box-sizing: border-box;
  background-color: #ffffff;
}

.alltimeline_search_box i {
  color: #8e9aaa;
  font-size: 16px;
}

.alltimeline_search_box input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: 0;
  background-color: transparent;
  color: #182433;
  font-size: 15px;
  font-weight: 500;
  -webkit-appearance: none;
  appearance: none;
}

.alltimeline_search_box input::placeholder {
  color: #a4adb8;
}

.alltimeline_search_box input:-webkit-autofill,
.alltimeline_search_box input:-webkit-autofill:hover,
.alltimeline_search_box input:-webkit-autofill:focus {
  -webkit-text-fill-color: #182433;
  box-shadow: 0 0 0 1000px #ffffff inset;
}

.alltimeline_search_box button {
  height: 38px;
  border: 0;
  border-radius: 8px;
  padding: 0 18px;
  background-color: #418fde;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.alltimeline_keywords {
  margin-top: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
}

.alltimeline_keywords_title {
  margin-right: 4px;
  color: #6f7b88;
  font-size: 13px;
  font-weight: 700;
}

.alltimeline_keyword {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  border-radius: 999px;
  padding: 0 12px;
  background-color: #f3f7fb;
  color: #536273;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

.alltimeline_keyword:hover {
  color: #2f7de1;
}

.alltimeline_list_section {
  margin-top: 10px;
}

.alltimeline_filter_row {
  position: relative;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.alltimeline_category_tabs {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.alltimeline_category_tab {
  flex: 0 0 auto;
  min-height: 36px;
  border: 1px solid #dfe6ee;
  border-radius: 999px;
  padding: 0 15px;
  background-color: #ffffff;
  color: #596779;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.alltimeline_category_tab i {
  margin-left: 6px;
  font-size: 12px;
  transition: transform 140ms ease;
}

.alltimeline_category_tab.is_active {
  border-color: #418fde;
  background-color: #418fde;
  color: #ffffff;
}

.alltimeline_category_tab[aria-expanded="true"] i {
  transform: rotate(180deg);
}

.alltimeline_category_dropdown {
  position: relative;
  flex: 0 0 auto;
}

.alltimeline_category_menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 20;
  min-width: 150px;
  padding: 7px;
  border: 1px solid #dfe6ee;
  border-radius: 10px;
  background-color: #ffffff;
  box-shadow: 0 8px 22px rgba(14, 34, 54, 0.12);
  box-sizing: border-box;
}

.alltimeline_category_menu[hidden] {
  display: none;
}

.alltimeline_category_option {
  width: 100%;
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 7px;
  border: 0;
  border-radius: 7px;
  padding: 0 10px;
  background-color: transparent;
  color: #4f5f70;
  font-size: 13px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.alltimeline_category_option .timeline_category_dot {
  flex: 0 0 auto;
  font-size: 9px;
}

.alltimeline_category_option:hover,
.alltimeline_category_option.is_selected {
  background-color: #f3f7fb;
  color: #2f7de1;
}

.alltimeline_category_divider {
  height: 1px;
  margin: 7px 4px;
  background-color: #e6edf4;
}

.alltimeline_category_selected {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

.alltimeline_category_selected_item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  border: 1px solid #dfe6ee;
  border-radius: 999px;
  padding: 0 15px;
  background-color: #ffffff;
  color: #596779;
  font-size: 14px;
  font-weight: 700;
  box-sizing: border-box;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.alltimeline_category_selected_item i {
  font-size: 9px;
}

.alltimeline_sort {
  position: relative;
  flex: 0 0 auto;
}

.alltimeline_filter_actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
}

.alltimeline_sort_button {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #dfe6ee;
  border-radius: 999px;
  background-color: #ffffff;
  color: #596779;
  font-size: 15px;
  cursor: pointer;
}

.alltimeline_sort_button:hover,
.alltimeline_sort_button[aria-expanded="true"] {
  border-color: #418fde;
  color: #418fde;
}

.alltimeline_bookmark_filter {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #dfe6ee;
  border-radius: 999px;
  background-color: #ffffff;
  color: #596779;
  font-size: 15px;
  cursor: pointer;
}

.alltimeline_bookmark_filter:hover,
.alltimeline_bookmark_filter.is_active {
  border-color: #418fde;
  color: #418fde;
}

.alltimeline_sort_menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 20;
  min-width: 150px;
  padding: 7px;
  border: 1px solid #dfe6ee;
  border-radius: 10px;
  background-color: #ffffff;
  box-shadow: 0 8px 22px rgba(14, 34, 54, 0.12);
  box-sizing: border-box;
}

.alltimeline_sort_menu[hidden] {
  display: none;
}

.alltimeline_sort_option {
  width: 100%;
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 8px;
  border: 0;
  border-radius: 7px;
  padding: 0 10px;
  background-color: transparent;
  color: #4f5f70;
  font-size: 13px;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

.alltimeline_sort_option i {
  width: 16px;
  color: #a5a5a5;
  text-align: center;
}

.alltimeline_sort_option:hover,
.alltimeline_sort_option.is_selected {
  background-color: #f3f7fb;
  color: #2f7de1;
}

.alltimeline_sort_option.is_selected i {
  color: #2f7de1;
}

.alltimeline_grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.alltimeline_pagination {
  margin-top: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.alltimeline_page_button {
  min-width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #dfe6ee;
  border-radius: 8px;
  background-color: #ffffff;
  color: #596779;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  box-sizing: border-box;
}

.alltimeline_page_button.is_active {
  border-color: #418fde;
  background-color: #418fde;
  color: #ffffff;
}

.alltimeline_page_button:hover {
  border-color: #418fde;
  color: #2f7de1;
}

.alltimeline_page_button.is_active:hover {
  color: #ffffff;
}

.timeline_edit_header {
  width: 100%;
  background-color: #ffffff;
  box-sizing: border-box;
  padding: 0;
  border-bottom: 1px solid #e7e7e7;
}

.timeline_header_inner {
  width: 100%;
  max-width: none;
  height: 72px;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0;
  box-sizing: border-box;
}

.timeline_header_left {
  margin: 0;
  color: #000;
  font-size: clamp(16px, 1.8vw, 22px);
  font-weight: 700;
  line-height: 1.2;
  display: flex;
  align-items: center;
  gap: 0;
  padding-left: 16px;
  padding-right: auto;
  flex: 0 0 auto;
}

.timeline_header_left i {
  margin-right: 15px;
  font-size: clamp(16px, 2vw, 20px);
  color: #a2a2a2;
  cursor: pointer;
}

.timeline_header_back_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
}

.timeline_header_title {
  margin: 0;
  font-size: clamp(14px, 1.5vw, 18px);
  font-weight: 500;
  color: #2d2d2d;
  font-family: "Playwrite GB J", cursive;
  border-right: 1px solid #e7e7e7;
  padding-right: 16px;
}

.timeline_header_subtitle {
  margin-left: 12px;
  font-size: clamp(14px, 1.3vw, 18px);
  font-weight: 500;
  color: #000;
}

.timeline_header_actions {
  position: relative;
  gap: 8px;
  padding-right: 16px;
  display: flex;
  align-items: center;
}

.timeline_view_option_bar {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  
}

.timeline_view_option_bar label {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  border: 1px solid #ddd;
  border-radius: 999px;
  background-color: #ffffff;
}

.timeline_view_option_bar input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.timeline_view_option_bar span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0px 13px;
  border-radius: 999px;
  color: #333;
  font-size: clamp(12px, 1vw, 14px);
  font-weight: 700;
  white-space: nowrap;
  transition: background-color 140ms ease, color 140ms ease;
}

.timeline_view_option_bar span i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 5px 0 0;
  line-height: 1;
  font-size: clamp(12px, 1vw, 13px);
}

.timeline_view_option_bar input[type="radio"]:checked+span {
  background-color: #000000;
  color: #ffffff;
}

.timeline_view_option_bar label:hover span {
  background-color: #f5f5f5;
}

.timeline_view_option_bar input[type="radio"]:checked+span:hover {
  background-color: #000000;
}

.timeline_view_search {
  position: relative;
  flex: 0 0 auto;
  margin-left: auto;
  min-width: 38px;
}

.timeline_view_search_toggle {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid #d8dee6;
  border-radius: 50%;
  background-color: #ffffff;
  color: #222222;
  cursor: pointer;
  transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
}

.timeline_view_search_toggle:hover,
.timeline_view_search_toggle:focus-visible,
.timeline_view_search_toggle[aria-expanded="true"] {
  border-color: #111111;
  background-color: #111111;
  color: #ffffff;
  outline: none;
}

.timeline_view_search_panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 90;
  width: min(420px, calc(100vw - 30px));
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 10px;
  background-color: #ffffff;
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.16);
  box-sizing: border-box;
}

.timeline_view_search_panel[hidden] {
  display: none;
}

.timeline_view_search_form {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

.timeline_view_search_input {
  width: 100%;
  height: 38px;
  border: 1px solid #d8dee6;
  border-radius: 999px;
  padding: 0 44px 0 16px;
  background-color: #ffffff;
  color: #1f2933;
  font-size: 14px;
  font-weight: 700;
  box-sizing: border-box;
}

.timeline_view_search_input::placeholder {
  color: #aab3bd;
  font-weight: 500;
}

.timeline_view_search_input:focus {
  border-color: #418fde;
  box-shadow: 0 0 0 3px rgba(65, 143, 222, 0.14);
  outline: none;
}

.timeline_view_search_submit {
  display: inline-grid;
  place-items: center;
  position: absolute;
  top: 4px;
  right: 5px;
  width: 32px;
  height: 30px;
  border: 0;
  border-radius: 999px;
  background-color: transparent;
  color: #222222;
  cursor: pointer;
}

.timeline_view_search_submit:hover,
.timeline_view_search_submit:focus-visible {
  background-color: #f1f4f7;
  outline: none;
}

.timeline_view_search_results {
  position: static;
  width: 100%;
  max-height: min(58dvh, 520px);
  margin-top: 10px;
  overflow-y: auto;
  border: 0;
  border-top: 1px solid #edf1f5;
  border-radius: 0;
  padding: 8px 0 0;
  background-color: #ffffff;
  box-shadow: none;
  box-sizing: border-box;
}

.timeline_view_search_results[hidden] {
  display: none;
}

.timeline_view_search_result {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 10px;
  width: 100%;
  border: 0;
  border-radius: 7px;
  padding: 8px;
  background-color: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.timeline_view_search_result:hover,
.timeline_view_search_result:focus-visible {
  background-color: #f4f8fd;
  outline: none;
}

.timeline_view_search_thumb {
  display: inline-grid;
  place-items: center;
  width: 58px;
  height: 58px;
  border-radius: 6px;
  overflow: hidden;
  background-color: #eef2f6;
  color: #8b96a3;
}

.timeline_view_search_thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.timeline_view_search_meta {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  gap: 4px;
}

.timeline_view_search_date {
  color: #687586;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
}

.timeline_view_search_title {
  display: -webkit-box;
  overflow: hidden;
  color: #1f2933;
  font-size: 14px;
  font-weight: 850;
  line-height: 1.32;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.timeline_view_search_empty {
  margin: 0;
  padding: 18px 12px;
  color: #8b96a3;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

.timeline_search_modal_dialog {
  width: min(420px, 100%);
}

.timeline_view_search_form.is_modal {
  margin-top: 12px;
}

.timeline_view_search_results.is_modal {
  position: static;
  width: 100%;
  max-height: min(58dvh, 520px);
  margin-top: 10px;
  box-shadow: none;
}

.timeline_edit_btn {
  border: 1px solid #ddd;
  background-color: #ffffff;
  color: #000;
  border-radius: 999px;
  padding: 9px 16px;
  min-height: 38px;
  font-size: clamp(12px, 1.1vw, 15px);
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 140ms ease;
}

.timeline_edit_btn:hover {
  border-color: #ccc;
  background-color: #f8f8f8;
}

.timeline_settings_btn[aria-expanded="true"] {
  border-color: #000000;
  background-color: #000000;
  color: #ffffff;
}

.timeline_settings_btn[aria-expanded="true"]:hover {
  border-color: #000000;
  background-color: #000000;
}

.add_event_btn[aria-expanded="true"] {
  border-color: #000000;
  background-color: #000000;
  color: #ffffff;
}

.add_event_btn[aria-expanded="true"]:hover {
  border-color: #000000;
  background-color: #000000;
}

.history_btn[aria-expanded="true"],
.history_btn.is-active {
  border-color: #000000;
  background-color: #000000;
  color: #ffffff;
}

.history_btn[aria-expanded="true"]:hover,
.history_btn.is-active:hover {
  border-color: #000000;
  background-color: #000000;
}

.timeline_edit_btn:active {
  transform: translateY(0);
}

.timeline_edit_btn i {
  font-size: clamp(12px, 1.1vw, 14px);
}

.timeline_edit_btn .btn_text {
  white-space: nowrap;
}

.save_btn {
  border: 0;
  background-color: #418fde;
  color: #ffffff;
}

.save_btn:hover {
  background-color: #327ecb;
}

.timeline_settings_panel {
  position: fixed;
  top: 75px;
  right: 0;
  width: 350px;
  height: calc(100vh - 75px);
  padding: 10px;
  box-sizing: border-box;
  z-index: 70;
}

.timeline_settings_panel_inner {
  height: 100%;
  background: #ffffff;
  border-radius: 10px;
  box-shadow: -2px 0 6px rgba(0, 0, 0, 0.05);
  padding: 20px 18px;
  box-sizing: border-box;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
}

#timelineSettingsPanel .timeline_settings_panel_inner {
  position: relative;
}

.timeline_settings_modal_close {
  position: absolute;
  top: 12px;
  right: 12px;
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background-color: #f3f6fa;
  color: #2d3134;
  font-size: 16px;
  cursor: pointer;
}

.timeline_settings_modal_close:hover {
  background-color: #e6edf5;
}

.timeline_settings_modal_close:focus-visible {
  outline: 2px solid #7aaef2;
  outline-offset: 2px;
}

.timeline_settings_title {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  color: #1f2d3d;
}

.timeline_settings_title span {
  font-family: "Playwrite GB J", "Comic Sans MS", cursive;
  font-weight: 400;
  font-size: 18px;
}




.timeline_settings_field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
}

.timeline_settings_type {
  border: 1px solid #d8e1ea;
  border-radius: 6px;
  background: #f8fbff;
  padding: 10px 12px;
  font-size: 14px;
  box-sizing: border-box;
  color: #182433;
  text-align: center;
}

.timeline_settings_field label,
.timeline_settings_label {
  font-size: 13px;
  font-weight: 700;
  color: #3a4b5d;
}

.timeline_settings_field input[type="text"],
.timeline_settings_field input[type="date"],
.timeline_settings_field textarea {
  width: 100%;
  border: 1px solid #d8e1ea;
  border-radius: 6px;
  background: #f8fbff;
  padding: 10px 12px;
  font-size: 14px;
  box-sizing: border-box;
  color: #182433;
}

.timeline_settings_field textarea {
  resize: none;
}

.timeline_settings_field input[type="text"]:focus,
.timeline_settings_field input[type="date"]:focus,
.timeline_settings_field textarea:focus {
  outline: none;
  border-color: #6ea5de;
  background: #ffffff;
  box-shadow: 0 0 0 3px rgba(65, 143, 222, 0.16);
}

.timeline_settings_field input[type="date"]:disabled {
  background: #eef2f7;
  color: #8a98a8;
  cursor: not-allowed;
}

.event_date_row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}

.event_date_item {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.event_date_check_row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.event_date_bc_check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  color: #4f5f6f;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
}

.event_date_bc_check input[type="checkbox"] {
  width: 15px;
  height: 15px;
  accent-color: #418fde;
  cursor: pointer;
}

.event_media_choice_grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.timeline_cover_media_choice_grid {
  grid-template-columns: 1fr;
  width: 100%;
  flex: 1 1 auto;
}

.timeline_cover_media_row {
  display: flex;
  align-items: stretch;
  gap: 10px;
}

.timeline_cover_media_row.has-image {
  align-items: stretch;
}

.timeline_cover_media_row.has-image .timeline_cover_media_choice_grid {
  width: 0;
  flex: 1 1 0;
}

.timeline_cover_media_row .event_media_choice {
  width: 100%;
}

.timeline_cover_media_row.has-image .event_media_choice {
  height: 100%;
}

.timeline_cover_media_row.has-image .cover_thumb_list.has_image {
  display: block;
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
}

.timeline_cover_media_row.has-image .cover_thumb_item {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  border: 1px solid #d6e2ef;
  border-radius: 5px;
  box-sizing: border-box;
}

.timeline_cover_media_row.has-image .cover_thumb_img {
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
}

.event_media_choice {
  min-width: 0;
  min-height: 64px;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  background-color: #ffffff;
  color: #4f5f70;
  font-size: clamp(11px, 1.2vw, 12px);
  font-weight: 800;
  cursor: pointer;
}

.event_media_choice i {
  color: #418fde;
  font-size: 13px;
  line-height: 1;
}

.event_media_choice:hover {
  border-color: #418fde;
  background-color: #f5faff;
}

.event_media_choice:disabled {
  cursor: default;
  opacity: 0.35;
}

.event_media_choice:disabled:hover {
  border-color: #d8e1ea;
  background-color: #ffffff;
}

.event_media_video_preview {
  display: flex;
  margin-top: 0px;
  gap: 8px;
  flex-wrap: wrap;
}

.event_media_video_preview[hidden] {
  display: none;
}

.event_media_video_thumb_item {
  width: 50px;
  height: 50px;
}

.event_media_video_thumb {
  width: 50px;
  height: 50px;
  border-radius: 5px;
  object-fit: cover;
}

.event_media_video_play_badge {
  position: absolute;
  top: 4px;
  right: 4px;
  z-index: 1;
  display: inline-grid;
  place-items: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: rgba(17, 24, 39, 0.72);
  color: #ffffff;
  font-size: 8px;
  pointer-events: none;
}

#eventImageThumbList.has_image,
#eventYoutubePreview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

#eventYoutubePreview[hidden] {
  display: none;
}

#eventImageThumbList .cover_thumb_item,
#eventYoutubePreview .event_media_video_thumb_item {
  width: 100%;
  height: 64px;
  min-width: 0;
}

#eventImageThumbList .cover_thumb_img,
#eventYoutubePreview .event_media_video_thumb {
  width: 100%;
  height: 100%;
}

#eventImageThumbList .cover_thumb_remove {
  inset: auto;
  top: 4px;
  right: 4px;
  z-index: 2;
  width: 18px;
  height: 18px;
  padding: 0;
  border-radius: 50%;
  background: rgba(17, 24, 39, 0.72);
  font-size: 18px;
  line-height: 1;
}

#eventYoutubePreview .event_media_video_play_badge {
  top: 50%;
  right: 50%;
  transform: translate(50%, -50%);
  z-index: 1;
  width: 22px;
  height: 22px;
  font-size: 10px;
  transition: opacity 160ms ease;
}

#eventYoutubePreview .event_media_video_play_badge i {
  margin-left: 2px;
}

#eventYoutubePreview .event_media_video_remove {
  inset: auto;
  top: 4px;
  right: 4px;
  z-index: 2;
  width: 18px;
  height: 18px;
  padding: 0;
  border-radius: 50%;
  background: rgba(17, 24, 39, 0.72);
  font-size: 18px;
  line-height: 1;
}

#eventImageThumbList .cover_thumb_remove i,
#eventYoutubePreview .event_media_video_remove i {
  display: block;
  width: 1em;
  height: 1em;
  line-height: 1;
}

.event_media_modal[hidden] {
  display: none;
}

.event_media_modal {
  position: fixed;
  inset: 0;
  z-index: 1400;
  display: grid;
  place-items: center;
  padding: 20px;
  box-sizing: border-box;
}

.event_media_modal_backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.42);
}

.event_media_modal_dialog {
  position: relative;
  z-index: 1;
  width: min(420px, 100%);
  border-radius: 8px;
  background-color: #ffffff;
  padding: 24px;
  box-shadow: 0 18px 54px rgba(0, 0, 0, 0.22);
  box-sizing: border-box;
}

.event_media_modal_close {
  position: absolute;
  top: 12px;
  right: 12px;
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background-color: #f3f7fb;
  color: #333333;
  cursor: pointer;
}

.event_media_modal_title {
  margin: 0 42px 18px 0;
  color: #1d1d1d;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
}

.event_media_modal_title span{
  font-family: "Playwrite GB J", cursive;
  font-weight: 400;
  font-size: 18px;
}

.event_media_upload_area {
  min-height: 132px;
}

.event_image_caption_dialog { max-width: 460px; }
.event_image_caption_body { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 14px; align-items: stretch; }
.event_image_caption_preview { display: block; width: 80px; height: 80px; border-radius: 10px; object-fit: cover; background: #eef2f5; }
.event_image_caption_input_wrap { min-width: 0; height: 80px; }
.event_image_caption_input { width: 100%; height: 100%; min-height: 0; box-sizing: border-box; resize: none; }

.event_ai_image_panel {
  margin-top: 20px;
}

.event_ai_image_title {
  margin: 0 0 10px;
  color: #182433;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.35;
}

.event_image_search_form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}

.event_image_search_input {
  min-width: 0;
}

.event_image_search_btn {
  min-height: 42px;
  border: 0;
  border-radius: 8px;
  padding: 0 15px;
  background-color: #1f8f72;
  color: #ffffff;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.event_image_search_btn:hover {
  background-color: #197a61;
}

.event_image_search_btn:disabled {
  cursor: default;
  opacity: 0.5;
}

.event_image_search_status {
  min-height: 18px;
  margin-top: 8px;
  color: #6c7a89;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}

.event_image_search_status.is-error {
  color: #d64545;
}

.event_image_search_result_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.event_image_search_result_grid[hidden] {
  display: none;
}

.event_image_search_result {
  position: relative;
  aspect-ratio: 4 / 3;
  border: 2px solid transparent;
  border-radius: 8px;
  padding: 0;
  background-color: #f5faff;
  overflow: hidden;
  cursor: pointer;
}

.event_image_search_result:hover,
.event_image_search_result:focus-visible {
  border-color: #1f8f72;
  outline: none;
}

.event_image_search_result:disabled {
  cursor: wait;
  opacity: 0.72;
}

.event_image_search_result img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.kakao_chat_button {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: #2e7bf5;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  color: #ffffff;
  font-size: 24px;
  text-decoration: none;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.kakao_chat_button:hover,
.kakao_chat_button:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
  color: #ffffff;
}

.event_image_search_source {
  position: absolute;
  right: 6px;
  bottom: 6px;
  max-width: calc(100% - 12px);
  border-radius: 999px;
  padding: 3px 7px;
  background-color: rgba(15, 23, 42, 0.78);
  color: #ffffff;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event_ai_image_prompt {
  width: 100%;
  min-height: 60px;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  padding: 11px 12px;
  color: #333333;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
  resize: none;
  box-sizing: border-box;
}

.event_ai_image_prompt:focus {
  outline: none;
  border-color: #6ea5de;
  box-shadow: 0 0 0 3px rgba(65, 143, 222, 0.16);
}

.event_ai_image_action_row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
}

.event_ai_image_limit {
  color: #6c7a89;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.event_ai_image_generate_btn {
  min-height: 36px;
  border: 0;
  border-radius: 999px;
  padding: 8px 15px;
  background-color: #418fde;
  color: #ffffff;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.event_ai_image_generate_btn:hover {
  background-color: #2f7dcc;
}

.event_ai_image_generate_btn:disabled {
  cursor: default;
  opacity: 0.45;
}

.event_ai_image_generate_btn:disabled:hover {
  background-color: #418fde;
}

.event_ai_image_result_grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}

.event_ai_image_result {
  position: relative;
  aspect-ratio: 1 / 1;
  border: 2px solid transparent;
  border-radius: 8px;
  padding: 0;
  background-color: #f5faff;
  overflow: hidden;
  cursor: pointer;
}

.event_ai_image_result img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.event_media_url_input {
  width: 100%;
  min-height: 42px;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  padding: 12px 12px;
  color: #333333;
  font-size: 14px;
  font-weight: 600;
  box-sizing: border-box;
}

.timeline_view_content_event_caption {
  margin: 8px 18px 0;
  color: #617184;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  white-space: pre-wrap;
}

.timeline_content_mobile_caption {
  margin: 8px 0 0;
  color: #617184;
  font-size: 13px;
  line-height: 1.5;
  white-space: pre-wrap;
}

.event_media_url_input.event_image_caption_input {
  height: 80px;
  min-height: 80px;
  max-height: 80px;
}

.event_image_caption_input::placeholder {
  color: #b7c0c9;
  opacity: 1;
}

.event_media_modal_actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 16px;
}

.event_media_modal_cancel,
.event_media_modal_save {
  min-height: 36px;
  border-radius: 999px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.event_media_modal_cancel {
  border: 1px solid #d8e1ea;
  background-color: #ffffff;
  color: #4f5f70;
}

.event_media_modal_save {
  border: 0;
  background-color: #418fde;
  color: #ffffff;
}

.timeline_excel_upload_dialog {
  width: min(460px, 100%);
}

.timeline_excel_upload_desc {
  margin: -8px 0 16px;
  color: #5b6b7c;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
}

.timeline_excel_template_link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 42px;
  border-radius: 8px;
  background: #f3fbf7;
  color: #1f8f72;
  font-size: 14px;
  font-weight: 800;
  text-decoration: none;
  box-sizing: border-box;
}

.timeline_excel_template_link:hover {
  background: #e7f7ee;
}

.timeline_excel_upload_area {
  margin-top: 14px;
  min-height: 118px;
  gap: 8px;
}

.timeline_excel_upload_area i {
  display: block;
  color: #1f8f72;
  font-size: 26px;
}

.timeline_excel_upload_status {
  min-height: 18px;
  margin: 10px 0 0;
  color: #5b6b7c;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
}

.timeline_excel_upload_status.is-error {
  color: #d64545;
}

.keeper_upgrade_modal[hidden] {
  display: none;
}

.keeper_upgrade_modal {
  position: fixed;
  inset: 0;
  z-index: 1500;
  display: grid;
  place-items: center;
  padding: 20px;
  box-sizing: border-box;
}

.keeper_upgrade_modal_backdrop {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.46);
}

.keeper_upgrade_modal_dialog {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(360px, 100%);
  border-radius: 8px;
  background-color: #ffffff;
  padding: 28px 24px 24px;
  box-shadow: 0 18px 54px rgba(0, 0, 0, 0.22);
  box-sizing: border-box;
  text-align: center;
}

.keeper_upgrade_modal_close {
  position: absolute;
  top: 12px;
  right: 12px;
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 50%;
  background-color: #f3f7fb;
  color: #333333;
  cursor: pointer;
}

.keeper_upgrade_modal_tag {
  margin-bottom: 14px;
}

.keeper_upgrade_modal_image {
  display: block;
  width: 104px;
  height: 150px;
  object-fit: contain;
  margin: 0 0 14px;
}

.keeper_upgrade_modal_title {
  margin: 0;
  color: #1d1d1d;
  font-size: 22px;
  font-weight: 900;
  line-height: 1.25;
}

.keeper_upgrade_modal_desc {
  margin: 10px 0 20px;
  color: #6d7885;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.45;
  word-break: keep-all;
}

.keeper_upgrade_modal_actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
}

.keeper_upgrade_modal_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  border-radius: 999px;
  padding: 0 14px;
  font-size: 14px;
  font-weight: 900;
  text-decoration: none;
  box-sizing: border-box;
}

.keeper_upgrade_modal_button.is_secondary {
  border: 1px solid #d8e1ea;
  background-color: #ffffff;
  color: #4f5f70;
}

.keeper_upgrade_modal_button.is_primary {
  border: 1px solid #418fde;
  background-color: #418fde;
  color: #ffffff;
}

.keeper_upgrade_modal_button.is_primary:hover {
  background-color: #327ecb;
}

.edit_history_modal[hidden] {
  display: none;
}

.edit_history_modal {
  position: fixed;
  inset: 0;
  z-index: 1400;
  display: grid;
  place-items: center;
  padding: 20px;
  box-sizing: border-box;
}

.edit_history_side_panel {
  top: 75px;
  right: 0;
  bottom: auto;
  left: auto;
  z-index: 72;
  width: 420px;
  max-width: 100%;
  height: calc(100vh - 75px);
  display: block;
  padding: 10px;
}

.edit_history_side_panel .event_media_modal_backdrop {
  display: none;
}

.edit_history_modal_dialog {
  display: flex;
  flex-direction: column;
  gap: 0px;
}

.edit_history_side_panel .edit_history_modal_dialog {
  gap: 12px;
  width: 100%;
  height: 100%;
  border-radius: 10px;
  padding: 20px 18px;
  box-shadow: -2px 0 6px rgba(0, 0, 0, 0.05);
  overflow-y: auto;
}

.edit_history_tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding: 4px;
  border-radius: 8px;
  background-color: #f3f7fb;
}

.edit_history_tab {
  min-height: 36px;
  border: 0;
  border-radius: 7px;
  background-color: transparent;
  color: #6c7a89;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.edit_history_tab.is-active {
  background-color: #ffffff;
  color: #1d1d1d;
  box-shadow: 0 1px 4px rgba(14, 34, 54, 0.08);
}

.edit_history_panel[hidden] {
  display: none;
}

.edit_history_panel{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.edit_history_filters {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.edit_history_filter_dropdown {
  position: relative;
  min-width: 0;
}

.edit_history_filter_dropdown.open .timeline_category_dropdown_menu {
  display: grid;
}

.edit_history_filter_dropdown.open .timeline_category_dropdown_btn .fa-angle-down {
  transform: rotate(180deg);
}

.edit_history_filter_button {
  width: 100%;
  min-width: 0;
}

.edit_history_filter_button span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edit_history_filter_menu {
  max-height: 240px;
  overflow-y: auto;
}

.edit_history_filter_select {
  min-width: 0;
  height: 38px;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  padding: 0 10px;
  background-color: #ffffff;
  color: #333333;
  font-size: 13px;
  font-weight: 800;
}

.edit_history_section {
  min-width: 0;
}

.edit_history_section_title {
  margin: 0 0 10px;
  color: #1d1d1d;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.25;
}

.edit_history_list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.edit_history_item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  padding: 8px 10px;
  background-color: #ffffff;
  box-sizing: border-box;
  cursor: pointer;
  transition: border-color 140ms ease, background-color 140ms ease;
}

.edit_history_item[data-history-event-id="0"] {
  cursor: default;
}

.edit_history_item:hover,
.edit_history_item.is-selected {
  border: 1px solid #418fde;
  background-color: #f7fbff;
}

.edit_history_item[data-history-event-id="0"]:hover {
  border-color: #d8e1ea;
  background-color: #ffffff;
}

.edit_history_profile {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.edit_history_avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
}

.edit_history_name {
  display: block;
  min-width: 0;
  color: #333333;
  font-size: 13px;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edit_history_body {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.edit_history_summary {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
  color: #7f8a96;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
}

.edit_history_summary strong {
  flex: 0 0 auto;
  color: #1f8f72;
  font-size: 12px;
  font-weight: 900;
}

.edit_history_summary span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.edit_history_date {
  flex: 0 0 auto;
  color: #8a96a3;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.edit_history_empty {
  margin: 0;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  padding: 14px 12px;
  background-color: #ffffff;
  color: #8a96a3;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
}

.edit_history_meta {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex: 0 0 auto;
}

.edit_history_action {
  flex: 0 0 auto;
  min-height: 28px;
  border: 0;
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
}

.edit_history_action_hint {
  flex: 0 0 auto;
  color: #a4adb7;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.edit_history_item[hidden],
.edit_history_empty[hidden],
.edit_history_pagination[hidden] {
  display: none;
}

.edit_history_pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding-top: 2px;
}

.edit_history_page_btn {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  background-color: #ffffff;
  color: #253546;
  cursor: pointer;
}

.edit_history_page_btn:disabled {
  opacity: 0.35;
  cursor: default;
}

.edit_history_page_status {
  min-width: 54px;
  color: #748293;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
}

.edit_history_report_btn {
  background-color: #eef2f6;
  color: #607080;
}

.edit_history_restore_btn {
  background-color: #418fde;
  color: #ffffff;
}

.event_map_search_row {
  display: flex;
  gap: 8px;
}

.event_map_search_input {
  flex: 1 1 auto;
  min-width: 0;
}

.event_map_search_btn {
  flex: 0 0 auto;
  min-height: 42px;
  border: 0;
  border-radius: 8px;
  padding: 0 14px;
  background-color: #418fde;
  color: #ffffff;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.event_map_search_btn:hover {
  background-color: #2f7dcc;
}

.event_map_area {
  min-height: 220px;
  display: grid;
  place-items: center;
  margin-top: 12px;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  background-color: #f5faff;
  color: #6c7a89;
  font-size: 13px;
  font-weight: 800;
  box-sizing: border-box;
}

.event_file_attached_list {
  display: none;
  margin-top: 12px;
}

.event_file_attached_list.has_file {
  display: block;
}

.event_file_attached_item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  border: 1px solid #d8e1ea;
  border-radius: 8px;
  padding: 0 12px;
  background-color: #ffffff;
  box-sizing: border-box;
}

.event_file_attached_name {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: #344252;
  font-size: 13px;
  font-weight: 700;
}

.event_file_attached_name i {
  flex: 0 0 auto;
  color: #418fde;
}

.event_file_attached_name span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event_file_attached_remove {
  flex: 0 0 auto;
  border: 0;
  padding: 0;
  background: transparent;
  color: #8b98a6;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}

.event_file_attached_remove:hover {
  color: #1f2d3d;
}

.cover_upload_area {
  border: 2px dashed #bfd3e8;
  border-radius: 6px;
  min-height: 66px;
  background: #f5faff;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 12px;
  font-size: 13px;
  font-weight: 600;
  color: #4b6887;
  cursor: pointer;
  transition: border-color 140ms ease, background-color 140ms ease;
}

.cover_upload_area:hover,
.cover_upload_area.dragover {
  border-color: #6ea5de;
  background: #edf6ff;
}

.cover_thumb_list {
  display: none;
}

.cover_thumb_list.has_image {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.cover_thumb_item {
  position: relative;
  width: 50px;
  height: 50px;
  cursor: pointer;
  overflow: hidden;
  border-radius: 5px;
}

.event_image_thumb_item {
  cursor: grab;
  outline: 0;
}

.event_image_thumb_item:active {
  cursor: grabbing;
}

.event_image_thumb_item.is_dragging {
  opacity: 0.55;
}

.event_image_thumb_item.is_drag_over {
  box-shadow: 0 0 0 2px #418fde;
}

.event_image_thumb_item.is_cover::after {
  content: "커버";
  position: absolute;
  left: 4px;
  bottom: 4px;
  z-index: 1;
  border-radius: 3px;
  background: rgba(65, 143, 222, 0.92);
  color: #ffffff;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  padding: 3px 4px;
  pointer-events: none;
}

.timeline_cover_media_row .cover_thumb_item {
  width: 112px;
  height: 64px;
}

.cover_thumb_img {
  width: 50px;
  height: 50px;
  object-fit: cover;
  border-radius: 5px;
  border: 0px solid #d6e2ef;
  transition: filter 160ms ease;
}

.timeline_cover_media_row .cover_thumb_img {
  width: 110px;
  height: 62px;
}

.event_media_video_preview .event_media_video_thumb_item {
  width: 50px;
  height: 50px;
  aspect-ratio: 1 / 1;
}

.event_media_video_preview .event_media_video_thumb {
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.cover_thumb_file_item {
  display: grid;
  place-items: center;
  border: 1px solid #d6e2ef;
  border-radius: 5px;
  background-color: #f5faff;
}

.cover_thumb_file_icon {
  color: #418fde;
  font-size: 22px;
}

.cover_thumb_remove {
  position: absolute;
  inset: 0;
  border: 0;
  border-radius: 5px;
  background: rgba(17, 24, 39, 0.36);
  color: #ffffff;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  display: grid;
  place-items: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms ease;
}

.cover_thumb_item:hover .cover_thumb_img,
.cover_thumb_item:focus-within .cover_thumb_img {
  filter: brightness(0.72);
}

.cover_thumb_item:hover .cover_thumb_remove,
.cover_thumb_item:focus-within .cover_thumb_remove {
  opacity: 1;
  pointer-events: auto;
}

.cover_thumb_file_item {
  cursor: default;
}

.cover_thumb_file_item .cover_thumb_remove {
  inset: auto;
  top: -7px;
  right: -10px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #ffffff;
  color: #3a4b5d;
  font-size: 14px;
  opacity: 1;
  pointer-events: auto;
}

.timeline_option_group {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.timeline_option_group label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #2f4156;
  cursor: pointer;
}

.timeline_option_group input[type="radio"] {
  accent-color: #418fde;
}

.timeline_option_group_event_type {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
}

.timeline_option_group_event_type label {
  flex: 1 1 0;
  min-width: 0;
}

.timeline_option_group_event_type input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.timeline_option_group_event_type label span {
  display: inline-flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid #d8e1ea;
  background: #fff;
  color: #182433;
  font-size: 13px;
  font-weight: 700;
  box-sizing: border-box;
}

.timeline_option_group_event_type input[type="radio"]:checked+span {
  background: #000;
  border-color: #000;
  color: #fff;
}

.timeline_settings_action_row {
  margin-top: auto;
  display: flex;
  gap: 8px;
}

.timeline_settings_delete_btn,.timeline_settings_cancel_btn,
.timeline_settings_preview_btn,
.timeline_settings_save_btn {
  flex: 1;
  border: 0;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  height: 40px;
  cursor: pointer;
}

.timeline_settings_delete_btn, .timeline_settings_cancel_btn {
  background: #ffffff;
  border: 1px solid #c7ced7;
  color: #495769;
}

.timeline_settings_delete_btn:hover {
  background: #f7f9fc;
}

.timeline_settings_preview_btn {
  border: 1px solid #c7ced7;
  background: #ffffff;
  color: #495769;
}

.timeline_settings_preview_btn:hover {
  background: #f7f9fc;
}

.timeline_settings_save_btn {
  background: #418fde;
  color: #ffffff;
}

.timeline_settings_save_btn:hover {
  background: #327ecb;
}

.timeline_view_related_empty {
  padding: 20px;
  border-radius: 6px;
  background-color: #f9f9f9;
  color: #ccc;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
}

.timeline_view_related_empty i {
  display: block;
  margin-bottom: 8px;
  margin-top: 10px;
  font-size: 20px;
}

.timeline_edit_search {
  position: relative;
  flex: 0 0 auto;
}

.timeline_edit_btn.timeline_edit_search_toggle,
.timeline_edit_btn.timeline_latest_event_btn {
  width: 38px;
  height: 38px;
  min-width: 38px;
  min-height: 38px;
  flex: 0 0 38px;
  padding: 0 1px 0 0;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  gap: 0;
  aspect-ratio: 1 / 1;
}

.timeline_edit_search_panel {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 120;
  width: min(420px, calc(100vw - 30px));
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 10px;
  background-color: #ffffff;
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.16);
  box-sizing: border-box;
}

.timeline_edit_search_panel[hidden] {
  display: none;
}

.timeline_edit_search_form {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

.timeline_edit_search_input {
  width: 100%;
  height: 38px;
  border: 1px solid #d8dee6;
  border-radius: 999px;
  padding: 0 44px 0 16px;
  background-color: #ffffff;
  color: #1f2933;
  font-size: 14px;
  font-weight: 700;
  box-sizing: border-box;
}

.timeline_edit_search_input::placeholder {
  color: #aab3bd;
  font-weight: 500;
}

.timeline_edit_search_input:focus {
  border-color: #418fde;
  box-shadow: 0 0 0 3px rgba(65, 143, 222, 0.14);
  outline: none;
}

.timeline_edit_search_submit {
  display: inline-grid;
  place-items: center;
  position: absolute;
  top: 4px;
  right: 5px;
  width: 32px;
  height: 30px;
  border: 0;
  border-radius: 999px;
  background-color: transparent;
  color: #222222;
  cursor: pointer;
}

.timeline_edit_search_submit:hover,
.timeline_edit_search_submit:focus-visible {
  background-color: #f1f4f7;
  outline: none;
}

.timeline_edit_search_results {
  width: 100%;
  max-height: min(58dvh, 520px);
  margin-top: 10px;
  overflow-y: auto;
  border-top: 1px solid #edf1f5;
  padding-top: 8px;
  box-sizing: border-box;
}

.timeline_edit_search_results[hidden] {
  display: none;
}

.timeline_edit_btn.timeline_latest_event_btn i {
  line-height: 1;
}

@media (max-width: 640px) {
  .timeline_edit_search {
    position: static;
  }

  .timeline_edit_search_panel {
    left: 15px;
    right: 15px;
    width: auto;
  }

  .timeline_edit_btn.timeline_edit_search_toggle,
  .timeline_edit_btn.timeline_latest_event_btn {
    width: 38px;
    height: 38px;
    min-width: 38px;
    min-height: 38px;
    flex-basis: 38px;
    padding: 0;
  }
}

@media (max-width: 640px) {
  .event_media_choice_grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .timeline_edit_header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    margin: 0;
    padding: 0;
    z-index: 80;

  }

  .timeline_header_inner {
    height: auto;
    align-items: stretch;
    align-content: flex-start;
    flex-wrap: wrap;
  }

  .timeline_edit_btn .btn_text {
    display: none;
  }

  .timeline_edit_btn {
    padding: 9px 12px;
    min-height: 36px;
    gap: 0px;
  }




  .timeline_header_left {
    width: 100%;
    padding: 15px 15px 0;
    box-sizing: border-box;
  }

  .timeline_header_actions {
    width: 100%;
    padding: 0 15px 15px;
    margin-top: 15px;
    box-sizing: border-box;
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow: visible;
    gap: 8px;
  }

  .timeline_view_title_row {
    position: relative;
    align-items: flex-start;
    padding: 0px 10px 15px 0px;
  }

  .timeline_view_title_group {
    flex: 1 1 150px;
    min-width: 0;
  }

  .timeline_view_title {
    overflow-wrap: anywhere;
  }

  .timeline_view_option_bar {
    flex: 0 0 auto;
    gap: 8px;
    padding: 0;
    border: 0;
    background-color: transparent;
  }

  .timeline_view_option_bar label {
    flex: 0 0 auto;
  }

  .timeline_view_option_bar span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    min-height: 38px;
    padding: 0;
    border: 1px solid #ddd;
    border-radius: 50%;
    line-height: 1;
    font-size: 0;
    box-sizing: border-box;
  }

  .timeline_view_option_bar span i {
    margin-right: 0;
    font-size: 14px;
  }

  .timeline_view_search {
    position: static;
    flex: 0 0 auto;
    min-width: 0;
  }

  .timeline_view_search_panel {
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    width: auto;
  }

  .timeline_view_content_section {
    margin-top: 34px;
  }

  .timeline_view_content_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
  }

  .timeline_view_content_primary,
  .timeline_view_content_secondary {
    min-height: 0;
  }

  .timeline_view_media_grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .timeline_header_actions::-webkit-scrollbar {
    display: none;
  }

  .timeline_header_actions .account_dropdown_menu {
    z-index: 120;
  }

  .timeline_header_title {
    font-size: 18px;
  }

  .timeline_header_subtitle {
    display: inline;
    margin-left: 10px;
    font-size: 16px;
  }

  .timeline_settings_panel {
    top: 105px;
    width: 100%;
    height: calc(100vh - 150px);
    padding: 8px;
  }

  .edit_history_side_panel {
    top: 105px;
    width: 100%;
    height: calc(100vh - 150px);
    padding: 8px;
  }
}

@media (max-width: 420px) {
  .timeline_view_media_grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .timeline_view_content_skin {
    --content-card-width: min(360px, calc(100vw - 88px));
    min-height: 560px;
    overflow: hidden;
  }

  .timeline_view_content_controls {
    top: auto;
    bottom: 18px;
    left: 18px;
    transform: none;
  }

  .timeline_view_content_controls .btn_zoom {
    width: 48px;
    height: 48px;
    border-radius: 10px;
  }

  .timeline_view_content_tag_filter {
    top: auto;
    bottom: calc(100% + 10px);
    left: 0;
    max-width: min(260px, calc(100vw - 44px));
  }

  .timeline_view_content_skin_scroller {
    padding: 48px 44px 34px;
    cursor: grab;
    scroll-padding-inline: 44px;
    scroll-snap-type: x mandatory;
    touch-action: pan-x pan-y;
    -webkit-overflow-scrolling: touch;
  }

  .timeline_view_content_skin_scroller.is_dragging {
    scroll-snap-type: none;
  }

  .timeline_view_content_skin_track {
    gap: 44px;
    min-width: 0;
    padding-top: 46px;
  }

  .timeline_view_content_event_card {
    flex-basis: var(--content-card-width);
    width: var(--content-card-width);
    scroll-snap-align: center;
    scroll-snap-stop: always;
  }

  .timeline_view_content_event_connector {
    top: -94px;
    height: 94px;
  }

  .timeline_view_content_edge_jump {
    display: none;
  }
}

@media (max-width: 640px) {
  .alltimeline_page {
    padding: 24px 20px 48px;
  }

  .alltimeline_search_section,
  .alltimeline_list_section {
    width: 100%;
    max-width: none;
  }

  .alltimeline_search_form,
  .alltimeline_search_box {
    width: 100%;
  }

  .alltimeline_filter_row {
    width: 100%;
    box-sizing: border-box;
  }

  .alltimeline_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    width: 100%;
    padding-bottom: 28px;
  }

  .alltimeline_grid .timeline_card {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 640px) {
  .mypage_page {
    padding: 28px 20px 48px;
  }

  .mypage_layout,
  .mypage_content {
    width: 100%;
    max-width: none;
  }

  .mypage_profile_nav {
    justify-content: flex-start;
    overflow-x: auto;
    gap: 18px;
    scrollbar-width: none;
  }

  .mypage_profile_nav::-webkit-scrollbar {
    display: none;
  }

  .mypage_timeline_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    width: 100%;
    padding-bottom: 28px;
  }

  .mypage_timeline_grid .timeline_card {
    width: 100%;
    min-width: 0;
  }
}
