/*
 * Main Stylesheet
 * 女風セラピスト図鑑
 *
 * このファイルは全てのCSSをインポートします
 */

@import url('reset.css');
@import url('variables.css');
@import url('base.css');
@import url('components.css');

/* ======================
 * Page Specific Styles
 * ====================== */

/* ----------------------
 * Main Content Wrapper with Background Pattern
 * ---------------------- */
.main-content-wrapper {
  background-image: url('../assets/images/bg-pattern.png');
  background-repeat: repeat-y;
  background-position: center top;
  background-size: cover;
}

/* ----------------------
 * Top Page - Hero
 * ---------------------- */
.hero {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: calc(400px + var(--header-height));
  padding: 80px 80px;
  background: linear-gradient(90deg, rgba(2, 193, 212, 1) 0%, rgba(209, 167, 235, 1) 80%);
  position: relative;
  margin-top: calc(var(--header-height) * -1);
  padding-top: calc(80px + var(--header-height));
}

.hero__content {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 1440px;
  padding: 0 80px;
}

.hero__title {
  font-family: var(--font-family-base);
  font-size: 48px;
  font-weight: 700;
  color: #FFFFFF;
  letter-spacing: 0.05em;
  line-height: 1.8;
}

.hero__search {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 1440px;
  padding: 0 140px 40px;
}

.hero__search-box {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 24px;
  background: #FFFFFF;
  border-radius: 8px;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
}

.hero__search-fields {
  display: flex;
  flex: 1;
  gap: 16px;
}

.hero__search-field {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 1;
  padding: 16px;
  border: 2px solid #EEEEEE;
  border-radius: 4px;
  text-decoration: none;
  transition: border-color 0.2s ease;
}

.hero__search-field:hover {
  border-color: #918461;
}

.hero__search-icon {
  width: 24px;
  height: 24px;
  color: #333333;
  flex-shrink: 0;
}

.hero__search-label {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

.hero__search-label--placeholder {
  color: #AAAAAA;
}

.hero__search-btn {
  flex-shrink: 0;
}

/* Dropdown Styles */
.hero__search-field--dropdown {
  position: relative;
  cursor: pointer;
}

.hero__search-arrow {
  margin-left: auto;
  color: #333333;
  transition: transform 0.2s ease;
}

.hero__search-field--dropdown.is-open .hero__search-arrow {
  transform: rotate(180deg);
}

.hero__dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  width: 100%;
  min-width: 320px;
  max-height: 400px;
  overflow-y: auto;
  background: #FFFFFF;
  border: 1px solid #EEEEEE;
  border-radius: 8px;
  box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1);
  z-index: 100;
}

.hero__search-field--dropdown.is-open .hero__dropdown {
  display: block;
}

.hero__dropdown-region {
  padding: 12px 16px;
  border-bottom: 1px solid #EEEEEE;
}

.hero__dropdown-region:last-child {
  border-bottom: none;
}

.hero__dropdown-region-title {
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 700;
  color: #939393;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}

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

.hero__dropdown-option {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: #F7F7F7;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.hero__dropdown-option:hover {
  background: #EEEEEE;
}

.hero__dropdown-option input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: #02C1D4;
  cursor: pointer;
}

.hero__dropdown-option span {
  font-family: var(--font-family-base);
  font-size: 14px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
}

.hero__dropdown-option:has(input:checked) {
  background: rgba(2, 193, 212, 0.1);
  border: 1px solid #02C1D4;
}

/* Text Input Styles */
.hero__search-field--input {
  cursor: text;
}

.hero__search-input {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
}

.hero__search-input::placeholder {
  color: #AAAAAA;
  font-weight: 700;
}

/* Date Dropdown Styles */
.hero__dropdown--date {
  min-width: 280px;
  padding: 8px;
}

.hero__date-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-radius: 4px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.hero__date-option:hover {
  background: #F7F7F7;
}

.hero__date-option.is-selected {
  background: rgba(2, 193, 212, 0.1);
}

.hero__date-option-day {
  font-family: var(--font-family-base);
  font-size: 14px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
}

.hero__date-option-date {
  font-family: var(--font-family-base);
  font-size: 14px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
}

.hero__date-option--today .hero__date-option-day {
  color: #02C1D4;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .hero {
    height: auto;
    min-height: calc(350px + var(--header-height));
    padding: 60px 40px;
    padding-top: calc(60px + var(--header-height));
  }

  .hero__content {
    padding-bottom: 0;
  }

  .hero__title {
    font-size: 36px;
    margin-bottom: 0;
  }

  .hero__search {
    max-width: 100%;
    padding: 0 40px 40px;
  }

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

  .hero__search-fields {
    flex-direction: column;
  }

  .hero__search-btn {
    width: 100%;
    justify-content: center;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .hero {
    height: auto;
    min-height: calc(280px + var(--header-height-mobile));
    padding: 48px 16px;
    margin-top: calc(var(--header-height-mobile) * -1);
    padding-top: calc(48px + var(--header-height-mobile));
  }

  .hero__content {
    padding: 0;
  }

  .hero__title {
    font-size: 32px;
    line-height: 1.6;
    margin-bottom: 0;
  }

  .hero__search {
    max-width: 100%;
    padding: 0 16px 24px;
  }

  .hero__search-box {
    padding: 16px;
    gap: 12px;
  }

  .hero__search-field {
    padding: 12px;
    gap: 12px;
  }

  .hero__search-label {
    font-size: 14px;
  }

  .hero__dropdown {
    min-width: auto;
    width: 100%;
    max-width: calc(100vw - 64px);
    left: 50%;
    transform: translateX(-50%);
  }

  .hero__dropdown--date {
    min-width: auto;
  }
}

/* ----------------------
 * Top Page - Section Header (Common)
 * ---------------------- */
.section-header {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  width: 100%;
}

.section-header__title {
  font-family: var(--font-family-base);
  font-size: 24px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  margin: 0;
}

.section-header__accent {
  width: 60px;
  height: 3px;
  background: linear-gradient(90deg, #02C1D4 0%, #F5A5B8 100%);
  border-radius: 2px;
}

/* ----------------------
 * Top Page - News Section
 * ---------------------- */
.news-section {
  padding: 60px;
}

.news-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 60px;
  background: #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
  max-width: 1320px;
  margin: 0 auto;
}

.news-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  max-width: 1200px;
}

.news-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-bottom: 12px;
  border-bottom: 1px solid #EEEEEE;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.news-item:hover {
  opacity: 0.7;
}

.news-item__meta {
  display: flex;
  align-items: center;
  gap: 16px;
}

.news-item__date {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.news-item__tag {
  display: inline-block;
  padding: 2px 6px 3px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
  border: 1px solid;
}

.news-item__tag--info {
  color: #02C1D4;
  border-color: #02C1D4;
}

.news-item__tag--press {
  color: #D1A7EB;
  border-color: #D1A7EB;
}

.news-item__tag--campaign {
  color: #E57373;
  border-color: #E57373;
}

.news-item__tag--update {
  color: #FFB74D;
  border-color: #FFB74D;
}

.news-item__tag--event {
  color: #81C784;
  border-color: #81C784;
}

.news-item__title {
  font-family: var(--font-family-base);
  font-size: 18px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .news-section {
    padding: 40px;
  }

  .news-section__inner {
    padding: 40px;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .news-section {
    padding: 24px 16px;
  }

  .news-section__inner {
    padding: 16px;
    gap: 16px;
  }

  .news-item__date {
    font-size: 14px;
  }

  .news-item__tag {
    font-size: 14px;
  }

  .news-item__title {
    font-size: 16px;
  }
}

/* ----------------------
 * Top Page - Search Section
 * ---------------------- */
.search-section {
  background: #FFFFFF;
}

.search-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  max-width: 1440px;
  margin: 0 auto;
  padding: 60px;
}

.search-section .section-header {
  width: 100%;
  max-width: 1320px;
}

.search-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  width: 100%;
  max-width: 1320px;
  padding: 60px;
  background: rgba(2, 193, 212, 0.08);
  border-radius: 8px;
}

.search-box__group {
  display: flex;
  flex-direction: column;
  gap: 40px;
  width: 100%;
}

.search-box__header {
  display: flex;
  align-items: center;
  gap: 16px;
  color: #333333;
  background: none;
  border: none;
  padding: 0;
  cursor: default;
}

.search-box__header svg {
  flex-shrink: 0;
}

/* 矢印アイコン（デスクトップでは非表示） */
.search-box__arrow {
  display: none;
}

.search-box__title {
  font-family: var(--font-family-base);
  font-size: 18px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
}

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

/* 検索条件行 */
.search-box__row {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid #FFFFFF;
}

.search-box__row:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

.search-box__label {
  flex-shrink: 0;
  width: 160px;
  padding-left: 16px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 2;
}

.search-box__tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  flex: 1;
}

/* 条件行 */
.condition-row {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid #FFFFFF;
}

.condition-row:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

.condition-row__label {
  flex-shrink: 0;
  width: 120px;
  padding-left: 16px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 2;
}

.condition-row__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  flex: 1;
}

/* 検索タグ */
.search-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 16px 8px;
  background: #FFFFFF;
  border-radius: 4px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
}

.search-tag:hover {
  background: #02C1D4;
  color: #FFFFFF;
}

/* search-tag内のチェックボックス対応 */
.search-tag:has(input[type="checkbox"]) {
  padding: 0;
  background: transparent;
}

.search-tag:has(input[type="checkbox"]):hover {
  background: transparent;
}

.search-tag input[type="checkbox"] {
  display: none;
}

.search-tag input[type="checkbox"] + span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 16px 8px;
  background: #FFFFFF;
  border-radius: 4px;
  transition: all 0.2s ease;
}

.search-tag:hover input[type="checkbox"]:not(:checked) + span {
  background: #E8F8FA;
  color: #02C1D4;
}

.search-tag input[type="checkbox"]:checked + span {
  background: #02C1D4;
  color: #FFFFFF;
}

.search-tag:hover input[type="checkbox"]:checked + span {
  background: #01A8B8;
  color: #FFFFFF;
}

/* チェックボックス型タグ */
.search-tag--checkbox {
  padding: 0;
}

.search-tag--checkbox input {
  display: none;
}

.search-tag__text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 16px 8px;
  background: #FFFFFF;
  border-radius: 4px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  transition: all 0.2s ease;
}

.search-tag--checkbox:hover input:not(:checked) + .search-tag__text {
  background: #E8F8FA;
  color: #02C1D4;
}

.search-tag--checkbox input:checked + .search-tag__text {
  background: #02C1D4;
  color: #FFFFFF;
}

.search-tag--checkbox:hover input:checked + .search-tag__text {
  background: #01A8B8;
  color: #FFFFFF;
}

/* 検索ボックスセクション */
.search-box-section {
  display: flex;
  justify-content: center;
  padding: 60px;
  background: #FFFFFF;
}

/* 検索結果セクション */
.search-results-section {
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding: 60px;
  max-width: 1440px;
  margin: 0 auto;
}

.search-results__count {
  display: flex;
  align-items: center;
  gap: 8px;
}

.search-results__count-number {
  font-family: 'Poppins', sans-serif;
  font-size: 40px;
  font-weight: 700;
  color: #918461;
  line-height: 1;
  letter-spacing: 0.05em;
}

.search-results__count-unit {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  padding-top: 8px;
}

.search-results__card {
  background: #FFFFFF;
  padding: 60px;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
  width: 100%;
}

.search-results__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}

.search-results__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 20px;
  width: 100%;
  max-width: calc(220px * 5 + 20px * 4);
}

/* ボタン */
.search-box__buttons {
  display: flex;
  justify-content: center;
  gap: 40px;
}

.search-box__actions {
  display: flex;
  justify-content: center;
  gap: 40px;
}

.btn--large {
  padding: 16px 24px;
  font-size: 16px;
  border-radius: 8px;
}

.btn--gray {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 24px;
  background: #AAAAAA;
  border: 1px solid #AAAAAA;
  border-radius: 8px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 700;
  color: #FFFFFF;
  letter-spacing: 0.08em;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0px 4px 0px 0px rgba(147, 147, 147, 1);
  transition: all 0.2s ease;
}

.btn--gray:hover {
  opacity: 0.9;
  transform: translateY(2px);
  box-shadow: 0px 2px 0px 0px rgba(147, 147, 147, 1);
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .search-section__inner {
    padding: 40px;
  }

  .search-box {
    padding: 40px;
  }

  .condition-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .condition-row__label {
    width: auto;
    padding-left: 0;
  }

  .search-results-section {
    padding: 40px;
  }

  .search-results__card {
    padding: 40px;
  }

  .search-results__grid {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .search-section__inner {
    padding: 24px 16px;
  }

  .search-box {
    padding: 24px;
    gap: 16px;
  }

  .search-box__group {
    gap: 0;
  }

  .search-box__title {
    font-size: 14px;
  }

  .condition-row__tags {
    gap: 8px;
  }

  .search-tag,
  .search-tag__text,
  .search-tag input[type="checkbox"] + span {
    font-size: 12px;
    padding: 4px 8px;
  }

  .search-box__actions,
  .search-box__buttons {
    flex-direction: row;
    gap: 12px;
    width: 100%;
  }

  .search-box__buttons .btn {
    flex: 1;
    padding: 8px 8px;
    font-size: 14px;
  }

  .btn--large {
    width: 100%;
    padding: 14px 24px;
  }

  .search-box-section {
    padding: 16px;
  }

  /* グループヘッダーをボタン化（モバイル用トグル） */
  .search-box__header {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 8px 16px;
    background: #FFFFFF;
    border: 1px solid #E0E0E0;
    border-radius: 8px;
    cursor: pointer;
    transition: background 0.2s;
  }

  .search-box__header:hover {
    background: #FAFAFA;
  }

  .search-box__arrow {
    margin-left: auto;
    flex-shrink: 0;
    transition: transform 0.3s;
    color: #666;
  }

  .search-box__header.is-open .search-box__arrow {
    transform: rotate(180deg);
  }

  /* コンテンツ（トグルで開閉） */
  .search-box__content {
    display: none;
    padding-top: 16px;
  }

  .search-box__content.is-open {
    display: flex;
  }

  .search-box__row {
    flex-direction: column;
    gap: 12px;
  }

  .search-box__label {
    width: 100%;
    padding-left: 0;
  }

  .search-box__tags {
    gap: 8px;
  }

  .search-results-section {
    padding: 40px 16px;
  }

  .search-results__card {
    padding: 24px;
  }

  .search-results__grid {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 16px;
  }

  .search-results__count-number {
    font-size: 32px;
  }
}

/* ----------------------
 * Top Page - Quick Links
 * ---------------------- */
.quick-links {
  display: flex;
  justify-content: center;
  gap: var(--spacing-4);
  margin-top: var(--spacing-8);
}

.quick-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-2);
  padding: var(--spacing-4);
  min-width: 100px;
  background-color: var(--bg-card);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  transition: all var(--transition-fast);
}

.quick-link:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.quick-link__icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-primary-light);
  border-radius: var(--radius-full);
  color: var(--color-primary);
}

.quick-link__label {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: var(--text-primary);
}

@media (max-width: 767px) {
  .quick-links {
    flex-wrap: wrap;
    gap: var(--spacing-2);
  }

  .quick-link {
    min-width: calc(50% - var(--spacing-1));
    padding: var(--spacing-3);
  }
}

/* ----------------------
 * Top Page - Featured Therapists
 * ---------------------- */
.featured-therapists {
  padding: var(--spacing-12) 0;
}

.therapist-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-6);
}

@media (max-width: 1023px) {
  .therapist-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 767px) {
  .therapist-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-4);
  }
}

/* ----------------------
 * Therapist Detail
 * ---------------------- */
.therapist-detail {
  display: flex;
  gap: var(--spacing-8);
  padding: var(--spacing-8) 0;
}

.therapist-detail__main {
  flex: 1;
}

.therapist-detail__sidebar {
  width: 320px;
  flex-shrink: 0;
}

.therapist-profile {
  background-color: var(--bg-card);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

.therapist-profile__gallery {
  aspect-ratio: 3 / 4;
  background-color: var(--color-gray-200);
}

.therapist-profile__gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.therapist-profile__info {
  padding: var(--spacing-6);
}

.therapist-profile__name {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-2);
}

.therapist-profile__area {
  font-size: var(--font-size-base);
  color: var(--text-muted);
  margin-bottom: var(--spacing-4);
}

.therapist-profile__stats {
  display: flex;
  gap: var(--spacing-4);
  padding: var(--spacing-4) 0;
  border-top: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
}

.therapist-profile__stat {
  text-align: center;
}

.therapist-profile__stat-value {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
}

.therapist-profile__stat-label {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
}

.therapist-profile__description {
  margin-top: var(--spacing-4);
  font-size: var(--font-size-sm);
  line-height: var(--line-height-relaxed);
  color: var(--text-secondary);
}

@media (max-width: 1023px) {
  .therapist-detail {
    flex-direction: column;
  }

  .therapist-detail__sidebar {
    width: 100%;
  }
}

/* ----------------------
 * Bottom Section (Therapist Detail Page)
 * Note: Main styles are in components.css
 * Only add page-specific overrides here
 * ---------------------- */

/* ----------------------
 * Search Page
 * ---------------------- */
.search-page {
  display: flex;
  gap: var(--spacing-8);
  padding: var(--spacing-8) 0;
}

.search-page__filters {
  width: 280px;
  flex-shrink: 0;
}

.search-page__results {
  flex: 1;
}

.search-filters {
  background-color: var(--bg-card);
  border-radius: var(--radius-lg);
  padding: var(--spacing-6);
  box-shadow: var(--shadow-sm);
}

.search-filters__section {
  margin-bottom: var(--spacing-6);
}

.search-filters__section:last-child {
  margin-bottom: 0;
}

.search-filters__title {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-3);
}

.search-results__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--spacing-4);
}

.search-results__count {
  font-size: var(--font-size-sm);
  color: var(--text-muted);
}

.search-results__sort {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
}

@media (max-width: 1023px) {
  .search-page {
    flex-direction: column;
  }

  .search-page__filters {
    width: 100%;
  }
}

/* ----------------------
 * Category / Area Page
 * ---------------------- */
.category-grid,
.area-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--spacing-4);
}

@media (max-width: 1023px) {
  .category-grid,
  .area-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 767px) {
  .category-grid,
  .area-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ----------------------
 * Ranking Page
 * ---------------------- */
.ranking-list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
}

.ranking-tabs {
  margin-bottom: var(--spacing-6);
}

/* ----------------------
 * News Page
 * ---------------------- */
.news-list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
}

.news-detail {
  max-width: 800px;
  margin: 0 auto;
  padding: var(--spacing-8) 0;
}

.news-detail__header {
  margin-bottom: var(--spacing-6);
}

.news-detail__category {
  display: inline-block;
  padding: var(--spacing-1) var(--spacing-3);
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  background-color: var(--color-primary-light);
  color: var(--color-primary-dark);
  border-radius: var(--radius-sm);
  margin-bottom: var(--spacing-2);
}

.news-detail__title {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-2);
}

.news-detail__date {
  font-size: var(--font-size-sm);
  color: var(--text-muted);
}

.news-detail__body {
  font-size: var(--font-size-base);
  line-height: var(--line-height-relaxed);
}

.news-detail__body p {
  margin-bottom: var(--spacing-4);
}

/* ----------------------
 * Diary Page
 * ---------------------- */
.diary-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-6);
}

.diary-card {
  background-color: var(--bg-card);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

.diary-card__image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.diary-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.diary-card__body {
  padding: var(--spacing-4);
}

.diary-card__therapist {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: var(--spacing-2);
}

.diary-card__therapist-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.diary-card__therapist-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.diary-card__therapist-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--text-dark);
  line-height: 1.3;
}

.diary-card__therapist-shop {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-muted);
  line-height: 1.3;
}

.diary-card__title {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-medium);
  margin-bottom: var(--spacing-2);
}

.diary-card__date {
  font-size: var(--font-size-xs);
  color: var(--text-muted);
}

@media (max-width: 1023px) {
  .diary-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

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

/* ----------------------
 * Review Page
 * ---------------------- */
.review-list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
}

/* ----------------------
 * Schedule Page
 * ---------------------- */
.schedule-calendar {
  background-color: var(--bg-card);
  border-radius: var(--radius-lg);
  padding: var(--spacing-6);
  box-shadow: var(--shadow-sm);
  margin-bottom: var(--spacing-6);
}

.schedule-calendar__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--spacing-4);
}

.schedule-calendar__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
}

.schedule-calendar__nav {
  display: flex;
  gap: var(--spacing-2);
}

.schedule-list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
}

.schedule-item {
  display: flex;
  align-items: center;
  gap: var(--spacing-4);
  padding: var(--spacing-4);
  background-color: var(--bg-card);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

.schedule-item__time {
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-primary);
  min-width: 80px;
}

.schedule-item__therapist {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  flex: 1;
}

.schedule-item__avatar {
  width: 48px;
  height: 48px;
  border-radius: var(--radius-full);
  background-color: var(--color-gray-200);
}

/* ----------------------
 * Static Pages
 * ---------------------- */
.static-page {
  max-width: 800px;
  margin: 0 auto;
  padding: var(--spacing-8) 0;
}

.static-page__content {
  background-color: var(--bg-card);
  border-radius: var(--radius-lg);
  padding: var(--spacing-8);
  box-shadow: var(--shadow-sm);
}

.static-page__content h2 {
  font-size: var(--font-size-xl);
  margin-top: var(--spacing-8);
  margin-bottom: var(--spacing-4);
}

.static-page__content h2:first-child {
  margin-top: 0;
}

.static-page__content p {
  margin-bottom: var(--spacing-4);
  line-height: var(--line-height-relaxed);
}

.static-page__content ul,
.static-page__content ol {
  margin-bottom: var(--spacing-4);
  padding-left: var(--spacing-6);
}

.static-page__content li {
  margin-bottom: var(--spacing-2);
  line-height: var(--line-height-relaxed);
}

.static-page__content ul li {
  list-style-type: disc;
}

.static-page__content ol li {
  list-style-type: decimal;
}

/* ----------------------
 * FAQ Page
 * ---------------------- */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
}

.faq-item {
  background-color: var(--bg-card);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

.faq-item__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-4) var(--spacing-6);
  font-weight: var(--font-weight-medium);
  cursor: pointer;
}

.faq-item__answer {
  padding: 0 var(--spacing-6) var(--spacing-4);
  font-size: var(--font-size-sm);
  color: var(--text-secondary);
  line-height: var(--line-height-relaxed);
}

.faq-contact-card {
  margin-top: var(--spacing-8);
  padding: var(--spacing-8);
  background-color: #F5F5F5;
  border-radius: var(--radius-lg);
  text-align: center;
}

.faq-contact-card__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-2);
}

.faq-contact-card__text {
  font-size: var(--font-size-sm);
  color: var(--text-muted);
  margin-bottom: var(--spacing-4);
}

/* ----------------------
 * Login / Register Page
 * ---------------------- */
.auth-page {
  max-width: 400px;
  margin: 0 auto;
  padding: var(--spacing-12) 0;
}

.auth-card {
  background-color: var(--bg-card);
  border-radius: var(--radius-xl);
  padding: var(--spacing-8);
  box-shadow: var(--shadow-md);
}

.auth-card__title {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-bold);
  text-align: center;
  margin-bottom: var(--spacing-6);
}

.auth-card__divider {
  display: flex;
  align-items: center;
  gap: var(--spacing-4);
  margin: var(--spacing-6) 0;
}

.auth-card__divider::before,
.auth-card__divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background-color: var(--border-color);
}

.auth-card__divider-text {
  font-size: var(--font-size-sm);
  color: var(--text-muted);
}

.auth-card__footer {
  text-align: center;
  margin-top: var(--spacing-6);
  font-size: var(--font-size-sm);
  color: var(--text-muted);
}

/* ----------------------
 * For Therapists LP
 * ---------------------- */
.lp-hero {
  padding: var(--spacing-20) 0;
  text-align: center;
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-secondary) 100%);
  color: var(--text-inverse);
}

.lp-hero__title {
  font-size: var(--font-size-5xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-4);
}

.lp-hero__subtitle {
  font-size: var(--font-size-xl);
  opacity: 0.9;
  margin-bottom: var(--spacing-8);
}

.lp-section {
  padding: var(--spacing-16) 0;
}

.lp-section--gray {
  background-color: var(--color-gray-50);
}

.lp-section__title {
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-bold);
  text-align: center;
  margin-bottom: var(--spacing-12);
}

.lp-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-8);
}

.lp-feature {
  text-align: center;
}

.lp-feature__icon {
  width: 80px;
  height: 80px;
  margin: 0 auto var(--spacing-4);
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(2, 193, 212, 0.15);
  border-radius: var(--radius-full);
  color: rgba(2, 193, 212, 1);
}

.lp-feature__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--spacing-2);
}

.lp-feature__description {
  font-size: var(--font-size-sm);
  color: var(--text-secondary);
}

/* Page Hero - LP Version */
.page-hero--lp {
  height: auto;
  min-height: calc(480px + var(--header-height));
  padding: 120px 80px;
  padding-top: calc(120px + var(--header-height));
  margin-top: calc(var(--header-height) * -1);
  align-items: center;
}

.page-hero__content--center {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--spacing-4);
}

.page-hero__title--center {
  text-align: center;
  font-size: 40px;
  line-height: 1.4;
}

.page-hero__label {
  display: inline-block;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
  color: #FFFFFF;
  letter-spacing: var(--letter-spacing-wider);
  padding: var(--spacing-2) var(--spacing-5);
  background-color: rgba(255, 255, 255, 0.2);
  border-radius: var(--radius-full);
}

.page-hero__subtitle {
  font-size: var(--font-size-lg);
  color: #FFFFFF;
  opacity: 0.9;
  margin-top: var(--spacing-4);
  margin-bottom: var(--spacing-6);
  line-height: var(--line-height-relaxed);
}

.page-hero--lp .btn--white {
  margin-top: var(--spacing-4);
}

/* PC only line break */
.pc-only {
  display: none;
}

/* SP only line break */
.sp-only {
  display: inline;
}

@media (min-width: 768px) {
  .pc-only {
    display: inline;
  }
  .sp-only {
    display: none;
  }
}

@media (max-width: 1024px) {
  .page-hero--lp {
    min-height: calc(400px + var(--header-height));
    padding: 100px 40px;
    padding-top: calc(100px + var(--header-height));
  }

  .page-hero__title--center {
    font-size: 36px;
  }
}

@media (max-width: 767px) {
  .page-hero--lp {
    min-height: calc(360px + var(--header-height-mobile));
    padding: 80px 20px;
    padding-top: calc(80px + var(--header-height-mobile));
  }

  .page-hero__title--center {
    font-size: 28px;
  }

  .page-hero__subtitle {
    font-size: var(--font-size-sm);
    margin-bottom: var(--spacing-4);
  }
}

/* LP Problems Section */
.lp-problems {
  max-width: 900px;
  margin: 0 auto;
}

.lp-problems__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-6);
  margin-bottom: var(--spacing-8);
}

.lp-problem-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-4);
  padding: var(--spacing-6);
  background-color: var(--color-white);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  text-align: center;
}

.lp-problem-card__icon {
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-gray-100);
  border-radius: var(--radius-full);
  color: var(--color-gray-500);
}

.lp-problem-card__text {
  font-size: var(--font-size-sm);
  color: var(--text-primary);
  line-height: var(--line-height-relaxed);
}

.lp-problems__solution {
  text-align: center;
  font-size: var(--font-size-lg);
  color: rgba(2, 193, 212, 1);
}

.lp-problems__solution strong {
  font-weight: var(--font-weight-bold);
}

/* LP Solution Section */
.lp-solution {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: var(--spacing-8);
}

.lp-solution__arrow {
  display: flex;
  justify-content: center;
  align-items: center;
  color: var(--color-gray-400);
  margin-bottom: var(--spacing-6);
  animation: bounce 2s infinite;
}

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0);
  }
  40% {
    transform: translateY(8px);
  }
  60% {
    transform: translateY(4px);
  }
}

.lp-solution__card {
  display: flex;
  align-items: center;
  gap: var(--spacing-5);
  padding: var(--spacing-6) var(--spacing-10);
  background: linear-gradient(135deg, rgba(2, 193, 212, 1) 0%, rgba(100, 200, 220, 1) 50%, rgba(209, 167, 235, 1) 100%);
  border-radius: var(--radius-2xl);
  box-shadow: 0 8px 32px rgba(2, 193, 212, 0.3);
  position: relative;
  overflow: hidden;
}

.lp-solution__card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, transparent 50%);
  pointer-events: none;
}

.lp-solution__icon {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(255, 255, 255, 0.25);
  border-radius: var(--radius-full);
  color: #FFFFFF;
}

.lp-solution__content {
  text-align: left;
}

.lp-solution__label {
  font-size: var(--font-size-sm);
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: var(--spacing-1);
}

.lp-solution__text {
  font-size: var(--font-size-2xl);
  font-weight: var(--font-weight-bold);
  color: #FFFFFF;
  line-height: 1.3;
}

.lp-solution__highlight {
  position: relative;
  display: inline-block;
}

.lp-solution__highlight::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 2px;
  width: 100%;
  height: 8px;
  background-color: rgba(255, 255, 255, 0.3);
  border-radius: 4px;
  z-index: -1;
}

@media (max-width: 767px) {
  .lp-solution__card {
    flex-direction: column;
    text-align: center;
    padding: var(--spacing-6) var(--spacing-6);
    gap: var(--spacing-4);
  }

  .lp-solution__content {
    text-align: center;
  }

  .lp-solution__icon {
    width: 56px;
    height: 56px;
  }

  .lp-solution__text {
    font-size: var(--font-size-xl);
  }
}

/* LP Target Header */
.lp-target-header {
  text-align: center;
  margin-bottom: var(--spacing-12);
}

.lp-target-header__label {
  display: inline-block;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: rgba(2, 193, 212, 1);
  letter-spacing: var(--letter-spacing-wider);
  margin-bottom: var(--spacing-2);
}

.lp-target-header__label--secondary {
  color: rgba(209, 167, 235, 1);
}

.lp-target-header .lp-section__title {
  margin-bottom: 0;
}

/* LP Feature Icon Secondary Color */
.lp-feature__icon--secondary {
  background-color: rgba(209, 167, 235, 0.2);
  color: rgba(180, 130, 210, 1);
}

/* LP Two Column Layout */
.lp-two-column {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-8);
  max-width: 1100px;
  margin: 0 auto;
}

.lp-column-card {
  background-color: var(--color-white);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}

.lp-column-card__header {
  padding: var(--spacing-6) var(--spacing-8);
  text-align: center;
}

.lp-column-card--primary .lp-column-card__header {
  background: linear-gradient(135deg, rgba(2, 193, 212, 0.1) 0%, rgba(2, 193, 212, 0.05) 100%);
  border-bottom: 2px solid rgba(2, 193, 212, 0.3);
}

.lp-column-card--secondary .lp-column-card__header {
  background: linear-gradient(135deg, rgba(209, 167, 235, 0.15) 0%, rgba(209, 167, 235, 0.05) 100%);
  border-bottom: 2px solid rgba(209, 167, 235, 0.4);
}

.lp-column-card__label {
  display: inline-block;
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  color: rgba(2, 193, 212, 1);
  letter-spacing: var(--letter-spacing-wider);
  margin-bottom: var(--spacing-2);
}

.lp-column-card__label--secondary {
  color: rgba(180, 130, 210, 1);
}

.lp-column-card__title {
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  color: var(--text-primary);
}

.lp-column-card__body {
  padding: var(--spacing-8);
  display: flex;
  flex-direction: column;
  gap: var(--spacing-6);
}

.lp-column-feature {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-4);
}

.lp-column-feature__icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-lg);
}

.lp-column-feature__icon--primary {
  background-color: rgba(2, 193, 212, 0.12);
  color: rgba(2, 193, 212, 1);
}

.lp-column-feature__icon--secondary {
  background-color: rgba(209, 167, 235, 0.2);
  color: rgba(180, 130, 210, 1);
}

.lp-column-feature__content {
  flex: 1;
}

.lp-column-feature__title {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  color: var(--text-primary);
  margin-bottom: var(--spacing-1);
}

.lp-column-feature__description {
  font-size: var(--font-size-sm);
  color: var(--text-secondary);
  line-height: var(--line-height-relaxed);
}

@media (max-width: 900px) {
  .lp-two-column {
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
  }
}

@media (max-width: 767px) {
  .lp-two-column {
    padding: 0 var(--spacing-4);
  }

  .lp-column-card__header {
    padding: var(--spacing-4);
  }

  .lp-column-card__body {
    padding: var(--spacing-4);
    gap: var(--spacing-4);
  }

  .lp-column-feature {
    gap: var(--spacing-3);
  }

  .lp-column-feature__icon {
    width: 36px;
    height: 36px;
  }
}

/* LP Functions Section */
.lp-functions {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--spacing-6);
  max-width: 900px;
  margin: 0 auto;
}

.lp-function {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-4);
  padding: var(--spacing-6);
  background-color: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

.lp-function__icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(2, 193, 212, 0.15);
  border-radius: var(--radius-md);
  color: rgba(2, 193, 212, 1);
}

.lp-function__content {
  flex: 1;
}

.lp-function__title {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--spacing-1);
}

.lp-function__description {
  font-size: var(--font-size-sm);
  color: var(--text-secondary);
  line-height: var(--line-height-relaxed);
}

/* LP Steps Section */
.lp-steps {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-4);
  max-width: 600px;
  margin: 0 auto;
}

.lp-step {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-6);
  width: 100%;
  padding: var(--spacing-6);
  background-color: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
}

.lp-step__number {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(2, 193, 212, 1) 0%, rgba(209, 167, 235, 1) 100%);
  color: #FFFFFF;
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  border-radius: var(--radius-full);
}

.lp-step__content {
  flex: 1;
}

.lp-step__title {
  font-size: var(--font-size-lg);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--spacing-2);
}

.lp-step__description {
  font-size: var(--font-size-sm);
  color: var(--text-secondary);
  line-height: var(--line-height-relaxed);
}

.lp-step__arrow {
  display: flex;
  justify-content: center;
  color: var(--color-gray-400);
}

/* LP FAQ Section */
.lp-faq {
  max-width: 800px;
  margin: 0 auto;
}

.lp-faq__item {
  padding: var(--spacing-6);
  background-color: var(--color-white);
  border-radius: var(--radius-lg);
  margin-bottom: var(--spacing-4);
}

.lp-faq__item:last-child {
  margin-bottom: 0;
}

.lp-faq__question {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-3);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  margin-bottom: var(--spacing-3);
}

.lp-faq__q {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(2, 193, 212, 1) 0%, rgba(209, 167, 235, 1) 100%);
  color: #FFFFFF;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  border-radius: var(--radius-full);
}

.lp-faq__answer {
  display: flex;
  align-items: flex-start;
  gap: var(--spacing-3);
  font-size: var(--font-size-sm);
  color: var(--text-secondary);
  line-height: var(--line-height-relaxed);
}

.lp-faq__a {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-gray-200);
  color: var(--text-secondary);
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-bold);
  border-radius: var(--radius-full);
}

/* LP CTA Section */
.lp-cta {
  background: linear-gradient(90deg, rgba(2, 193, 212, 1) 0%, rgba(209, 167, 235, 1) 80%);
}

.lp-cta__title {
  font-size: var(--font-size-3xl);
  font-weight: var(--font-weight-bold);
  margin-bottom: var(--spacing-4);
  color: #FFFFFF;
}

.lp-cta__description {
  font-size: var(--font-size-lg);
  margin-bottom: var(--spacing-8);
  color: rgba(255, 255, 255, 0.9);
}

.lp-cta__buttons {
  margin-bottom: var(--spacing-4);
}

.lp-cta__note {
  font-size: var(--font-size-sm);
  color: rgba(255, 255, 255, 0.8);
}

/* White Button */
.btn--white {
  background-color: var(--color-white);
  color: var(--color-primary);
}

.btn--white:hover {
  background-color: var(--color-gray-100);
}

@media (max-width: 767px) {
  .lp-hero {
    padding: var(--spacing-12) 0;
  }

  .lp-hero__title {
    font-size: var(--font-size-3xl);
  }

  .lp-hero__subtitle {
    font-size: var(--font-size-base);
  }

  .lp-features {
    grid-template-columns: 1fr;
    gap: var(--spacing-6);
  }

  .lp-problems__grid {
    grid-template-columns: 1fr;
  }

  .lp-functions {
    grid-template-columns: 1fr;
  }

  .lp-step {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .lp-cta__title {
    font-size: var(--font-size-2xl);
  }

  .lp-cta__description {
    font-size: var(--font-size-base);
  }
}

/* ----------------------
 * Top Page - Therapist List Section
 * ---------------------- */
.therapist-list-section {
  padding: 60px;
  background: transparent;
}

.therapist-list-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 60px;
  max-width: 1320px;
  margin: 0 auto;
  background: #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
}

.therapist-list-section .section-header {
  width: 100%;
}

.therapist-list-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  width: 100%;
}

.therapist-list-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  background: #FFFFFF;
  border: 1px solid #EEEEEE;
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.2s ease;
}

.therapist-list-card:hover {
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

.therapist-list-card__image {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #EEEEEE;
}

.therapist-list-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.therapist-list-card__favorite {
  position: absolute;
  top: 12px;
  right: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
}

.therapist-list-card__favorite svg {
  width: 24px;
  height: 24px;
  stroke: #999999;
  fill: rgba(255, 255, 255, 0.8);
  transition: fill 0.2s ease, stroke 0.2s ease;
}

.therapist-list-card__favorite:hover svg {
  stroke: #FF6B6B;
  fill: rgba(255, 255, 255, 0.9);
}

.therapist-list-card__favorite.is-active svg,
.therapist-list-card__favorite .like-button--liked svg {
  fill: #FF6B6B;
  stroke: none;
}

.therapist-list-card__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
}

.therapist-list-card__info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.therapist-list-card__name-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.therapist-list-card__name {
  font-family: var(--font-family-base);
  font-size: 18px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.therapist-list-card__shop {
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.therapist-list-card__meta {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}

.therapist-list-card__age,
.therapist-list-card__height {
  font-family: var(--font-family-base);
  font-size: 10px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.therapist-list-card__area {
  display: flex;
  align-items: center;
  gap: 0;
  font-family: var(--font-family-base);
  font-size: 10px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.therapist-list-card__area svg {
  width: 12px;
  height: 12px;
  color: #939393;
}

.therapist-list-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.therapist-list-card__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 2px;
  background: rgba(2, 193, 212, 0.1);
  border-radius: 4px;
  font-family: var(--font-family-base);
  font-size: 10px;
  font-weight: 500;
  color: #02C1D4;
  letter-spacing: 0.05em;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .therapist-list-section {
    padding: 40px;
  }

  .therapist-list-section__inner {
    padding: 40px;
  }

}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .therapist-list-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .therapist-list-section {
    padding: 24px 16px;
  }

  .therapist-list-section__inner {
    padding: 16px;
    gap: 16px;
  }

  .therapist-list-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }

  .therapist-list-card__name {
    font-size: 16px;
  }
}

/* ----------------------
 * Top Page - Ranking Section
 * ---------------------- */
.ranking-section {
  padding: 60px;
  background: transparent;
}

.ranking-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 60px;
  max-width: 1320px;
  margin: 0 auto;
  background: #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
}

.ranking-section .section-header {
  width: 100%;
}

/* Ranking Tabs */
.ranking-tabs {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
}

.ranking-tabs__labels {
  display: flex;
}

.ranking-tabs__label {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px 24px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #918461;
  letter-spacing: 0.05em;
  text-align: center;
  cursor: pointer;
  border: 1px solid #918461;
  border-right: none;
  transition: all 0.2s ease;
  background: transparent;
}

.ranking-tabs__label:last-child {
  border-right: 1px solid #918461;
}

.ranking-tabs__label:hover {
  background: rgba(145, 132, 97, 0.1);
}

/* Tab Active States */
.ranking-tabs__label.is-active {
  background: #918461;
  color: #FFFFFF;
}

/* Ranking Content */
.ranking-tabs__content {
  display: none;
  flex-direction: column;
  gap: 16px;
}

.ranking-tabs__content.is-active {
  display: flex;
}

/* Top 3 */
.ranking-top3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

/* Rank 4+ */
.ranking-others {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 16px;
  width: 100%;
}

/* Ranking Card */
.ranking-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  background: #FFFFFF;
  border: 1px solid #EEEEEE;
  border-radius: 8px;
  padding: 0px;
  overflow: hidden;
  transition: all 0.2s ease;
  gap: 0px;
}

.ranking-card:hover {
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

/* Top3 Card Image - 320px height as per Figma */
.ranking-card--top3 .ranking-card__image {
  position: relative;
  height: 320px;
  width: 100%;
  border-radius: 0px;
  overflow: hidden;
  background: #EEEEEE;
}

/* Small Card Image (4位以降) - 240px height as per Figma */
.ranking-card--small .ranking-card__image {
  position: relative;
  height: 240px;
  width: 100%;
  border-radius: 0px;
  overflow: hidden;
  background: #EEEEEE;
}

.ranking-card__image {
  position: relative;
  overflow: hidden;
  background: #EEEEEE;
}

/* セラピスト画像のみに適用（バッジには適用しない） */
.ranking-card__image > img.ranking-card__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* バッジには適用しない - 詳細度を上げて確実に適用 */
.ranking-card__image .ranking-card__badge {
  width: 34px;
  height: 34px;
  object-fit: contain;
}

/* Ranking Overlay - バッジとハートボタンのコンテナ */
.ranking-card__overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 24px;
  z-index: 2;
  pointer-events: none;
}

.ranking-card__overlay > * {
  pointer-events: auto;
}

/* Ranking Badge - 1-3位 */
.ranking-card__badge {
  width: 34px;
  height: 34px;
  min-width: 34px;
  min-height: 34px;
  object-fit: contain;
  flex-shrink: 0;
}

/* Ranking Number Badge - 4位以降 */
.ranking-card__rank {
  position: absolute;
  top: 24px;
  left: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  background: #EEEEEE;
  border-radius: 50%;
  font-family: 'Poppins', sans-serif;
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  z-index: 2;
}

/* Favorite Button */
.ranking-card__favorite {
  position: absolute;
  top: 24px;
  right: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  min-width: 24px;
  min-height: 24px;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
  color: #FFFFFF;
  flex-shrink: 0;
  z-index: 3;
}

.ranking-card__favorite:hover {
  color: #FF6B6B;
  transform: scale(1.1);
}

.ranking-card__favorite.is-active {
  color: #FF6B6B;
}

.ranking-card__favorite.is-active svg {
  fill: #FF6B6B;
  stroke: #FF6B6B;
}

.ranking-card__favorite svg {
  width: 24px;
  height: 24px;
  stroke-width: 1.5px;
  flex-shrink: 0;
  fill: none;
  transition: fill 0.2s ease, stroke 0.2s ease;
}

/* Card Body */
.ranking-card__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 24px;
  gap: 16px;
  width: 100%;
  box-sizing: border-box;
  flex: none;
  align-self: stretch;
  flex-grow: 0;
  z-index: 1;
}

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

.ranking-card__info > div:first-child {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.ranking-card__name-group {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  gap: 8px;
  min-height: 27px;
}

.ranking-card__name {
  font-family: var(--font-family-base);
  font-size: 18px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 0;
}

.ranking-card__shop {
  font-family: var(--font-family-base);
  font-size: 14px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 0;
}

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

.ranking-card__age,
.ranking-card__height {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.ranking-card__area {
  display: flex;
  align-items: center;
  gap: 0;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.ranking-card__area svg {
  width: 12px;
  height: 12px;
  fill: #939393;
}

/* Divider */
.ranking-card__divider {
  width: 100%;
  height: 1px;
  background: #EEEEEE;
}

/* Rating Section */
.ranking-card__rating {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  justify-content: flex-start;
}

.ranking-card__stars {
  display: flex;
  align-items: center;
  gap: 0px;
  height: 32px;
}

/* 4-7位用の星スタイル */
.ranking-card__stars--small {
  display: flex;
  align-items: center;
  gap: 4px;
  height: 32px;
}

.ranking-card__star-icon {
  height: 24px;
  width: auto;
}

/* 4-7位の星は常に1つだけ表示 */
.ranking-card--small .ranking-card__star-icon {
  width: 20%;
  object-fit: cover;
  object-position: left;
}

/* 4-7位の単一星アイコン用スタイル */
.ranking-card__stars--small .ranking-card__star-icon {
  width: auto;
  height: 24px;
  object-fit: contain;
}

.ranking-card__score {
  font-family: var(--font-family-base);
  font-size: 20px;
  font-weight: 500;
  color: #918461;
  letter-spacing: 0.05em;
  line-height: 1;
}

.ranking-card__reviews {
  display: flex;
  align-items: center;
  gap: 4px;
  padding-bottom: 2px;
  border-bottom: 1px solid #939393;
  margin-left: 0px;
}

/* 4-7位のコメント数用スタイル */
.ranking-card--small .ranking-card__reviews {
  display: flex;
  align-items: center;
  gap: 4px;
  padding-bottom: 2px;
  border-bottom: 1px solid #939393;
  margin-left: 0px;
}

.ranking-card__reviews svg {
  width: 16px;
  height: 16px;
  stroke: #939393;
  flex-shrink: 0;
}

.ranking-card__reviews span {
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.ranking-card__stats {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ranking-card {
  position: relative;
}

.ranking-card__link {
  display: block;
}

.ranking-card__body-link {
  display: block;
  text-decoration: none;
  color: inherit;
}

.ranking-card__favorite-wrapper {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 10;
}

.ranking-card__favorite-wrapper .like-form {
  display: block;
}

.ranking-card__favorite-wrapper .like-button {
  background: rgba(255, 255, 255, 0.9);
  border: none;
  padding: 6px;
  border-radius: 50%;
}

.ranking-card__favorite-wrapper .like-button:hover {
  background: #fff;
}

.ranking-card__favorite-wrapper .like-button__count {
  display: none;
}

.ranking-card__likes {
  display: flex;
  align-items: center;
  gap: 4px;
  padding-bottom: 2px;
}

.ranking-card__likes svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.ranking-card__likes span {
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  color: #ff6b6b;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .ranking-section {
    padding: 40px;
  }

  .ranking-section__inner {
    padding: 40px;
  }

  .ranking-tabs__labels {
    flex-direction: column;
  }

  .ranking-tabs__label {
    border: 1px solid #918461;
    border-bottom: none;
    border-radius: 0;
  }

  .ranking-tabs__label:last-child {
    border-bottom: 1px solid #918461;
  }

  .ranking-top3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .ranking-top3 .ranking-card:last-child {
    grid-column: span 1;
    max-width: 100%;
    margin: 0;
  }

  .ranking-card__name {
    font-size: 20px;
  }

  /* タブレット時、1-3位の星を1つだけ表示 */
  /* タブレット時、1-3位の星を1つだけ表示 */
  .ranking-card--top3 .ranking-card__stars .ranking-card__star-icon {
    width: auto;
    height: 24px;
    object-fit: contain;
  }

  /* タブレット時、1-3位の星の2つ目以降を非表示 */
  .ranking-card--top3 .ranking-card__stars .ranking-card__star-icon:nth-child(n+2) {
    display: none;
  }

  /* タブレット時、4-7位の星を1つだけ表示 */
  .ranking-card--small .ranking-card__star-icon {
    width: 20%;
    object-fit: cover;
    object-position: left;
  }

  /* 4-7位の単一星アイコンは常に正しいサイズで表示 */
  .ranking-card__stars--small .ranking-card__star-icon {
    width: auto;
    height: 24px;
    object-fit: contain;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .ranking-section {
    padding: 16px;
  }

  .ranking-section__inner {
    padding: 16px;
    gap: 16px;
  }

  .ranking-tabs {
    gap: 16px;
  }

  .ranking-tabs__label {
    padding: 12px 16px;
    font-size: 14px;
  }

  .ranking-top3 {
    grid-template-columns: 1fr;
  }

  .ranking-top3 .ranking-card:last-child {
    grid-column: span 1;
    max-width: 100%;
  }

  .ranking-card--top3 .ranking-card__image {
    height: 320px;
  }

  /* スマホ時、1-3位の星を1つだけ表示 */
  .ranking-card--top3 .ranking-card__stars .ranking-card__star-icon {
    width: auto;
    height: 24px;
    object-fit: contain;
  }

  /* スマホ時、1-3位の星の2つ目以降を非表示 */
  .ranking-card--top3 .ranking-card__stars .ranking-card__star-icon:nth-child(n+2) {
    display: none;
  }

  /* 4-7位の単一星アイコンは常に正しいサイズで表示 */
  .ranking-card__stars--small .ranking-card__star-icon {
    width: auto;
    height: 24px;
    object-fit: contain;
  }

  .ranking-card--small .ranking-card__image {
    height: 240px;
  }

  .ranking-card__body {
    padding: 16px;
    gap: 8px;
  }

  .ranking-card__name {
    font-size: 18px;
  }

  .ranking-card__shop,
  .ranking-card__age,
  .ranking-card__height,
  .ranking-card__area {
    font-size: 12px;
  }

  .ranking-card__score {
    font-size: 20px;
  }
}

/* ----------------------
 * Top Page - Diary Section
 * ---------------------- */
.diary-section {
  padding: 60px;
  background: transparent;
}

.diary-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 60px;
  max-width: 1320px;
  margin: 0 auto;
  background: #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
}

.diary-section .section-header {
  width: 100%;
  max-width: 1320px;
}

/* Diary Cards Wrapper */
.diary-cards-wrapper {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  width: 100%;
}

.diary-cards-row {
  display: contents;
}

/* Diary Card Item */
.diary-card-item {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  text-decoration: none;
  background: #FFFFFF;
  border: 1px solid #EEEEEE;
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.2s ease;
}

.diary-card-item:hover {
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

/* Diary Card Image */
.diary-card-item__image {
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #EEEEEE;
  border-radius: 8px 8px 0 0;
}

.diary-card-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Diary Card Body */
.diary-card-item__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
}

/* Diary Card Content */
.diary-card-item__content {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Diary Card Meta */
.diary-card-item__meta {
  display: flex;
  align-items: center;
  gap: 8px;
}

.diary-card-item__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 6px 3px;
  background: #D1A7EB;
  border-radius: 2px;
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  color: #FFFFFF;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.diary-card-item__date {
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

/* Diary Card Title */
.diary-card-item__title {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Diary Card Divider */
.diary-card-item__divider {
  width: 100%;
  height: 1px;
  background: #EEEEEE;
}

/* Diary Card Therapist */
.diary-card-item__therapist {
  display: flex;
  align-items: center;
  gap: 8px;
}

.diary-card-item__therapist-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.diary-card-item__therapist-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.diary-card-item__therapist-name {
  font-family: var(--font-family-base);
  font-size: 14px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.3;
}

.diary-card-item__therapist-shop {
  font-family: var(--font-family-base);
  font-size: 10px;
  font-weight: 500;
  color: #888888;
  letter-spacing: 0.05em;
  line-height: 1.3;
}

/* Diary Card Favorite */
.diary-card-item__favorite {
  position: absolute;
  top: 16px;
  right: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #FFFFFF;
  transition: all 0.2s ease;
  z-index: 2;
}

.diary-card-item__favorite:hover {
  color: #FF6B6B;
  transform: scale(1.1);
}

.diary-card-item__favorite.is-active {
  color: #FF6B6B;
}

.diary-card-item__favorite.is-active svg {
  fill: #FF6B6B;
}

.diary-card-item__favorite svg {
  width: 16px;
  height: 16px;
  stroke-width: 1.5px;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .diary-section {
    padding: 40px;
  }

  .diary-section__inner {
    padding: 40px;
  }

  .diary-cards-wrapper {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .diary-section {
    padding: 24px 16px;
  }

  .diary-section__inner {
    padding: 16px;
    gap: 16px;
  }

  .diary-cards-wrapper {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }


  .diary-card-item__body {
    padding: 12px;
    gap: 8px;
  }

  .diary-card-item__title {
    font-size: 14px;
  }

  .diary-card-item__therapist-name {
    font-size: 14px;
  }
}

/* ----------------------
 * Top Page - Schedule Section
 * ---------------------- */
.schedule-section {
  padding: 60px;
  background: transparent;
}

.schedule-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 60px;
  max-width: 1320px;
  margin: 0 auto;
  background: #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
}

.schedule-section .section-header {
  width: 100%;
  max-width: 1320px;
}

/* Schedule Content */
.schedule-content {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
}

.schedule-content__description {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 0;
}

/* Schedule Tabs */
.schedule-tabs {
  display: flex;
  width: 100%;
}

.schedule-tabs__item {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #918461;
  letter-spacing: 0.05em;
  text-align: center;
  cursor: pointer;
  border: 1px solid #918461;
  border-right: none;
  background: transparent;
  transition: all 0.2s ease;
}

.schedule-tabs__item:last-child {
  border-right: 1px solid #918461;
}

.schedule-tabs__item:hover {
  background: rgba(145, 132, 97, 0.1);
}

.schedule-tabs__item.is-active {
  background: #918461;
  color: #FFFFFF;
}

/* Schedule Cards */
.schedule-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 16px;
  width: 100%;
}

/* Schedule Card */
.schedule-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  text-decoration: none;
  background: #FFFFFF;
  border: 1px solid #EEEEEE;
  border-radius: 8px;
  overflow: hidden;
  transition: all 0.2s ease;
}

.schedule-card:hover {
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

.schedule-card__inner {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 60px;
}

.schedule-card__date {
  display: flex;
  justify-content: stretch;
  align-items: stretch;
  padding: 8px;
  background: #918461;
  border: 1px solid #918461;
}

.schedule-card__subtitle {
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 400;
  color: var(--text-primary);
  letter-spacing: 0.05em;
  line-height: 1.5;
}

/* Schedule Card Image */
.schedule-card__image {
  width: 100%;
  height: 400px;
  overflow: hidden;
  background: #EEEEEE;
  border-radius: 8px 8px 0 0;
}

.schedule-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Schedule Card Body */
.schedule-card__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
}

/* Schedule Card Info */
.schedule-card__info {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.schedule-card__name-group {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.schedule-card__name {
  font-family: var(--font-family-base);
  font-size: 18px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 0;
}

.schedule-card__shop {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 0;
}

/* Schedule Card Meta */
.schedule-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
}

.schedule-card__age,
.schedule-card__height {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.schedule-card__area {
  display: flex;
  align-items: center;
  gap: 0;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.schedule-card__area svg {
  width: 24px;
  height: 24px;
  fill: #939393;
}

/* Schedule Card Time */
.schedule-card__time {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 8px 16px;
  background: #F7F7F7;
}

.schedule-card__time span {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.schedule-card__time-text--off {
  color: #9E9E9E;
}

.schedule-card__time-text--undecided {
  color: #F57C00;
}

/* Schedule Card Favorite */
.schedule-card__favorite {
  position: absolute;
  top: 24px;
  right: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: transparent;
  border: none;
  cursor: pointer;
  color: #FFFFFF;
  transition: all 0.2s ease;
  z-index: 2;
}

.schedule-card__favorite:hover {
  color: #FF6B6B;
  transform: scale(1.1);
}

.schedule-card__favorite.is-active {
  color: #FF6B6B;
}

.schedule-card__favorite.is-active svg {
  fill: #FF6B6B;
}

.schedule-card__favorite svg {
  width: 32px;
  height: 32px;
  stroke-width: 1.5px;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .schedule-section {
    padding: 40px;
  }

  .schedule-section__inner {
    padding: 40px;
  }

  .schedule-tabs {
    flex-wrap: wrap;
  }

  .schedule-tabs__item {
    flex: 0 0 25%;
    border: 1px solid #918461;
    border-right: none;
    border-bottom: none;
  }

  .schedule-tabs__item:nth-child(4) {
    border-right: 1px solid #918461;
  }

  .schedule-tabs__item:nth-child(5),
  .schedule-tabs__item:nth-child(6),
  .schedule-tabs__item:nth-child(7) {
    flex: 0 0 33.333%;
    border-bottom: 1px solid #918461;
  }

  .schedule-tabs__item:nth-child(7) {
    border-right: 1px solid #918461;
  }

  .schedule-cards {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  }

  .schedule-card__image {
    height: 300px;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .schedule-section {
    padding: 24px 16px;
  }

  .schedule-section__inner {
    padding: 24px;
    gap: 24px;
  }

  .schedule-tabs {
    flex-direction: column;
  }

  .schedule-tabs__item {
    flex: 0 0 100%;
    border: 1px solid #918461;
    border-bottom: none;
  }

  .schedule-tabs__item:last-child {
    border-bottom: 1px solid #918461;
  }

  .schedule-cards {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  }

  .schedule-card__image {
    height: 280px;
  }

  .schedule-card__body {
    padding: 16px;
  }

  .schedule-card__name {
    font-size: 20px;
  }

  .schedule-card__shop,
  .schedule-card__age,
  .schedule-card__height,
  .schedule-card__area {
    font-size: 14px;
  }

  .schedule-content__description {
    font-size: 14px;
  }

  .schedule-card__inner {
    padding: 16px;
  }
}

/* ======================
 * Page Hero Section
 * ====================== */
.page-hero {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  height: calc(240px + var(--header-height));
  padding: 0 80px;
  padding-top: var(--header-height);
  background: linear-gradient(90deg, rgba(2, 193, 212, 1) 0%, rgba(209, 167, 235, 1) 80%);
  margin-top: calc(var(--header-height) * -1);
}

.page-hero__content {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 1440px;
  padding: 0 60px;
  margin: 0 auto;
}

.page-hero__title {
  font-family: var(--font-family-base);
  font-size: 32px;
  font-weight: 700;
  color: #FFFFFF;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .page-hero {
    height: calc(200px + var(--header-height));
    padding: 0 40px;
    padding-top: var(--header-height);
  }

  .page-hero__content {
    padding: 0;
  }

  .page-hero__title {
    font-size: 28px;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .page-hero {
    height: calc(160px + var(--header-height-mobile));
    padding: 0 16px;
    padding-top: var(--header-height-mobile);
    margin-top: calc(var(--header-height-mobile) * -1);
  }

  .page-hero__content {
    padding: 0;
  }

  .page-hero__title {
    font-size: 24px;
  }
}

/* ======================
 * Breadcrumb
 * ====================== */
.breadcrumb {
  padding: 24px 0;
  background-color: #FAFAFA;
  border-top: 1px solid #EEEEEE;
}

.breadcrumb__inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 24px;
}

.breadcrumb__list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.breadcrumb__item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 400;
  color: #888888;
  letter-spacing: 0.02em;
  line-height: 1.5;
}

.breadcrumb__item::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 10px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='10' viewBox='0 0 6 10' fill='none'%3E%3Cpath d='M1 1L5 5L1 9' stroke='%23AAAAAA' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  margin-left: 4px;
}

.breadcrumb__item:last-child::after {
  display: none;
}

.breadcrumb__link {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #666666;
  text-decoration: none;
  transition: color 0.2s ease;
}

.breadcrumb__link:hover {
  color: #918461;
}

.breadcrumb__icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  fill: #888888;
  transition: fill 0.2s ease;
}

.breadcrumb__link:hover .breadcrumb__icon {
  fill: #918461;
}

.breadcrumb__current {
  color: #AAAAAA;
  font-weight: 400;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .breadcrumb {
    padding: 20px 0;
  }

  .breadcrumb__inner {
    padding: 0 20px;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .breadcrumb {
    padding: 16px 0;
  }

  .breadcrumb__inner {
    padding: 0 16px;
  }

  .breadcrumb__list {
    gap: 6px;
  }

  .breadcrumb__item {
    font-size: 11px;
    gap: 6px;
  }

  .breadcrumb__item::after {
    width: 5px;
    height: 8px;
    margin-left: 2px;
  }

  .breadcrumb__link {
    gap: 4px;
  }

  .breadcrumb__icon {
    width: 12px;
    height: 12px;
  }
}

/* ======================
 * News List Section
 * ====================== */
.news-list-section {
  padding: 60px;
  background: #F7F7F7;
}

.news-list-section__inner {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

/* News Page Card Container */
.news-list-section .news-page-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 60px;
  background: #FFFFFF;
  border-radius: 0;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
}

.news-page-card__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  max-width: 1200px;
}

.news-page-card__item {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.news-page-card__item:hover {
  opacity: 0.7;
}

.news-page-card__item::after {
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background: #EEEEEE;
}

.news-page-card__item--last::after {
  display: none;
}

.news-page-card__content {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.news-page-card__meta {
  display: flex;
  align-items: center;
  gap: 16px;
}

.news-page-card__date {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.news-page-card__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 6px 3px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
  background: transparent;
  white-space: nowrap;
}

.news-page-card__tag--info {
  border: 1px solid #02C1D4;
  color: #02C1D4;
}

.news-page-card__tag--press {
  border: 1px solid #D1A7EB;
  color: #D1A7EB;
}

.news-page-card__tag--campaign {
  border: 1px solid #E57373;
  color: #E57373;
}

.news-page-card__tag--update {
  border: 1px solid #FFB74D;
  color: #FFB74D;
}

.news-page-card__tag--event {
  border: 1px solid #81C784;
  color: #81C784;
}

.news-page-card__title {
  font-family: var(--font-family-base);
  font-size: 18px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 0;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .news-list-section {
    padding: 40px;
  }

  .news-list-section .news-page-card {
    padding: 40px;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .news-list-section {
    padding: 24px 16px;
  }

  .news-list-section__inner {
    gap: 24px;
  }

  .news-list-section .news-page-card {
    padding: 24px;
    gap: 32px;
  }

  .news-page-card__list {
    gap: 12px;
  }

  .news-page-card__meta {
    gap: 12px;
  }

  .news-page-card__date {
    font-size: 14px;
  }

  .news-page-card__tag {
    font-size: 14px;
    padding: 1px 4px 2px;
  }

  .news-page-card__title {
    font-size: 16px;
  }
}

/* ======================
 * Pagination - 統合済み（components.cssで定義）
 * ====================== */
/* .pagination スタイルは components.css に統合されています */

/* ======================
 * News Detail Section
 * ====================== */
.news-detail-section {
  background: #F7F7F7;
}

.news-detail-section__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1320px;
  margin: 0 auto;
  padding: 60px;
}

/* News Detail Card */
.news-detail-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 60px;
  background: #FFFFFF;
  /* box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05); */
}

.news-detail-card__content {
  display: flex;
  flex-direction: column;
  gap: 60px;
  width: 100%;
}

.news-detail-card__header {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.news-detail-card__meta {
  display: flex;
  align-items: center;
  gap: 16px;
}

.news-detail-card__date {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.news-detail-card__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 6px 3px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
  background: transparent;
  white-space: nowrap;
}

.news-detail-card__tag--info {
  border: 1px solid #02C1D4;
  color: #02C1D4;
}

.news-detail-card__tag--press {
  border: 1px solid #D1A7EB;
  color: #D1A7EB;
}

.news-detail-card__tag--campaign {
  border: 1px solid #E57373;
  color: #E57373;
}

.news-detail-card__tag--update {
  border: 1px solid #FFB74D;
  color: #FFB74D;
}

.news-detail-card__tag--event {
  border: 1px solid #81C784;
  color: #81C784;
}

.news-detail-card__title-wrapper {
  display: flex;
  align-items: stretch;
  gap: 16px;
}

.news-detail-card__title-bar {
  width: 8px;
  background: #02C1D4;
  flex-shrink: 0;
}

.news-detail-card__title {
  font-family: var(--font-family-base);
  font-size: 32px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 0;
}

.news-detail-card__thumbnail {
  width: 100%;
  margin: 0 0 32px;
  border-radius: 8px;
  overflow: hidden;
}

.news-detail-card__thumbnail-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  aspect-ratio: 16 / 9;
}

.news-detail-card__body {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.news-detail-card__body p {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.8;
  margin: 0;
}

.news-detail-card__body h2 {
  font-family: var(--font-family-base);
  font-size: 24px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 32px 0 16px;
  padding-left: 16px;
  border-left: 4px solid #02C1D4;
}

.news-detail-card__body h3 {
  font-family: var(--font-family-base);
  font-size: 20px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 24px 0 12px;
}

.news-detail-card__body h4 {
  font-family: var(--font-family-base);
  font-size: 18px;
  font-weight: 700;
  color: #555555;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 20px 0 10px;
}

.news-detail-card__body h5 {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 700;
  color: #555555;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 16px 0 8px;
}

.news-detail-card__body h6 {
  font-family: var(--font-family-base);
  font-size: 14px;
  font-weight: 700;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 16px 0 8px;
  text-transform: uppercase;
}

.news-detail-card__body strong {
  font-weight: 700;
  color: #333333;
}

.news-detail-card__body em {
  font-style: italic;
}

.news-detail-card__body a {
  color: #02C1D4;
  text-decoration: underline;
  transition: opacity 0.2s ease;
}

.news-detail-card__body a:hover {
  opacity: 0.7;
}

.news-detail-card__body a.btn--gold {
  color: #ffffff;
}

.news-detail-card__body a.btn--gold:hover {
  color: #ffffff;
  opacity: 1;
}

.news-detail-card__body ul,
.news-detail-card__body ol {
  margin: 16px 0;
  padding-left: 24px;
}

.news-detail-card__body ul {
  list-style-type: disc;
}

.news-detail-card__body ol {
  list-style-type: decimal;
}

.news-detail-card__body li {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.8;
  margin-bottom: 8px;
}

.news-detail-card__body li:last-child {
  margin-bottom: 0;
}

/* Table of Contents */
.news-detail-card__toc {
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 8px;
  padding: 24px;
  margin: 8px 0 16px;
}

.news-detail-card__toc-title {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 2px solid #02C1D4;
}

.news-detail-card__toc-list {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: toc-counter;
}

.news-detail-card__toc-item {
  margin-bottom: 12px;
  counter-increment: toc-counter;
}

.news-detail-card__toc-item:last-child {
  margin-bottom: 0;
}

.news-detail-card__toc-link {
  font-family: var(--font-family-base);
  font-size: 15px;
  font-weight: 500;
  color: #333333;
  text-decoration: none;
  letter-spacing: 0.05em;
  line-height: 1.6;
  transition: color 0.2s ease;
}

.news-detail-card__toc-link:hover {
  color: #02C1D4;
}

.news-detail-card__toc-sublist {
  list-style: none;
  margin: 8px 0 0;
  padding-left: 20px;
}

.news-detail-card__toc-sublist li {
  margin-bottom: 8px;
}

.news-detail-card__toc-sublist li:last-child {
  margin-bottom: 0;
}

.news-detail-card__toc-sublist .news-detail-card__toc-link {
  font-size: 14px;
  font-weight: 400;
  color: #555555;
}

.news-detail-card__toc-sublist .news-detail-card__toc-link:hover {
  color: #02C1D4;
}

/* Article Images */
.news-detail-card__image {
  margin: 24px 0;
  border-radius: 8px;
  overflow: hidden;
}

.news-detail-card__image img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.news-detail-card__image figcaption {
  font-family: var(--font-family-base);
  font-size: 14px;
  font-weight: 400;
  color: #666666;
  text-align: center;
  padding: 12px 16px;
  background: #f8f8f8;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.news-detail-card__divider {
  width: 100%;
  height: 1px;
  background: #EEEEEE;
}

/* Navigation */
.news-detail-card__nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  width: 100%;
}

.news-detail-card__nav-link {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.news-detail-card__nav-link:hover {
  opacity: 0.7;
}

.news-detail-card__nav-link svg {
  width: 16px;
  height: 16px;
  color: #333333;
}

.news-detail-card__nav-link--next {
  margin-left: auto;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .news-detail-section__inner {
    padding: 40px;
    gap: 32px;
  }

  .news-detail-card {
    padding: 40px;
    gap: 32px;
  }

  .news-detail-card__content {
    gap: 40px;
  }

  .news-detail-card__title {
    font-size: 28px;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .news-detail-section__inner {
    padding: 24px 16px;
    gap: 24px;
  }

  .news-detail-card {
    padding: 24px;
    gap: 24px;
  }

  .news-detail-card__content {
    gap: 16px;
  }

  .news-detail-card__meta {
    gap: 12px;
  }

  .news-detail-card__date {
    font-size: 12px;
  }

  .news-detail-card__tag {
    font-size: 10px;
    padding: 1px 4px 2px;
  }

  .news-detail-card__title-wrapper {
    gap: 12px;
  }

  .news-detail-card__title-bar {
    width: 6px;
  }

  .news-detail-card__title {
    font-size: 16px;
  }

  .news-detail-card__body {
    gap: 16px;
  }

  .news-detail-card__body p,
  .news-detail-card__body li {
    font-size: 12px;
  }

  .news-detail-card__body h2 {
    font-size: 18px;
    margin: 24px 0 12px;
    padding-left: 12px;
    border-left-width: 3px;
  }

  .news-detail-card__body h3 {
    font-size: 16px;
    margin: 20px 0 10px;
  }

  .news-detail-card__body h4 {
    font-size: 15px;
    margin: 16px 0 8px;
  }

  .news-detail-card__body h5 {
    font-size: 14px;
    margin: 14px 0 6px;
  }

  .news-detail-card__body h6 {
    font-size: 12px;
    margin: 12px 0 6px;
  }

  .news-detail-card__body ul,
  .news-detail-card__body ol {
    margin: 12px 0;
    padding-left: 20px;
  }

  .news-detail-card__thumbnail {
    margin-bottom: 24px;
  }

  .news-detail-card__image {
    margin: 16px 0;
  }

  .news-detail-card__image figcaption {
    font-size: 12px;
    padding: 8px 12px;
  }

  .news-detail-card__toc {
    padding: 16px;
    margin: 8px 0 12px;
  }

  .news-detail-card__toc-title {
    font-size: 14px;
    margin-bottom: 12px;
    padding-bottom: 10px;
  }

  .news-detail-card__toc-link {
    font-size: 14px;
  }

  .news-detail-card__toc-sublist {
    padding-left: 16px;
  }

  .news-detail-card__toc-sublist li {
    padding-left: 0px;
  }

  .news-detail-card__toc-sublist .news-detail-card__toc-link {
    font-size: 13px;
  }

  .news-detail-card__nav {
    gap: 24px;
  }

  .news-detail-card__nav-link {
    font-size: 11px;
  }

  .news-detail-card__nav-link svg {
    width: 14px;
    height: 14px;
  }
}

/* ======================
 * Related News Section
 * ====================== */
.related-news {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 60px;
  background: #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
}

.related-news__title {
  font-family: var(--font-family-base);
  font-size: 24px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 0;
  padding-bottom: 16px;
  border-bottom: 2px solid #02C1D4;
}

.related-news__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.related-news__item {
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.related-news__item:hover {
  opacity: 0.7;
}

.related-news__item::after {
  display: none;
}

.related-news__item--last::after {
  display: none;
}

.related-news__thumbnail {
  width: 100%;
  border-radius: 8px;
  overflow: hidden;
  flex-shrink: 0;
}

.related-news__thumbnail-img {
  width: 100%;
  height: 140px;
  display: block;
  object-fit: cover;
}

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

.related-news__meta {
  display: flex;
  align-items: center;
  gap: 16px;
}

.related-news__date {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.related-news__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 6px 3px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
  background: transparent;
  white-space: nowrap;
}

.related-news__tag--info {
  border: 1px solid #02C1D4;
  color: #02C1D4;
}

.related-news__tag--press {
  border: 1px solid #D1A7EB;
  color: #D1A7EB;
}

.related-news__tag--campaign {
  border: 1px solid #E57373;
  color: #E57373;
}

.related-news__tag--update {
  border: 1px solid #FFB74D;
  color: #FFB74D;
}

.related-news__tag--event {
  border: 1px solid #81C784;
  color: #81C784;
}

.related-news__item-title {
  font-family: var(--font-family-base);
  font-size: 18px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 0;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .related-news {
    padding: 40px;
    gap: 20px;
  }

  .related-news__title {
    font-size: 20px;
  }

  .related-news__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }

  .related-news__thumbnail-img {
    height: 120px;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .related-news {
    padding: 24px;
    gap: 16px;
  }

  .related-news__title {
    font-size: 18px;
    padding-bottom: 12px;
  }

  .related-news__list {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .related-news__item {
    flex-direction: row;
    gap: 12px;
  }

  .related-news__thumbnail {
    width: 100px;
    flex-shrink: 0;
  }

  .related-news__thumbnail-img {
    height: 70px;
  }

  .related-news__meta {
    gap: 8px;
  }

  .related-news__date {
    font-size: 12px;
  }

  .related-news__tag {
    font-size: 12px;
    padding: 1px 4px 2px;
  }

  .related-news__item-title {
    font-size: 14px;
  }
}



/* ======================
 * Diaries List Section
 * ====================== */
.diaries-list-section {
  padding: 60px;
  background: #F7F7F7;
}

.diaries-list-section__inner {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

/* With Sidebar Layout */
.diaries-list-section--with-sidebar .diaries-list-section__inner {
  flex-direction: row;
  align-items: flex-start;
}

.diaries-list-section__main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.diaries-list-section__sidebar {
  width: 320px;
  flex-shrink: 0;
  position: sticky;
  top: 100px;
}

.diaries-list-section__sidebar .diary-detail-profile {
  padding: 20px;
}

/* Hide footer on PC (shown only on mobile) */
.diaries-list-section__sidebar .diary-detail-profile__footer {
  display: none;
}

/* Diaries Filter */
.diaries-filter {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
}

.diaries-filter__options {
  display: flex;
  align-items: center;
  gap: 16px;
}

.diaries-filter__select-wrapper {
  position: relative;
  display: inline-block;
}

.diaries-filter__select {
  appearance: none;
  padding: 10px 40px 10px 16px;
  font-size: 14px;
  font-weight: 500;
  color: #333333;
  background: #FFFFFF;
  border: 1px solid #DDDDDD;
  border-radius: 6px;
  cursor: pointer;
  transition: border-color 0.2s ease;
}

.diaries-filter__select:hover {
  border-color: #02C1D4;
}

.diaries-filter__select:focus {
  outline: none;
  border-color: #02C1D4;
  box-shadow: 0 0 0 2px rgba(2, 193, 212, 0.1);
}

.diaries-filter__select-arrow {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: #939393;
}

.diaries-filter__count {
  display: flex;
  align-items: baseline;
  gap: 4px;
}

.diaries-filter__count-number {
  font-family: 'Poppins', sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: #02C1D4;
  letter-spacing: 0.02em;
}

.diaries-filter__count-label {
  font-size: 14px;
  font-weight: 500;
  color: #333333;
}

/* Diaries Page Card Container */
.diaries-page-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 60px;
  background: #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
}

/* Compact modifier for header/stats cards */
.diaries-page-card--compact {
  align-items: stretch;
  gap: 0;
  padding: 0;
}

/* Therapist Profile Header */
.therapist-diary-header {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 24px;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.2s;
}

.therapist-diary-header:hover {
  opacity: 0.8;
}

.therapist-diary-header__avatar {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  overflow: hidden;
  background-color: var(--color-gray-200);
  flex-shrink: 0;
}

.therapist-diary-header__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.therapist-diary-header__info {
  flex: 1;
  min-width: 0;
}

.therapist-diary-header__name {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 4px;
  color: var(--color-text);
}

.therapist-diary-header__location {
  font-size: 13px;
  color: var(--color-text-muted);
  margin-bottom: 6px;
}

.therapist-diary-header__rating {
  display: flex;
  align-items: center;
  gap: 6px;
}

.therapist-diary-header__stars {
  color: #FFB800;
  font-size: 14px;
}

.therapist-diary-header__review-count {
  font-size: 12px;
  color: var(--color-text-muted);
}

/* Therapist Diary Stats */
.therapist-diary-stats {
  display: flex;
  padding: 20px 24px;
}

.therapist-diary-stats__item {
  flex: 1;
  text-align: center;
  padding: 0 16px;
}

.therapist-diary-stats__item:not(:last-child) {
  border-right: 1px solid var(--color-gray-200);
}

.therapist-diary-stats__value {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary);
  margin-bottom: 4px;
}

.therapist-diary-stats__label {
  font-size: 12px;
  color: var(--color-text-muted);
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .diaries-list-section {
    padding: 40px;
  }

  .diaries-list-section--with-sidebar .diaries-list-section__inner {
    flex-direction: column;
  }

  .diaries-list-section__main {
    width: 100%;
  }

  .diaries-list-section__sidebar {
    width: 100%;
    position: static;
    order: -1;
  }

  .diaries-list-section__sidebar .diary-detail-profile {
    flex-direction: column;
  }

  .diaries-list-section__sidebar .diary-detail-profile__main {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
  }

  .diaries-list-section__sidebar .diary-detail-profile__image {
    width: 200px;
    height: 200px;
    flex-shrink: 0;
  }

  .diaries-list-section__sidebar .diary-detail-profile__content {
    padding-top: 0;
    flex: 1;
  }

  .diaries-list-section__sidebar .diary-detail-profile__buttons {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    margin-top: 16px;
  }

  .diaries-list-section__sidebar .diary-detail-profile__button {
    width: 100%;
    justify-content: center;
    gap: 24px;
  }

  .diaries-page-card {
    padding: 40px;
  }

  .diaries-page-card--compact {
    padding: 0;
  }

  .therapist-diary-header__avatar {
    width: 64px;
    height: 64px;
  }

  /* Diaries Filter - Tablet */
  .diaries-filter {
    flex-wrap: wrap;
    gap: 12px;
  }

  .diaries-filter__options {
    flex-wrap: wrap;
    gap: 8px;
  }

  .diaries-filter__select-wrapper {
    min-width: calc(50% - 4px);
  }

  .diaries-filter__select {
    width: 100%;
    font-size: 13px;
    padding: 8px 32px 8px 12px;
  }

  .diaries-filter__count-number {
    font-size: 18px;
  }

  .diaries-filter__count-label {
    font-size: 13px;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .diaries-list-section {
    padding: 24px 16px;
  }

  .diaries-list-section__inner {
    gap: 24px;
  }

  .diaries-list-section__sidebar .diary-detail-profile {
    flex-direction: column;
    padding: 16px;
  }

  .diaries-list-section__sidebar .diary-detail-profile__main {
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
  }

  .diaries-list-section__sidebar .diary-detail-profile__image {
    width: 80px;
    height: 80px;
    flex-shrink: 0;
  }

  .diaries-list-section__sidebar .diary-detail-profile__content {
    flex: 1;
    padding-top: 0;
  }

  /* Hide tags, divider, and description inside content on mobile */
  .diaries-list-section__sidebar .diary-detail-profile__content .diary-detail-profile__divider,
  .diaries-list-section__sidebar .diary-detail-profile__content .diary-detail-profile__tags,
  .diaries-list-section__sidebar .diary-detail-profile__content .diary-detail-profile__description {
    display: none;
  }

  /* Show footer section on mobile */
  .diaries-list-section__sidebar .diary-detail-profile__footer {
    display: block;
    margin-top: 16px;
  }

  .diaries-list-section__sidebar .diary-detail-profile__footer .diary-detail-profile__divider {
    margin-bottom: 16px;
  }

  .diaries-list-section__sidebar .diary-detail-profile__footer .diary-detail-profile__tags {
    margin-bottom: 16px;
  }

  .diaries-list-section__sidebar .diary-detail-profile__buttons {
    margin-top: 0;
  }

  /* Diaries Filter - Mobile */
  .diaries-filter {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .diaries-filter__options {
    width: 100%;
  }

  .diaries-filter__select-wrapper {
    flex: 1;
    min-width: 0;
  }

  .diaries-filter__count {
    justify-content: flex-end;
  }

  .diaries-page-card {
    padding: 16px;
    gap: 16px;
  }

  .diaries-page-card--compact {
    padding: 0;
  }

  .therapist-diary-header {
    padding: 20px;
    gap: 12px;
  }

  .therapist-diary-header__avatar {
    width: 56px;
    height: 56px;
  }

  .therapist-diary-header__name {
    font-size: 16px;
  }

  .therapist-diary-stats {
    padding: 16px 20px;
  }

  .therapist-diary-stats__item {
    padding: 0 8px;
  }

  .therapist-diary-stats__value {
    font-size: 16px;
  }

  .therapist-diary-stats__label {
    font-size: 11px;
  }
}

/* ======================
 * Diary Item (Single Therapist Page)
 * ====================== */
.diary-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
  background: #FFFFFF;
}

.diary-item__info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}

.diary-item__link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--text-primary);
  font-family: var(--font-family-base);
  font-size: 10px;
  font-weight: 500;
  color: var(--text-primary);
  letter-spacing: 0.05em;
  line-height: 1.5;
  width: fit-content;
  transition: opacity var(--transition-fast);
  margin-top: auto;
}

.diary-item__description {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 400;
  color: var(--text-primary);
  letter-spacing: 0.05em;
  line-height: 1.5;
}

@media (max-width: 768px) {
  .diary-item__title {
    font-size: 14px;
  }

  .diary-item__description {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 12px;
  }
}

/* ======================
 * Career Card (Single Therapist Page)
 * ====================== */
.career-card__inner {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 60px;
}

.career-card__description {
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 400;
  color: var(--text-primary);
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.career-card__section {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
  background: #F7F7F7;
}

@media (max-width: 768px) {
  .career-card__inner {
    padding: 16px;
  }
}

/* ======================
 * Voice Card (Single Therapist Page)
 * ====================== */
@media (max-width: 767px) {
  .voice-card__inner {
    padding: 16px;
    gap: 16px;
  }
}

/* ======================
 * Service Card (Single Therapist Page)
 * ====================== */
@media (max-width: 767px) {
  .service-card {
    padding: 16px;
  }
}

/* ======================
 * QA Card (Single Therapist Page)
 * ====================== */
@media (max-width: 767px) {
  .qa-card {
    padding: 16px;
  }
}

/* ======================
 * Profile Card (Single Therapist Page)
 * ====================== */
@media (max-width: 767px) {
  .profile-card {
    padding: 16px;
    gap: 16px;
  }

  .profile-card__body {
    gap: 16px;
  }

  .profile-card__content {
    gap: 16px;
  }
}

/* ======================
 * Tag Gold
 * ====================== */
.tag-gold {
  display: inline-flex;
  padding: 2px 4px;
  background-color: #918461;
  color: #ffffff;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

@media (max-width: 767px) {
  .tag-gold {
    font-size: 12px;
  }
}

/* ======================
 * Diary Detail Section
 * ====================== */
.diary-detail-section {
  padding: 12px 60px 60px 60px;
  background: #F7F7F7;
}

.diary-detail-section__inner {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

/* Content Layout */
.diary-detail-content {
  display: flex;
  gap: 40px;
}

/* Main Content Area */
.diary-detail-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 40px;
  min-width: 0;
}

/* Main Diary Card */
.diary-detail-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 60px;
  background: #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
}

.diary-detail-card__content {
  display: flex;
  flex-direction: column;
  gap: 60px;
  width: 100%;
}

/* Header */
.diary-detail-card__header {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.diary-detail-card__author {
  display: flex;
  gap: 8px;
}

.diary-detail-card__avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}

.diary-detail-card__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.diary-detail-card__author-info {
  display: flex;
  flex-direction: column;
}

.diary-detail-card__author-name {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.diary-detail-card__date {
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.diary-detail-card__title {
  font-family: var(--font-family-base);
  font-size: 32px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin: 0;
}

.diary-detail-card__likes {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #939393;
}

.diary-detail-card__likes svg {
  width: 20px;
  height: 20px;
}

.diary-detail-card__likes span {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

/* Body */
.diary-detail-card__body {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.diary-detail-card__image {
  width: 100%;
  margin: 0;
  border-radius: 0;
  overflow: hidden;
}

.diary-detail-card__image img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

.diary-detail-card__text {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.diary-detail-card__text p {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.8;
  margin: 0;
}

.diary-detail-card__text h2 {
  font-size: 20px;
  font-weight: 700;
  color: #333333;
  margin: 24px 0 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid #918461;
}

.diary-detail-card__text h3 {
  font-size: 18px;
  font-weight: 700;
  color: #333333;
  margin: 20px 0 10px;
}

.diary-detail-card__text h4 {
  font-size: 16px;
  font-weight: 700;
  color: #333333;
  margin: 16px 0 8px;
}

.diary-detail-card__text ul,
.diary-detail-card__text ol {
  margin: 16px 0;
  padding-left: 24px;
}

.diary-detail-card__text ul {
  list-style-type: disc;
}

.diary-detail-card__text ol {
  list-style-type: decimal;
}

.diary-detail-card__text li {
  font-size: 16px;
  line-height: 1.8;
  color: #333333;
  margin-bottom: 8px;
}

.diary-detail-card__text a {
  color: #918461;
  text-decoration: underline;
}

.diary-detail-card__text a:hover {
  color: #7a6f52;
}

.diary-detail-card__text strong,
.diary-detail-card__text b {
  font-weight: 700;
}

.diary-detail-card__text em,
.diary-detail-card__text i {
  font-style: italic;
}

.diary-detail-card__text u {
  text-decoration: underline;
}

.diary-detail-card__text s,
.diary-detail-card__text del {
  text-decoration: line-through;
}

.diary-detail-card__text blockquote {
  margin: 16px 0;
  padding: 16px 20px;
  background: #F5F5F5;
  border-left: 4px solid #918461;
  font-style: italic;
  color: #666666;
}

.diary-detail-card__text blockquote p {
  margin: 0;
  color: #666666;
}

.diary-detail-card__text img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 16px 0;
}

.diary-detail-card__text .alignleft {
  float: left;
  margin-right: 16px;
  margin-bottom: 8px;
}

.diary-detail-card__text .alignright {
  float: right;
  margin-left: 16px;
  margin-bottom: 8px;
}

.diary-detail-card__text .aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.diary-detail-card__divider {
  width: 100%;
  height: 1px;
  background: #EEEEEE;
}

/* Navigation */
.diary-detail-card__nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 40px;
  width: 100%;
}

.diary-detail-card__nav-link {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  color: #333333;
  text-decoration: none;
  letter-spacing: 0.05em;
  line-height: 1.5;
  transition: opacity 0.2s ease;
}

.diary-detail-card__nav-link:hover {
  opacity: 0.7;
}

.diary-detail-card__nav-link svg {
  width: 16px;
  height: 16px;
  color: #333333;
}

.diary-detail-card__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

@media (max-width: 768px) {
  .diary-detail-card__list {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}

.diary-detail-card__inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
}

/* Sidebar */
.diary-detail-sidebar {
  width: 320px;
  flex-shrink: 0;
  position: sticky;
  top: 100px;
  align-self: flex-start;
}

.diary-detail-profile {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 20px;
  background: #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
}

.diary-detail-profile__image {
  width: 100%;
  height: 320px;
  overflow: hidden;
}

.diary-detail-profile__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.diary-detail-profile__content {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  padding-top: 16px;
}

.diary-detail-profile__header {
  display: flex;
  flex-direction: column;
  gap: 0px;
}

.diary-detail-profile__name-wrap {
  display: flex;
  flex-direction: column;
}

.diary-detail-profile__shop {
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.diary-detail-profile__name {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.diary-detail-profile__meta {
  display: flex;
  align-items: center;
  gap: 8px;
}

.diary-detail-profile__age,
.diary-detail-profile__height {
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.diary-detail-profile__location {
  display: flex;
  align-items: center;
  gap: 2px;
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.diary-detail-profile__location svg {
  width: 16px;
  height: 16px;
  fill: #939393;
}

.diary-detail-profile__divider {
  width: 100%;
  height: 1px;
  background: #EEEEEE;
}

.diary-detail-profile__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.diary-detail-profile__tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 6px 3px;
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  color: #FFFFFF;
  background: #918461;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.diary-detail-profile__description {
  font-family: var(--font-family-base);
  font-size: 12px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  margin-bottom: 0px;
}

.diary-detail-profile__buttons {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 8px;
}

.diary-detail-profile__button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
  padding: 8px 20px;
  background: #333333;
  border: 1px solid #333333;
  border-radius: 8px;
  box-shadow: 0px 4px 0px 0px #141414;
  font-family: var(--font-family-base);
  font-size: 14px;
  font-weight: 700;
  color: #FFFFFF;
  text-decoration: none;
  letter-spacing: 0.08em;
  line-height: 1.45;
  transition: all 0.2s ease;
}

.diary-detail-profile__button:hover {
  opacity: 0.9;
  transform: translateY(2px);
  box-shadow: 0px 2px 0px 0px #141414;
}

.diary-detail-profile__button svg {
  width: 16px;
  height: 16px;
  stroke: #FFFFFF;
}

.diary-detail-profile__button--secondary {
  background: #FFFFFF;
  border: 1px solid #333333;
  color: #333333;
  box-shadow: 0px 2px 0px 0px #CCCCCC;
}

.diary-detail-profile__button--secondary:hover {
  box-shadow: 0px 2px 0px 0px #CCCCCC;
}

.diary-detail-profile__button--secondary svg {
  stroke: #333333;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .diary-detail-section {
    padding: 40px;
  }

  .diary-detail-content {
    flex-direction: column;
  }

  .diary-detail-sidebar {
    width: 100%;
    position: static;
  }

  .diary-detail-profile {
    flex-direction: column;
  }

  .diary-detail-profile__main {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
    width: 100%;
    margin-bottom: 20px;
  }

  .diary-detail-profile__image {
    width: 200px;
    height: 200px;
    flex-shrink: 0;
  }

  .diary-detail-profile__content {
    padding-top: 0;
    flex: 1;
  }

  .diary-detail-profile__buttons {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    margin-top: 16px;
  }

  .diary-detail-profile__button {
    width: 100%;
    justify-content: center;
    gap: 24px;
  }

  .diary-detail-card {
    padding: 40px;
  }

  .diary-detail-card__title {
    font-size: 24px;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .diary-detail-section {
    padding: 24px 16px;
  }

  .diary-detail-section__inner {
    gap: 24px;
  }

  .diary-detail-content {
    gap: 24px;
  }

  .diary-detail-main {
    gap: 16px;
  }

  .diary-detail-card {
    padding: 16px;
    gap: 16px;
  }

  .diary-detail-card__content {
    gap: 16px;
  }

  .diary-detail-card__title {
    font-size: 16px;
  }

  .diary-detail-card__body {
    gap: 24px;
  }

  .diary-detail-card__text p {
    font-size: 14px;
  }

  .diary-detail-card__nav {
    gap: 16px;
  }

  .diary-detail-profile {
    flex-direction: column;
    padding: 16px;
  }

  .diary-detail-profile__main {
    flex-direction: column;
    gap: 0;
    margin-bottom: 16px;
  }

  .diary-detail-profile__image {
    width: 100%;
    height: 280px;
  }

  .diary-detail-profile__buttons {
    margin-top: 0;
  }

  .diary-detail-profile__button {
    width: 100%;
    justify-content: center;
    gap: 16px;
  }
}

/* ======================
 * Related Diaries Section
 * ====================== */
.related-diaries-section {
  padding: 60px;
  background: #FFFFFF;
}

.related-diaries-section__inner {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.related-diaries-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

.related-diaries-section__more {
  display: flex;
  justify-content: center;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .related-diaries-section {
    padding: 40px;
  }

  .related-diaries-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .related-diaries-section {
    padding: 16px;
  }

  .related-diaries-section__inner {
    gap: 24px;
  }

  .related-diaries-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }

  .related-diaries-grid .diary-card__title {
    font-size: 14px;
  }
}

/* Related Diaries Section - Heading with gradient underline */
.related-diaries-section .section-header__title {
  position: relative;
  display: inline-block;
  padding-bottom: 12px;
}

.related-diaries-section .section-header__title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 60px;
  height: 3px;
  background: linear-gradient(90deg, #02C1D4 0%, #F5A5B8 100%);
  border-radius: 2px;
}

/* Related Diaries Grid - Noimage styling */
.related-diaries-grid .diary-card__image {
  background-image: none;
  background-color: #F8F8F8;
}

.related-diaries-grid .diary-card__image--noimage {
  display: flex;
  align-items: center;
  justify-content: center;
}

.related-diaries-grid .diary-card__image--noimage img {
  object-fit: contain !important;
  width: auto;
  max-width: 80%;
  height: auto;
  max-height: 80%;
}

/* ======================
 * Therapists List Page
 * ====================== */
.therapists-section {
  background-image: url('../assets/images/bg-pattern.png');
  background-repeat: repeat-y;
  background-position: center top;
  background-size: cover;
  padding: 60px;
}

.therapists-section__inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1320px;
  margin: 0 auto;
}

/* 検索結果件数 */
.therapists-section__result-info {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.therapists-section__result-count {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.03em;
  margin: 0;
}

.therapists-section__result-count-number {
  font-family: var(--font-family-accent);
  font-size: 24px;
  font-weight: 700;
  color: #02C1D4;
  margin-right: 2px;
}

.therapists-section__search-keyword {
  font-family: var(--font-family-base);
  font-size: 14px;
  font-weight: 400;
  color: #666666;
  margin: 0;
}

/* Breadcrumb */
.therapists-breadcrumb {
  display: flex;
  align-items: center;
  gap: 16px;
}

.therapists-breadcrumb__link {
  display: flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  text-decoration: none;
  letter-spacing: 0.05em;
  line-height: 1.5;
  transition: color 0.2s ease;
}

.therapists-breadcrumb__link:hover {
  color: #02C1D4;
}

.therapists-breadcrumb__link svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
}

.therapists-breadcrumb__arrow {
  width: 12px;
  height: 24px;
  color: #939393;
}

.therapists-breadcrumb__current {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

/* Container */
.therapists-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 60px;
  background: #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
}

/* Empty state */
.therapists-container__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-6);
  padding: var(--spacing-8) 0;
}

/* Filter & Sort Bar */
.therapists-filter {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--spacing-4);
  /* margin-bottom: var(--spacing-6); */
  padding: var(--spacing-2);
  background: #fff;
  border-radius: var(--radius-lg);
  /* box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); */
}

.therapists-filter__result {
  flex: 1;
  min-width: 200px;
}

.therapists-filter__actions {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
}

.therapists-filter__select-wrapper {
  position: relative;
  display: inline-block;
}

.therapists-filter__select {
  appearance: none;
  padding: 10px 40px 10px 16px;
  font-size: var(--font-size-sm);
  color: var(--text-primary);
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: border-color var(--transition-fast);
}

.therapists-filter__select:hover {
  border-color: var(--color-primary);
}

.therapists-filter__select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px rgba(0, 174, 239, 0.1);
}

.therapists-filter__select-arrow {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--text-muted);
}

.therapists-filter__liked-toggle {
  display: flex;
  align-items: center;
  cursor: pointer;
}

.therapists-filter__liked-toggle input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.therapists-filter__liked-label {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  font-size: var(--font-size-sm);
  color: var(--text-muted);
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  transition: all var(--transition-fast);
}

.therapists-filter__liked-label svg {
  color: var(--text-muted);
  transition: color var(--transition-fast);
}

.therapists-filter__liked-toggle input:checked + .therapists-filter__liked-label {
  color: var(--color-primary);
  background: rgba(0, 174, 239, 0.1);
  border-color: var(--color-primary);
}

.therapists-filter__liked-toggle input:checked + .therapists-filter__liked-label svg {
  color: #ff6b81;
}

.therapists-filter__liked-toggle:hover .therapists-filter__liked-label {
  border-color: var(--color-primary);
}

@media (max-width: 767px) {
  .therapists-filter {
    flex-direction: column;
    align-items: stretch;
  }

  .therapists-filter__result {
    text-align: center;
  }

  .therapists-filter__actions {
    justify-content: center;
    flex-wrap: wrap;
  }

  .therapists-filter__select,
  .therapists-filter__liked-label {
    font-size: var(--font-size-xs);
    padding: 8px 12px;
  }

  .therapists-filter__select {
    padding-right: 32px;
  }
}

/* Grid - 5 columns with auto-fit */
.therapists-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  width: 100%;
}

/* Pagination - 統合済み（components.cssの.paginationを使用） */

/* Responsive - Large Desktop (5 columns) */
@media (max-width: 1400px) {
  .therapists-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Responsive - Desktop (4 columns) */
@media (max-width: 1200px) {
  .therapists-section {
    padding: 40px;
  }

  .therapists-container {
    padding: 40px;
  }

  .therapists-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Responsive - Tablet (2 columns) */
@media (max-width: 900px) {
  .therapists-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .therapists-section {
    padding: 24px 16px;
  }

  .therapists-section__inner {
    gap: 24px;
  }

  .therapists-breadcrumb {
    gap: 8px;
  }

  .therapists-breadcrumb__link {
    font-size: 14px;
  }

  .therapists-breadcrumb__link svg {
    width: 20px;
    height: 20px;
  }

  .therapists-breadcrumb__current {
    font-size: 14px;
  }

  .therapists-container {
    padding: 16px;
    gap: 16px;
  }

  .therapists-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}

/* ----------------------
 * Reviews Page
 * ---------------------- */

/* Filter Bar - Reviews (therapist-reviewsページ用) */
.reviews-filter {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--spacing-4);
  margin-top: var(--spacing-6);
  margin-bottom: var(--spacing-4);
  padding: var(--spacing-4) var(--spacing-6);
  background: #fff;
  border-radius: var(--radius-lg);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  max-width: 1320px;
  margin-left: auto;
  margin-right: auto;
}

.reviews-filter__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  gap: var(--spacing-4);
}

.reviews-filter__options {
  display: flex;
  align-items: center;
  gap: var(--spacing-4);
}

.reviews-filter__select-wrapper {
  position: relative;
  display: inline-block;
}

.reviews-filter__select {
  appearance: none;
  padding: 10px 40px 10px 16px;
  font-size: var(--font-size-sm);
  color: var(--text-primary);
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: border-color var(--transition-fast);
}

.reviews-filter__select:hover {
  border-color: var(--color-primary);
}

.reviews-filter__select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 2px rgba(0, 174, 239, 0.1);
}

.reviews-filter__select-arrow {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--text-muted);
}

.reviews-filter__count {
  display: flex;
  align-items: baseline;
  gap: 4px;
}

.reviews-filter__count-number {
  font-family: 'Poppins', sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--color-primary);
  letter-spacing: 0.02em;
}

.reviews-filter__count-label {
  font-size: var(--font-size-sm);
  font-weight: 500;
  color: var(--text-primary);
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .reviews-filter {
    flex-direction: column;
    align-items: stretch;
  }

  .reviews-filter__inner {
    flex-direction: column;
    align-items: stretch;
    gap: var(--spacing-3);
  }

  .reviews-filter__options {
    justify-content: center;
    flex-wrap: wrap;
  }

  .reviews-filter__select {
    font-size: var(--font-size-xs);
    padding: 8px 32px 8px 12px;
  }

  .reviews-filter__count {
    justify-content: center;
  }

  .reviews-filter__count-number {
    font-size: 18px;
  }
}

.reviews-section {
  background-image: url('../assets/images/bg-pattern.png');
  background-repeat: repeat-y;
  background-position: center top;
  background-size: cover;
  padding: 60px;
}

.reviews-section__inner {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-width: 1320px;
  margin: 0 auto;
}

/* Breadcrumb */
.reviews-breadcrumb {
  display: flex;
  align-items: center;
  gap: 12px;
}

.reviews-breadcrumb__link {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  text-decoration: none;
  letter-spacing: 0.05em;
  line-height: 1.5;
  transition: color 0.2s ease;
}

.reviews-breadcrumb__link:hover {
  color: #02C1D4;
}

.reviews-breadcrumb__link svg {
  width: 24px;
  height: 24px;
}

.reviews-breadcrumb__arrow {
  width: 12px;
  height: 24px;
  color: #939393;
}

.reviews-breadcrumb__current {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

/* Container */
.reviews-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 60px;
  background: #FFFFFF;
  /* box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05); */
}

/* Reviews List */
.reviews-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
}

/* Review Item */
.review-item {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
  background: #FFFFFF;
  border: 1px solid #EEEEEE;
  border-radius: 12px;
  transition: box-shadow 0.2s ease;
}

.review-item:hover {
  box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.08);
}

.review-item__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
}

.review-item__therapist {
  display: flex;
  align-items: center;
  gap: 16px;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.review-item__therapist:hover {
  opacity: 0.8;
}

.review-item__therapist-image {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  overflow: hidden;
  background: #EEEEEE;
  flex-shrink: 0;
}

.review-item__therapist-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.review-item__therapist-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.review-item__therapist-name {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.review-item__therapist-shop {
  font-family: var(--font-family-base);
  font-size: 13px;
  font-weight: 400;
  color: #888888;
  letter-spacing: 0.05em;
  line-height: 1.5;
}

.review-item__rating {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.review-item__stars {
  display: flex;
  gap: 2px;
}

.review-item__rating-value {
  font-family: 'Poppins', sans-serif;
  font-size: 18px;
  font-weight: 700;
  color: #333333;
  letter-spacing: 0.05em;
}

.review-item__body {
  padding: 0;
}

.review-item__text {
  font-family: var(--font-family-base);
  font-size: 15px;
  font-weight: 400;
  color: #555555;
  line-height: 1.8;
  letter-spacing: 0.05em;
}

.review-item__footer {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-top: 16px;
  border-top: 1px solid #EEEEEE;
}

.review-item__author {
  font-family: var(--font-family-base);
  font-size: 14px;
  font-weight: 500;
  color: #888888;
  letter-spacing: 0.05em;
}

.review-item__date {
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: #AAAAAA;
  letter-spacing: 0.05em;
}

/* Review Reply */
.review-item__reply {
  margin-top: 16px;
  padding: 16px;
  background: #F9F9F9;
  border-radius: 8px;
  border-left: 3px solid #918461;
}

.review-item__reply-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.review-item__reply-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: #918461;
}

.review-item__reply-label svg {
  flex-shrink: 0;
  color: #918461;
}

.review-item__reply-date {
  font-family: 'Poppins', sans-serif;
  font-size: 12px;
  color: #AAAAAA;
}

.review-item__reply-text {
  font-size: 14px;
  line-height: 1.8;
  color: #555555;
  margin: 0;
}

@media (max-width: 768px) {
  .review-item__reply {
    padding: 12px;
    margin-top: 12px;
  }

  .review-item__reply-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .review-item__reply-label {
    font-size: 12px;
  }

  .review-item__reply-text {
    font-size: 13px;
  }
}

/* Pagination - 統合済み（components.cssの.paginationを使用） */

/* Responsive - Desktop */
@media (max-width: 1200px) {
  .reviews-section {
    padding: 40px;
  }

  .reviews-container {
    padding: 40px;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .reviews-section {
    padding: 24px 16px;
  }

  .reviews-section__inner {
    gap: 16px;
  }

  .reviews-breadcrumb {
    gap: 8px;
  }

  .reviews-breadcrumb__link {
    font-size: 14px;
  }

  .reviews-breadcrumb__link svg {
    width: 20px;
    height: 20px;
  }

  .reviews-breadcrumb__current {
    font-size: 14px;
  }

  .reviews-container {
    padding: 16px;
    gap: 24px;
  }

  .reviews-list {
    gap: 16px;
  }

  .review-item {
    padding: 16px;
    gap: 12px;
  }

  .review-item__header {
    flex-direction: column;
    gap: 12px;
  }

  .review-item__therapist-image {
    width: 48px;
    height: 48px;
  }

  .review-item__therapist-name {
    font-size: 15px;
  }

  .review-item__therapist-shop {
    font-size: 12px;
  }

  .review-item__rating {
    align-self: flex-start;
  }

  .review-item__stars svg {
    width: 18px;
    height: 18px;
  }

  .review-item__rating-value {
    font-size: 16px;
  }

  .review-item__text {
    font-size: 14px;
  }

  .review-item__footer {
    padding-top: 12px;
    gap: 12px;
  }

  .review-item__author,
  .review-item__date {
    font-size: 13px;
  }
}

/* Responsive - Small Mobile (1 column) */
@media (max-width: 480px) {
  .therapists-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* ======================
 * Category/Area List Page
 * ====================== */

/* Category List Section */
.category-list-section {
  padding: 60px 20px;
  background-color: var(--color-bg-primary);
}

.category-list-section__inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 48px;
}

/* Category Group */
.category-group {
  background: #FFFFFF;
  border-radius: var(--radius-xl);
  padding: 32px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.category-group__header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--color-border);
}

.category-group__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, rgba(2, 193, 212, 0.1) 0%, rgba(209, 167, 235, 0.1) 100%);
  border-radius: var(--radius-lg);
  color: rgba(2, 193, 212, 1);
}

.category-group__title {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-text-primary);
  letter-spacing: 0.02em;
}

/* Category Grid */
.category-group__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
}

/* Category Card */
.category-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  background: var(--color-bg-secondary);
  border-radius: var(--radius-md);
  text-decoration: none;
  transition: all 0.2s ease;
  border: 1px solid transparent;
}

.category-card:hover {
  background: #FFFFFF;
  border-color: rgba(2, 193, 212, 0.3);
  box-shadow: 0 4px 12px rgba(2, 193, 212, 0.1);
  transform: translateY(-2px);
}

.category-card__name {
  font-size: 15px;
  font-weight: 500;
  color: var(--color-text-primary);
  letter-spacing: 0.02em;
}

.category-card__count {
  font-size: 13px;
  font-weight: 500;
  color: rgba(2, 193, 212, 1);
  background: rgba(2, 193, 212, 0.1);
  padding: 4px 10px;
  border-radius: 20px;
}

/* Responsive - Tablet */
@media (max-width: 900px) {
  .category-list-section {
    padding: 40px 16px;
  }

  .category-list-section__inner {
    gap: 32px;
  }

  .category-group {
    padding: 24px;
  }

  .category-group__grid {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 10px;
  }

  .category-card {
    padding: 14px 16px;
  }
}

/* Responsive - Mobile */
@media (max-width: 600px) {
  .category-list-section {
    padding: 32px 16px;
  }

  .category-group {
    padding: 20px 16px;
  }

  .category-group__header {
    margin-bottom: 16px;
    padding-bottom: 12px;
  }

  .category-group__icon {
    width: 40px;
    height: 40px;
  }

  .category-group__icon svg {
    width: 20px;
    height: 20px;
  }

  .category-group__title {
    font-size: 18px;
  }

  .category-group__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }

  .category-card {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 12px 14px;
  }

  .category-card__name {
    font-size: 14px;
  }

  .category-card__count {
    font-size: 12px;
    padding: 3px 8px;
  }
}


/* ======================
 * Rankings Page
 * ====================== */
.ranking-page {
  padding: 60px;
  background: #F7F7F7 url('../assets/images/bg-pattern.png') repeat center top;
}

.ranking-page__inner {
  max-width: 1440px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 60px;
}

/* Ranking Section */

.ranking-section__title {
  font-size: 24px;
  font-weight: 700;
  color: #333333;
  text-align: center;
  letter-spacing: 0.05em;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.ranking-section__title::after {
  content: '';
  display: block;
  width: 60px;
  height: 3px;
  background: linear-gradient(90deg, #02C1D4 0%, #F5A5B8 100%);
  border-radius: 2px;
  margin-bottom: 36px;
}

.ranking-section__content {
  background: #FFFFFF;
  /* box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05); */
  padding: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
}

/* Period Tabs */
.ranking-section__tabs {
  display: flex;
  align-self: stretch;
  width: 100%;
}

.ranking-section__tab {
  flex: 1;
  padding: 16px;
  font-size: 16px;
  font-family: inherit;
  font-weight: 500;
  color: #918461;
  background: transparent;
  border: 1px solid #918461;
  cursor: pointer;
  transition: all 0.2s;
  letter-spacing: 0.05em;
  text-align: center;
  outline: none;
}

.ranking-section__tab:not(:first-child) {
  border-left: none;
}

.ranking-section__tab.is-active {
  background: #918461;
  color: #FFFFFF;
}

.ranking-section__tab:hover:not(.is-active) {
  background: rgba(145, 132, 97, 0.1);
}

/* Ranking Cards Grid */
.ranking-section__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  width: 100%;
}

/* Enhanced Ranking Card Styles for Top Page */
.ranking-card__shop {
  font-size: 16px;
  color: #333333;
  letter-spacing: 0.05em;
}

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

.ranking-card__age,
.ranking-card__height {
  font-size: 16px;
  color: #939393;
  letter-spacing: 0.05em;
}

.ranking-card__location {
  display: flex;
  align-items: center;
  gap: 2px;
  font-size: 16px;
  color: #939393;
  letter-spacing: 0.05em;
}

.ranking-card__location svg {
  color: #939393;
}

.ranking-card__divider {
  width: 100%;
  height: 1px;
  background: #EEEEEE;
}

.ranking-card__stats {
  display: flex;
  align-items: center;
  gap: 16px;
}

.ranking-card__rating {
  display: flex;
  align-items: center;
  gap: 4px;
}

.ranking-card__stars {
  display: flex;
  align-items: center;
  gap: 0;
}

.ranking-card__score {
  font-size: 24px;
  font-weight: 500;
  color: #918461;
  letter-spacing: 0.05em;
}

.ranking-card__reviews {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: #939393;
  padding-bottom: 1px;
  border-bottom: 1px solid #939393;
}

.ranking-card__reviews svg {
  stroke: #939393;
}

/* Gold Button */
.btn--gold {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 56px;
  padding: 16px 24px;
  background: #918461;
  color: #FFFFFF;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.08em;
  border-radius: 8px;
  text-decoration: none;
  box-shadow: 0px 4px 0px 0px #817862;
  transition: all 0.2s;
}

.btn--gold:hover {
  transform: translateY(2px);
  box-shadow: 0px 2px 0px 0px #817862;
}

.btn--with-icon {
  gap: 56px;
}

.btn--with-icon svg {
  stroke: #FFFFFF;
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .ranking-page {
    padding: 40px 20px;
  }

  .ranking-page__inner {
    gap: 40px;
  }

  .ranking-section__content {
    padding: 40px 24px;
    gap: 24px;
  }

  .ranking-section__cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }

  .ranking-card__score {
    font-size: 20px;
  }
}

/* Responsive - Mobile */
@media (max-width: 600px) {
  .ranking-page {
    padding: 32px 16px;
  }

  .ranking-page__inner {
    gap: 32px;
  }

  .ranking-page .ranking-section {
    gap: 24px;
    padding: 0px;
  }

  .ranking-section__title {
    font-size: 20px;
    gap: 12px;
  }

  .ranking-section__title::after {
    width: 48px;
    height: 2px;
  }

  .ranking-section__content {
    padding: 16px;
    gap: 16px;
  }

  .ranking-section__tabs {
    align-self: stretch;
    width: 100%;
  }

  .ranking-section__tab {
    flex: 1;
    padding: 12px;
    font-size: 14px;
  }

  .ranking-section__cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .ranking-card--top3 .ranking-card__image {
    height: 280px;
  }

  .ranking-card__body {
    padding: 16px;
    gap: 8px;
  }

  .ranking-card__name {
    font-size: 20px;
  }

  .ranking-card__shop {
    font-size: 12px;
  }

  .ranking-card__age,
  .ranking-card__height,
  .ranking-card__location {
    font-size: 12px;
  }

  .ranking-card__score {
    font-size: 20px;
  }

  .btn--gold {
    width: 100%;
    gap: 32px;
    padding: 14px 20px;
  }
}

@media (max-width: 600px) {
  .btn--gold {
    width: 100%;
    gap: 16px;
    padding: 8px 20px;
  }
}

@media (max-width: 767px) {
  .btn--gold.btn--sm {
    gap: 24px;
    padding: 10px 16px;
    font-size: 14px;
  }
}

/* ----------------------
 * Ranking Page - Additional Styles
 * ---------------------- */
.ranking-page__container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 60px;
  max-width: 1320px;
  margin: 0 auto;
  background: #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
}

/* Period Tabs */
.ranking-page__period-tabs {
  display: flex;
  width: 100%;
  border-radius: 0;
  overflow: hidden;
  border: 1px solid #918461;
}

.ranking-page__period-tab {
  flex: 1;
  padding: 16px 48px;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #918461;
  letter-spacing: 0.05em;
  text-align: center;
  cursor: pointer;
  border: none;
  border-right: 1px solid #918461;
  background: transparent;
  transition: all 0.2s ease;
}

.ranking-page__period-tab:last-child {
  border-right: none;
}

.ranking-page__period-tab.is-active {
  background: #918461;
  color: #FFFFFF;
}

.ranking-page__period-tab:hover:not(.is-active) {
  background: rgba(145, 132, 97, 0.1);
}

/* Category Tabs */
.ranking-page__category-tabs {
  display: flex;
  gap: 24px;
  justify-content: center;
  width: 100%;
}

.ranking-page__category-tab {
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  text-decoration: none;
  padding: 8px 0;
  border-bottom: 2px solid transparent;
  transition: all 0.2s ease;
}

.ranking-page__category-tab.is-active {
  color: #918461;
  border-bottom-color: #918461;
}

.ranking-page__category-tab:hover:not(.is-active) {
  color: #666666;
}

/* Ranking Content */
.ranking-page__content {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

/* Pagination */
.ranking-page__pagination {
  display: flex;
  gap: 24px;
  justify-content: center;
  margin-top: 24px;
}

.ranking-page__pagination-item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  font-family: 'Poppins', sans-serif;
  font-size: 20px;
  font-weight: 500;
  color: #939393;
  letter-spacing: 0.05em;
  text-decoration: none;
  border-radius: 50%;
  transition: all 0.2s ease;
}

.ranking-page__pagination-item.is-active {
  background: #555555;
  color: #FFFFFF;
}

.ranking-page__pagination-item:hover:not(.is-active) {
  background: rgba(0, 0, 0, 0.05);
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .ranking-page__container {
    padding: 40px;
    gap: 32px;
  }

  .ranking-page__category-tabs {
    flex-wrap: wrap;
    gap: 16px;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .ranking-page__container {
    padding: 24px;
    gap: 24px;
  }

  .ranking-page__period-tabs {
    width: 100%;
  }

  .ranking-page__period-tab {
    flex: 1;
    padding: 12px 16px;
    font-size: 14px;
  }

  .ranking-page__category-tabs {
    flex-direction: column;
    gap: 8px;
    align-items: center;
  }

  .ranking-page__category-tab {
    font-size: 14px;
  }

  .ranking-page__pagination {
    gap: 16px;
  }

  .ranking-page__pagination-item {
    width: 36px;
    height: 36px;
    font-size: 16px;
  }
}

/* ======================
 * Schedule Page
 * ====================== */
.schedule-page-section {
  padding: 60px;
  background: #F7F7F7;
}

.schedule-page-section__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  padding: 60px;
  max-width: 1440px;
  margin: 0 auto;
  background: #FFFFFF;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
}

.schedule-page-section__description {
  width: 100%;
  font-family: var(--font-family-base);
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 1.5;
  text-align: left;
}

/* Schedule Page Tabs (no border-radius) */
.schedule-page-tabs {
  display: flex;
  width: 100%;
}

.schedule-page-tabs__item {
  flex: 1;
  padding: 12px;
  font-family: var(--font-family-base);
  font-size: 14px;
  font-weight: 500;
  color: #918461;
  letter-spacing: 0.05em;
  line-height: 1.5;
  text-align: center;
  background: #FFFFFF;
  border: 1px solid #918461;
  border-right: none;
  cursor: pointer;
  transition: all 0.2s ease;
}

.schedule-page-tabs__item:last-child {
  border-right: 1px solid #918461;
}

.schedule-page-tabs__item:hover {
  background: rgba(145, 132, 97, 0.1);
}

.schedule-page-tabs__item.is-active {
  background: #918461;
  color: #FFFFFF;
}

/* Schedule Filter Bar */
.schedule-filter {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  /* margin-top: 0px; */
  padding: 0;
}

.schedule-filter__options {
  display: flex;
  align-items: center;
  gap: 16px;
}

.schedule-filter__select-wrapper {
  position: relative;
  display: inline-block;
}

.schedule-filter__select {
  appearance: none;
  padding: 10px 40px 10px 16px;
  font-size: 14px;
  font-weight: 500;
  color: #333333;
  background: #FFFFFF;
  border: 1px solid #DDDDDD;
  border-radius: 6px;
  cursor: pointer;
  transition: border-color 0.2s ease;
}

.schedule-filter__select:hover {
  border-color: #02C1D4;
}

.schedule-filter__select:focus {
  outline: none;
  border-color: #02C1D4;
  box-shadow: 0 0 0 2px rgba(2, 193, 212, 0.1);
}

.schedule-filter__select-arrow {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: #939393;
}

.schedule-filter__count {
  display: flex;
  align-items: baseline;
  gap: 4px;
}

.schedule-filter__count-number {
  font-family: 'Poppins', sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: #02C1D4;
  letter-spacing: 0.02em;
}

.schedule-filter__count-label {
  font-size: 14px;
  font-weight: 500;
  color: #333333;
}

/* Checkbox Filter - いいね済みトグル */
.schedule-filter__liked-toggle {
  display: flex;
  align-items: center;
  cursor: pointer;
}

.schedule-filter__liked-toggle input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.schedule-filter__liked-label {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  font-size: var(--font-size-sm);
  color: var(--text-muted);
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  transition: all var(--transition-fast);
}

.schedule-filter__liked-label svg {
  color: var(--text-muted);
  transition: color var(--transition-fast);
}

.schedule-filter__liked-toggle input:checked + .schedule-filter__liked-label {
  color: var(--color-primary);
  background: rgba(0, 174, 239, 0.1);
  border-color: var(--color-primary);
}

.schedule-filter__liked-toggle input:checked + .schedule-filter__liked-label svg {
  color: #ff6b81;
}

.schedule-filter__liked-toggle:hover .schedule-filter__liked-label {
  border-color: var(--color-primary);
}

/* Responsive - Tablet */
@media (max-width: 1024px) {
  .schedule-page-section {
    padding: 40px;
  }

  .schedule-page-section__inner {
    padding: 40px;
  }

  .schedule-page-tabs {
    flex-wrap: wrap;
  }

  .schedule-page-tabs__item {
    flex: 1 1 auto;
    min-width: calc(25% - 0px);
    border: 1px solid #918461;
    border-right: none;
    border-bottom: none;
  }

  .schedule-page-tabs__item:nth-child(4) {
    border-right: 1px solid #918461;
  }

  .schedule-page-tabs__item:nth-child(5),
  .schedule-page-tabs__item:nth-child(6),
  .schedule-page-tabs__item:nth-child(7) {
    border-bottom: 1px solid #918461;
  }

  .schedule-page-tabs__item:nth-child(7) {
    border-right: 1px solid #918461;
  }
}

/* Responsive - Mobile */
@media (max-width: 767px) {
  .schedule-page-section {
    padding: 24px 16px;
  }

  .schedule-page-section__inner {
    padding: 16px;
    gap: 16px;
  }

  .schedule-page-tabs {
    flex-direction: column;
  }

  .schedule-page-tabs__item {
    border: 1px solid #918461;
    border-bottom: none;
  }

  .schedule-page-tabs__item:last-child {
    border-bottom: 1px solid #918461;
  }

  .schedule-page-section__description {
    font-size: 14px;
  }

  .schedule-filter {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .schedule-filter__options {
    flex-wrap: wrap;
    gap: 8px;
  }

  .schedule-filter__select-wrapper {
    flex: 1;
    min-width: calc(50% - 4px);
  }

  .schedule-filter__select {
    width: 100%;
    font-size: 13px;
    padding: 8px 32px 8px 12px;
  }

  .schedule-filter__liked-toggle {
    flex: 1;
    min-width: calc(50% - 4px);
  }

  .schedule-filter__liked-label {
    width: 100%;
    justify-content: center;
    font-size: var(--font-size-xs);
    padding: 8px 12px;
  }

  .schedule-filter__count {
    justify-content: flex-end;
  }

  .schedule-filter__count-number {
    font-size: 18px;
  }

  .schedule-filter__count-label {
    font-size: 13px;
  }
}

/* Schedule Empty State */
.schedule-empty {
  text-align: center;
  padding: 60px 20px;
  background: #fff;
  border-radius: 8px;
}

.schedule-empty__message {
  font-size: 16px;
  color: #666;
  margin: 0;
}

/* ======================
 * Dashboard Page Styles
 * ====================== */

.dashboard-body {
  background: #F8F8F8;
  min-height: 100vh;
  padding-bottom: 80px;
  padding-top: 48px;
}

/* Dashboard Header */
.dashboard-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: #FFFFFF;
  border-bottom: 1px solid #EEEEEE;
}

.dashboard-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  margin: 0 auto;
  padding: 12px 16px;
}

.dashboard-header__logo {
  text-decoration: none;
}

.dashboard-header__logo-text {
  font-family: var(--font-family-accent);
  font-size: 20px;
  font-weight: 700;
  color: #918461;
}

.dashboard-header__user {
  display: flex;
  align-items: center;
  gap: 16px;
}

.dashboard-header__notification {
  position: relative;
  color: #555555;
  cursor: pointer;
}

.dashboard-header__notification-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  background: #E74C3C;
  border-radius: 9px;
  font-size: 11px;
  font-weight: 600;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Header Status Button */
.dashboard-header__status {
  margin: 0;
}

.dashboard-header__status-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border: none;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.dashboard-header__status-btn svg {
  flex-shrink: 0;
}

.dashboard-header__status-btn--published {
  background: rgba(40, 167, 69, 0.15);
  color: #28a745;
}

.dashboard-header__status-btn--published:hover {
  background: rgba(40, 167, 69, 0.25);
}

.dashboard-header__status-btn--draft {
  background: rgba(220, 53, 69, 0.15);
  color: #dc3545;
}

.dashboard-header__status-btn--draft:hover {
  background: rgba(220, 53, 69, 0.25);
}

/* PC: サイドバーに表示されるのでヘッダーのステータスボタンは非表示 */
@media (min-width: 769px) {
  .dashboard-header__status {
    display: none;
  }
}

.dashboard-header__preview {
  color: #555555;
  transition: color 0.2s ease;
}

.dashboard-header__preview:hover {
  color: #918461;
}

/* Dashboard Main */
.dashboard-main {
  max-width: 800px;
  margin: 0 auto;
  padding: 16px;
}

/* Dashboard Message */
.dashboard-message {
  width: 100%;
  max-width: 800px;
  padding: 12px 16px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 16px;
  box-sizing: border-box;
  flex-shrink: 0;
}

.dashboard-message--success {
  background: #E8F5E9;
  color: #2E7D32;
  border: 1px solid #A5D6A7;
}

.dashboard-message--error {
  background: #FFEBEE;
  color: #C62828;
  border: 1px solid #EF9A9A;
}

.dashboard-message--warning {
  background: #FFF8E1;
  color: #F57C00;
  border: 1px solid #FFE082;
}

/* Dashboard Section */
.dashboard-section {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.dashboard-section--hidden {
  display: none;
}

.dashboard-section__title {
  font-size: 20px;
  font-weight: 700;
  color: #333333;
  margin-bottom: 8px;
}

/* Dashboard Alert Messages */
.dashboard-alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  border-radius: 12px;
  margin-bottom: 20px;
  font-size: 14px;
  line-height: 1.5;
}

.dashboard-alert svg {
  flex-shrink: 0;
  margin-top: 2px;
}

.dashboard-alert--success {
  background: rgba(40, 167, 69, 0.1);
  color: #28a745;
  border: 1px solid rgba(40, 167, 69, 0.2);
}

.dashboard-alert--info {
  background: rgba(23, 162, 184, 0.1);
  color: #17a2b8;
  border: 1px solid rgba(23, 162, 184, 0.2);
}

.dashboard-alert--error {
  background: rgba(220, 53, 69, 0.1);
  color: #dc3545;
  border: 1px solid rgba(220, 53, 69, 0.2);
}

.dashboard-alert__list {
  margin: 8px 0 0 0;
  padding-left: 20px;
}

.dashboard-alert__list li {
  margin-bottom: 4px;
}

/* Dashboard Welcome */
.dashboard-welcome {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px;
  background: linear-gradient(135deg, #918461 0%, #B8A77D 100%);
  border-radius: 12px;
  color: #FFFFFF;
}

.dashboard-welcome__avatar {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid rgba(255, 255, 255, 0.3);
}

.dashboard-welcome__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dashboard-welcome__avatar--noimage {
  background-color: rgba(255, 255, 255, 0.2);
  background-image: url(../assets/images/placeholders/placeholder.svg);
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}

.dashboard-welcome__greeting {
  font-size: 13px;
  opacity: 0.9;
}

.dashboard-welcome__name {
  font-size: 18px;
  font-weight: 700;
}

/* Dashboard Stats */
.dashboard-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.dashboard-stats__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: #FFFFFF;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dashboard-stats__item--alert {
  background: #FFF5F5;
}

.dashboard-stats__icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dashboard-stats__icon--views {
  background: #E3F2FD;
  color: #1976D2;
}

.dashboard-stats__icon--rating {
  background: #FFF8E1;
  color: #F9A825;
}

.dashboard-stats__icon--reviews {
  background: #E8F5E9;
  color: #388E3C;
}

.dashboard-stats__icon--diary {
  background: #FCE4EC;
  color: #C2185B;
}

.dashboard-stats__icon--pending {
  background: #FFEBEE;
  color: #E74C3C;
}

.dashboard-stats__content {
  display: flex;
  flex-direction: column;
}

.dashboard-stats__value {
  font-size: 22px;
  font-weight: 700;
  color: #333333;
  line-height: 1.2;
}

.dashboard-stats__label {
  font-size: 12px;
  color: #888888;
}

/* Dashboard Card */
.dashboard-card {
  padding: 16px;
  background: #FFFFFF;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dashboard-card--alert {
  border: 1px solid #FFD54F;
  background: #FFFDE7;
}

.dashboard-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.dashboard-card__title {
  font-size: 15px;
  font-weight: 600;
  color: #333333;
}

.dashboard-card__badge {
  padding: 4px 10px;
  background: #918461;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
  color: #FFFFFF;
}

.dashboard-card__badge--warning {
  background: #F9A825;
}

.dashboard-card__text {
  font-size: 13px;
  color: #666666;
  margin-bottom: 8px;
}

.dashboard-card__link {
  font-size: 14px;
  font-weight: 500;
  color: #918461;
  text-decoration: none;
}

/* Dashboard Progress */
.dashboard-progress {
  height: 8px;
  background: #EEEEEE;
  border-radius: 4px;
  overflow: hidden;
  margin-bottom: 8px;
}

.dashboard-progress__bar {
  height: 100%;
  background: linear-gradient(90deg, #918461, #B8A77D);
  border-radius: 4px;
  transition: width 0.3s ease;
}

/* Dashboard Schedule Mini */
.dashboard-schedule-mini {
  display: flex;
  gap: 8px;
}

.dashboard-schedule-mini__day {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 8px 4px;
  background: #F8F8F8;
  border-radius: 8px;
}

.dashboard-schedule-mini__label {
  font-size: 12px;
  color: #888888;
}

.dashboard-schedule-mini__status {
  font-size: 14px;
  font-weight: 600;
}

.dashboard-schedule-mini__status--available {
  color: #388E3C;
}

.dashboard-schedule-mini__status--off {
  color: #888888;
}

.dashboard-schedule-mini__status--soldout {
  color: #E74C3C;
}

/* Dashboard Review Preview */
.dashboard-review-preview {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.dashboard-review-preview__stars {
  display: flex;
  gap: 2px;
}

.dashboard-review-preview__text {
  font-size: 14px;
  color: #333333;
  line-height: 1.6;
}

.dashboard-review-preview__meta {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: #888888;
}

.dashboard-review-preview__actions {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

/* Dashboard Accordion */
.dashboard-accordion {
  background: #FFFFFF;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  margin-bottom: 12px;
}

.dashboard-accordion:last-child {
  margin-bottom: 0;
}

.dashboard-accordion__header {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 16px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  gap: 12px;
  transition: background-color 0.2s ease;
}

.dashboard-accordion__header:hover {
  background-color: #F8F7F4;
}

.dashboard-accordion__header:focus {
  outline: none;
  background-color: #F8F7F4;
}

.dashboard-accordion__icon {
  font-size: 24px;
}

.dashboard-accordion__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dashboard-accordion__title {
  font-size: 15px;
  font-weight: 600;
  color: #333333;
}

.dashboard-accordion__desc {
  font-size: 12px;
  color: #888888;
}

.dashboard-accordion__status {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 600;
  color: #888888;
  background: #F0F0F0;
}

.dashboard-accordion__status--complete {
  background: #E8F5E9;
  color: #388E3C;
}

.dashboard-accordion__status--warning {
  background: #FFF3E0;
  color: #F57C00;
}

.dashboard-accordion__arrow {
  color: #AAAAAA;
  transition: transform 0.3s ease;
}

.dashboard-accordion--open .dashboard-accordion__arrow {
  transform: rotate(180deg);
}

.dashboard-accordion__content {
  display: none;
  padding: 16px;
  border-top: 1px solid #EEEEEE;
}

.dashboard-accordion.dashboard-accordion--open > .dashboard-accordion__content {
  display: block;
}

/* Dashboard Form */
.dashboard-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.dashboard-accordion__content .dashboard-form {
  padding-top: 0;
}

.dashboard-form__group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.dashboard-form__group--center {
  align-items: center;
}

.dashboard-form__row {
  display: flex;
  gap: 12px;
}

.dashboard-form__row > .dashboard-form__group {
  flex: 1;
}

.dashboard-form__label {
  font-size: 13px;
  font-weight: 500;
  color: #555555;
}

.dashboard-form__required {
  color: #E74C3C;
  margin-left: 2px;
}

.dashboard-form__input,
.dashboard-form__select,
.dashboard-form__textarea {
  width: 100%;
  padding: 12px;
  font-size: 16px;
  color: #333333;
  background: #FFFFFF;
  border: 1px solid #DDDDDD;
  border-radius: 8px;
  transition: border-color 0.2s ease;
}

.dashboard-form__input:focus,
.dashboard-form__select:focus,
.dashboard-form__textarea:focus {
  outline: none;
  border-color: #918461;
}

.dashboard-form__input--mb {
  margin-bottom: 8px;
}

.dashboard-form__input--date {
  width: 100px;
  flex-shrink: 0;
}

.dashboard-form__textarea {
  resize: vertical;
  min-height: 100px;
}

/* WordPress Editor Styles for Dashboard */
.dashboard-form__group--editor {
  width: 100%;
}

.dashboard-form__group--editor .wp-editor-wrap {
  border: 1px solid #E0E0E0;
  border-radius: 8px;
  overflow: hidden;
}

.dashboard-form__group--editor .wp-editor-tabs {
  display: none;
}

.dashboard-form__group--editor .wp-switch-editor:hover,
.dashboard-form__group--editor .wp-switch-editor.active {
  background: #918461;
  color: #FFFFFF;
  border-color: #918461;
}

.dashboard-form__group--editor .wp-editor-container {
  border: none;
}

.dashboard-form__group--editor .mce-panel {
  border-color: #E0E0E0 !important;
}

.dashboard-form__group--editor .mce-toolbar-grp {
  background: #F5F5F5 !important;
  border-bottom: 1px solid #E0E0E0 !important;
}

.dashboard-form__group--editor .mce-btn {
  background: transparent !important;
  border: none !important;
}

.dashboard-form__group--editor .mce-btn:hover,
.dashboard-form__group--editor .mce-btn.mce-active {
  background: #E0E0E0 !important;
  border-radius: 4px;
}

.dashboard-form__group--editor .mce-edit-area {
  border: none !important;
}

.dashboard-form__group--editor .mce-edit-area iframe {
  min-height: 300px;
}

.dashboard-form__group--editor .quicktags-toolbar {
  background: #F5F5F5;
  border-bottom: 1px solid #E0E0E0;
  padding: 8px;
}

.dashboard-form__group--editor .quicktags-toolbar input.ed_button {
  background: #FFFFFF;
  border: 1px solid #E0E0E0;
  border-radius: 4px;
  padding: 4px 10px;
  font-size: 12px;
  color: #333333;
  cursor: pointer;
}

.dashboard-form__group--editor .quicktags-toolbar input.ed_button:hover {
  background: #918461;
  color: #FFFFFF;
  border-color: #918461;
}

.dashboard-form__group--editor .wp-editor-area {
  width: 100%;
  padding: 16px;
  font-size: 16px;
  line-height: 1.8;
  border: none;
  resize: vertical;
  min-height: 300px;
}

.dashboard-form__group--editor .wp-media-buttons {
  padding: 8px 12px;
  background: #F5F5F5;
}

.dashboard-form__group--editor .wp-media-buttons .button {
  background: #918461;
  color: #FFFFFF;
  border: none;
  border-radius: 4px;
  padding: 6px 12px;
  font-size: 13px;
  cursor: pointer;
}

.dashboard-form__group--editor .wp-media-buttons .button:hover {
  background: #7a6f52;
}

/* Responsive for Editor */
@media (max-width: 768px) {
  .dashboard-form__group--editor .mce-toolbar .mce-btn-group {
    flex-wrap: wrap;
  }

  .dashboard-form__group--editor .mce-edit-area iframe {
    min-height: 250px;
  }

  .dashboard-form__group--editor .wp-editor-area {
    min-height: 250px;
  }
}

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

.dashboard-form__readonly-value {
  font-size: 16px;
  font-weight: 500;
  color: #333333;
  padding: 12px;
  background: #F5F5F5;
  border-radius: 8px;
}

.dashboard-form__readonly-note {
  font-size: 12px;
  color: #888888;
}

/* Dashboard Form Affiliation */
.dashboard-form__affiliation {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.dashboard-form__affiliation-row {
  display: flex;
  gap: 12px;
}

.dashboard-form__affiliation-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px;
  background: #F5F5F5;
  border-radius: 8px;
}

.dashboard-form__affiliation-label {
  font-size: 11px;
  color: #888888;
  font-weight: 500;
}

.dashboard-form__affiliation-value {
  font-size: 15px;
  font-weight: 600;
  color: #333333;
}

.dashboard-form__input-group {
  display: flex;
  align-items: center;
  gap: 8px;
}

.dashboard-form__suffix {
  font-size: 14px;
  color: #666666;
  flex-shrink: 0;
}

.dashboard-form__hint {
  font-size: 12px;
  color: #888888;
}

/* Password Requirements */
.password-requirements {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 8px;
  padding: 12px;
  background: #F8F8F8;
  border-radius: 6px;
}

.password-requirements__item {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: #888888;
  transition: color 0.2s ease;
}

.password-requirements__icon {
  width: 16px;
  text-align: center;
  font-weight: 600;
}

.password-requirements__item.is-valid {
  color: #4CAF50;
}

.password-requirements__item.is-valid .password-requirements__icon {
  color: #4CAF50;
}

.password-requirements__item.is-invalid {
  color: #888888;
}

/* Password Toggle Button */
.dashboard-form__input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

.dashboard-form__input-wrapper .dashboard-form__input {
  padding-right: 44px;
}

.password-toggle-btn {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: #888888;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease;
}

.password-toggle-btn:hover {
  color: #666666;
}

.password-toggle-btn svg {
  display: block;
}

.dashboard-form__note {
  font-size: 12px;
  color: #999;
  margin: 6px 0 0;
}

.dashboard-form__counter {
  font-size: 12px;
  color: #888888;
  text-align: right;
}

/* Dashboard Form Radio */
.dashboard-form__radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.dashboard-form__radio {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}

.dashboard-form__radio input {
  width: 18px;
  height: 18px;
  accent-color: #918461;
}

.dashboard-form__radio span {
  font-size: 14px;
  color: #333333;
}

.dashboard-form__radio--sm input {
  width: 16px;
  height: 16px;
}

.dashboard-form__radio--sm span {
  font-size: 13px;
}

/* Dashboard Form Checkbox */
.dashboard-form__checkbox-group {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.dashboard-form__checkbox-group--area {
  max-height: 200px;
  overflow-y: auto;
  padding: 12px;
  border: 1px solid #E5E5E5;
  border-radius: 8px;
  background: #FAFAFA;
}

.dashboard-form__checkbox {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  min-width: 90px;
}

.dashboard-form__checkbox input {
  width: 18px;
  height: 18px;
  accent-color: #918461;
}

.dashboard-form__checkbox span {
  font-size: 14px;
  color: #333333;
}

.dashboard-form__checkbox--highlight {
  width: 100%;
  padding: 8px 12px;
  background: linear-gradient(135deg, #918461 0%, #B8A878 100%);
  border-radius: 6px;
  margin-bottom: 8px;
}

.dashboard-form__checkbox--highlight span {
  color: #FFFFFF;
  font-weight: 600;
}

.dashboard-form__checkbox--highlight input {
  accent-color: #FFFFFF;
}

/* Dashboard Form Avatar */
.dashboard-form__avatar {
  position: relative;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  overflow: hidden;
}

.dashboard-form__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dashboard-form__avatar-edit {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 32px;
  height: 32px;
  background: #918461;
  border: none;
  border-radius: 50%;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* Dashboard Form Tags */
.dashboard-form__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 8px;
}

.dashboard-form__tag {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  background: #F0EDE5;
  border-radius: 16px;
  font-size: 13px;
  color: #918461;
}

.dashboard-form__tag-remove {
  background: none;
  border: none;
  color: #918461;
  font-size: 16px;
  cursor: pointer;
  line-height: 1;
}

.dashboard-form__tag-input {
  display: flex;
  gap: 8px;
}

.dashboard-form__tag-input .dashboard-form__input {
  flex: 1;
}

/* Dashboard Form Tag Selector */
.dashboard-form__hint {
  font-size: 13px;
  color: #888;
  margin-bottom: 12px;
}

.dashboard-form__tag-selector {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
  background: #FAFAFA;
  border-radius: 8px;
  border: 1px solid #E5E5E5;
}

.dashboard-form__tag-category {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.dashboard-form__tag-category-label {
  font-size: 13px;
  font-weight: 600;
  color: #666;
}

.dashboard-form__tag-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dashboard-form__tag-option {
  cursor: pointer;
}

.dashboard-form__tag-option input[type="checkbox"] {
  display: none;
}

.dashboard-form__tag-checkbox {
  display: inline-block;
  padding: 6px 14px;
  background: #fff;
  border: 1px solid #DDD;
  border-radius: 20px;
  font-size: 13px;
  color: #666;
  transition: all 0.2s ease;
}

.dashboard-form__tag-option input[type="checkbox"]:checked + .dashboard-form__tag-checkbox {
  background: #C4A962;
  border-color: #C4A962;
  color: #fff;
}

.dashboard-form__tag-option:hover .dashboard-form__tag-checkbox {
  border-color: #C4A962;
}

.dashboard-form__tag-option input[type="checkbox"]:disabled + .dashboard-form__tag-checkbox {
  opacity: 0.5;
  cursor: not-allowed;
}

.dashboard-form__tag-count {
  margin-top: 12px;
  font-size: 13px;
  color: #888;
}

.dashboard-form__tag-count span {
  font-weight: 600;
  color: #C4A962;
}

/* Dashboard Form Upload */
.dashboard-form__upload {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dashboard-form__upload-preview {
  width: 100%;
  max-width: 200px;
  aspect-ratio: 4/3;
  border-radius: 8px;
  overflow: hidden;
  background: #F0F0F0;
}

.dashboard-form__upload-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Dashboard Form Gallery */
.dashboard-form__gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
  gap: 8px;
}

.dashboard-form__gallery-item {
  position: relative;
  aspect-ratio: 1;
  border-radius: 8px;
  overflow: hidden;
}

.dashboard-form__gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dashboard-form__gallery-remove {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 20px;
  height: 20px;
  background: rgba(0, 0, 0, 0.6);
  border: none;
  border-radius: 50%;
  color: #FFFFFF;
  font-size: 12px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dashboard-form__gallery-add {
  aspect-ratio: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  background: #F0F0F0;
  border: 2px dashed #CCCCCC;
  border-radius: 8px;
  color: #888888;
  cursor: pointer;
  transition: border-color 0.2s ease;
}

.dashboard-form__gallery-add:hover {
  border-color: #918461;
  color: #918461;
}

.dashboard-form__gallery-add span {
  font-size: 12px;
}

/* Dashboard Form Q&A */
.dashboard-form__qa {
  padding: 16px;
  background: #F8F8F8;
  border-radius: 8px;
}

/* Dashboard Form Service */
.dashboard-form__service-category {
  margin-bottom: 16px;
}

.dashboard-form__service-title {
  font-size: 14px;
  font-weight: 600;
  color: #918461;
  padding: 8px 12px;
  background: #F0EDE5;
  border-radius: 4px;
  margin-bottom: 12px;
}

.dashboard-form__service-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dashboard-form__service-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #EEEEEE;
}

.dashboard-form__service-name {
  font-size: 14px;
  color: #333333;
  flex: 1;
}

.dashboard-form__service-options {
  display: flex;
  gap: 12px;
}

.dashboard-form__service-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 8px;
}

.dashboard-form__service-option {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 36px;
  height: 36px;
  border: 2px solid #ddd;
  border-radius: 4px;
  cursor: pointer;
  font-size: 16px;
  font-weight: bold;
  transition: all 0.2s;
}

.dashboard-form__service-option input {
  position: absolute;
  opacity: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  margin: 0;
}

.dashboard-form__service-option span {
  pointer-events: none;
}

.dashboard-form__service-option--circle:hover,
.dashboard-form__service-option--circle.is-selected {
  border-color: #00a32a;
  background: #e6f5e9;
  color: #00a32a;
}

.dashboard-form__service-option--triangle:hover,
.dashboard-form__service-option--triangle.is-selected {
  border-color: #dba617;
  background: #fef8e6;
  color: #dba617;
}

.dashboard-form__service-option--cross:hover,
.dashboard-form__service-option--cross.is-selected {
  border-color: #d63638;
  background: #fce8e8;
  color: #d63638;
}

/* Dashboard Image Select */
.image-select-wrapper {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
}

.image-select-wrapper .image-preview {
  width: 120px;
  height: 120px;
  border: 2px dashed #ddd;
  border-radius: 8px;
  background: #f9f9f9;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.image-select-wrapper.has-image .image-preview {
  border-style: solid;
  border-color: #918461;
}

.image-select-wrapper .image-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.image-select-wrapper .remove-selected-image {
  display: none;
}

.image-select-wrapper.has-image .remove-selected-image {
  display: inline-flex;
}

/* Dashboard Gallery */
.therapist-gallery-wrapper {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.therapist-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.therapist-gallery-item {
  position: relative;
  width: 100px;
  height: 100px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #ddd;
}

.therapist-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.therapist-gallery-item .remove-image {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 24px;
  height: 24px;
  background: rgba(0, 0, 0, 0.6);
  border: none;
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.therapist-gallery-item .remove-image:hover {
  background: rgba(231, 76, 60, 0.9);
}

/* Dashboard Form Button */
.dashboard-form__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 500;
  border: 1px solid #918461;
  border-radius: 6px;
  background: #918461;
  color: #fff;
  cursor: pointer;
  transition: all 0.2s;
}

.dashboard-form__button:hover {
  background: #7a6f52;
  border-color: #7a6f52;
}

.dashboard-form__button--secondary {
  background: #fff;
  color: #918461;
}

.dashboard-form__button--secondary:hover {
  background: #f5f3ef;
}

/* Dashboard Form Submit */
.dashboard-form__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 32px;
  font-size: 15px;
  font-weight: 600;
  background: linear-gradient(135deg, #918461 0%, #7a6f52 100%);
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s;
}

.dashboard-form__submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(145, 132, 97, 0.3);
}

/* Dashboard Profile */
.dashboard-profile__title {
  font-size: 20px;
  font-weight: 700;
  color: #333;
  margin: 0 0 4px;
}

.dashboard-profile__description {
  font-size: 13px;
  color: #888;
  margin: 0 0 20px;
}

.dashboard-profile__sections {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Profile Accordion */
.profile-accordion {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  overflow: hidden;
}

.profile-accordion__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 16px 20px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background 0.2s;
}

.profile-accordion__header:hover {
  background: #fafafa;
}

.profile-accordion__header-content {
  display: flex;
  align-items: center;
  gap: 14px;
}

.profile-accordion__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, #f8f6f2 0%, #f0ede6 100%);
  border-radius: 10px;
  color: #918461;
  flex-shrink: 0;
}

.profile-accordion__header-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.profile-accordion__title {
  font-size: 15px;
  font-weight: 600;
  color: #333;
}

.profile-accordion__description {
  font-size: 12px;
  color: #888;
}

.profile-accordion__status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 20px;
  margin-right: 8px;
  flex-shrink: 0;
}

.profile-accordion__status--complete {
  background: #E8F5E9;
  color: #4CAF50;
  padding: 4px 8px;
}

.profile-accordion__status--complete svg {
  stroke: #4CAF50;
}

.profile-accordion__status--incomplete {
  background: #FFF3E0;
  color: #F57C00;
}

.profile-accordion__arrow {
  display: flex;
  align-items: center;
  color: #bbb;
  transition: transform 0.2s;
}

.profile-accordion.is-open .profile-accordion__arrow {
  transform: rotate(180deg);
}

.profile-accordion__body {
  display: none;
  border-top: 1px solid #f0f0f0;
}

.profile-accordion__form {
  padding: 20px;
}

.profile-accordion__footer {
  padding-top: 20px;
  margin-top: 8px;
  border-top: 1px solid #f0f0f0;
}

/* Profile Form */
.profile-form__group {
  margin-bottom: 18px;
}

.profile-form__group:last-child {
  margin-bottom: 0;
}

.profile-form__label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #555;
  margin-bottom: 8px;
}

.profile-form__label--icon {
  display: flex;
  align-items: center;
  gap: 8px;
}

.profile-form__label--icon svg {
  color: #888;
}

.profile-form__required {
  font-size: 11px;
  font-weight: 500;
  color: #e74c3c;
  margin-left: 4px;
}

.profile-form__hint-inline {
  font-size: 11px;
  font-weight: 400;
  color: #999;
  margin-left: 4px;
}

.profile-form__hint {
  font-size: 12px;
  color: #999;
  margin: 4px 0 8px;
}

.profile-form__note {
  font-size: 13px;
  color: #666;
  background: #f8f6f2;
  padding: 12px 16px;
  border-radius: 8px;
  margin-bottom: 18px;
}

/* YouTube URLs */
.profile-youtube-urls {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.profile-youtube-urls__item {
  display: flex;
  gap: 8px;
  align-items: center;
}

.profile-youtube-urls__item input {
  flex: 1;
}

.profile-youtube-urls__remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  background: #fff;
  color: #999;
  cursor: pointer;
  transition: all 0.2s;
  flex-shrink: 0;
}

.profile-youtube-urls__remove:hover {
  border-color: #ff6b6b;
  color: #ff6b6b;
  background: #fff5f5;
}

/* Career Timeline */
.profile-career-timeline {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.profile-career-timeline__item {
  display: flex;
  gap: 8px;
  align-items: center;
}

.profile-career-timeline__item .profile-form__input--date {
  width: 120px;
  flex-shrink: 0;
}

.profile-career-timeline__item .profile-form__input--content {
  flex: 1;
}

.profile-career-timeline__remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  background: #fff;
  color: #999;
  cursor: pointer;
  transition: all 0.2s;
  flex-shrink: 0;
}

.profile-career-timeline__remove:hover {
  border-color: #ff6b6b;
  color: #ff6b6b;
  background: #fff5f5;
}

/* Add Button */
.profile-form__add-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  font-size: 13px;
  font-weight: 500;
  color: #918461;
  background: #fff;
  border: 1px dashed #918461;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}

.profile-form__add-btn:hover {
  background: #f8f6f2;
  border-style: solid;
}

.profile-form__empty {
  text-align: center;
  color: #999;
  padding: 24px;
}

.profile-form__input,
.profile-form__select,
.profile-form__textarea {
  width: 100%;
  padding: 12px 14px;
  font-size: 14px;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  background: #fff;
  transition: border-color 0.2s, box-shadow 0.2s;
  -webkit-appearance: none;
}

.profile-form__input:focus,
.profile-form__select:focus,
.profile-form__textarea:focus {
  outline: none;
  border-color: #918461;
  box-shadow: 0 0 0 3px rgba(145, 132, 97, 0.1);
}

.profile-form__input--small {
  width: 100px;
}

.profile-form__select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 36px;
}

.profile-form__select--small {
  width: 80px;
}

.profile-form__textarea {
  resize: vertical;
  min-height: 80px;
}

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

.profile-form__unit {
  font-size: 14px;
  color: #666;
}

.profile-form__counter {
  font-size: 12px;
  color: #999;
  text-align: right;
  margin-top: 6px;
}

/* Profile Form Chips */
.profile-form__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.profile-form__chip {
  display: inline-flex;
  cursor: pointer;
}

.profile-form__chip input {
  display: none;
}

.profile-form__chip span {
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  font-size: 13px;
  color: #666;
  background: #f5f5f5;
  border: 1px solid #e0e0e0;
  border-radius: 20px;
  transition: all 0.2s;
}

.profile-form__chip:hover span {
  background: #efefef;
}

.profile-form__chip input:checked + span {
  background: #918461;
  border-color: #918461;
  color: #fff;
}

.profile-form__chip.is-disabled span {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Category Groups */
.profile-form__category-groups {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.profile-form__category-group {
  background: #fafafa;
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 12px 16px;
}

.profile-form__category-header {
  font-size: 13px;
  font-weight: 600;
  color: #333;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid #e5e5e5;
}

.profile-form__category-group .profile-form__chips {
  gap: 8px;
}

.profile-form__empty {
  color: #999;
  font-size: 13px;
  padding: 12px 0;
}

/* Profile Form Buttons */
.profile-form__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 16px;
  font-size: 13px;
  font-weight: 500;
  color: #555;
  background: #f5f5f5;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}

.profile-form__btn:hover {
  background: #ebebeb;
}

.profile-form__btn--danger {
  color: #e74c3c;
}

.profile-form__btn--danger:hover {
  background: #fef2f2;
  border-color: #fecaca;
}

.profile-form__btn--text {
  background: none;
  border: none;
  color: #918461;
  padding: 8px 12px;
}

.profile-form__btn--text:hover {
  background: #f8f6f2;
}

.profile-form__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 14px 24px;
  font-size: 15px;
  font-weight: 600;
  color: #fff;
  background: linear-gradient(135deg, #918461 0%, #7a6f52 100%);
  border: none;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.3s;
}

.profile-form__submit:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(145, 132, 97, 0.3);
}

.profile-form__submit svg {
  opacity: 0.9;
}

/* Profile Form Toggle */
.profile-form__toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  margin-bottom: 12px;
}

.profile-form__toggle input {
  width: 18px;
  height: 18px;
  accent-color: #918461;
}

.profile-form__toggle span {
  font-size: 13px;
  color: #666;
}

/* Profile Form Color */
.profile-form__color-picker {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.profile-form__color-picker input[type="color"] {
  width: 44px;
  height: 44px;
  padding: 2px;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  cursor: pointer;
}

.profile-form__range {
  flex: 1;
  min-width: 150px;
}

.profile-form__range label {
  display: block;
  font-size: 12px;
  color: #666;
  margin-bottom: 4px;
}

.profile-form__range input[type="range"] {
  width: 100%;
  accent-color: #918461;
}

.profile-form__color-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.profile-form__color-row input[type="color"] {
  width: 44px;
  height: 44px;
  padding: 2px;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  cursor: pointer;
}

/* インラインプリセット */
.profile-form__color-presets--inline {
  display: flex;
  align-items: center;
  gap: 6px;
}

.profile-form__color-preset-btn {
  width: 28px;
  height: 28px;
  padding: 2px;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  background: none;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.profile-form__color-preset-btn:hover {
  transform: scale(1.1);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.profile-form__color-preset-btn span {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 4px;
}

/* アクセントカラー タイプ選択 */
.profile-form__color-type {
  display: flex;
  gap: 16px;
  margin-bottom: 16px;
}

.profile-form__color-type-option {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
}

.profile-form__color-type-option input[type="radio"] {
  width: 18px;
  height: 18px;
  accent-color: #918461;
}

.profile-form__color-type-label {
  font-size: 14px;
  color: #333;
}

/* アクセントカラー プレビュー */
.profile-form__color-preview {
  width: 100%;
  height: 12px;
  border-radius: 6px;
  margin-bottom: 16px;
  border: 1px solid #e0e0e0;
}

/* アクセントカラー ピッカー */
.profile-form__color-pickers {
  display: flex;
  gap: 24px;
  margin-bottom: 16px;
}

.profile-form__color-picker-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.profile-form__color-picker-label {
  font-size: 12px;
  color: #666;
}

.profile-form__color-picker {
  width: 60px;
  height: 40px;
  padding: 2px;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  cursor: pointer;
  background: #fff;
}

.profile-form__color-picker::-webkit-color-swatch-wrapper {
  padding: 2px;
}

.profile-form__color-picker::-webkit-color-swatch {
  border-radius: 4px;
  border: none;
}

/* アクセントカラー プリセット */
.profile-form__color-presets {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.profile-form__color-presets-label {
  font-size: 12px;
  color: #666;
  margin-right: 4px;
}

.profile-form__color-preset,
.profile-form__color-preset-solid {
  width: 32px;
  height: 32px;
  padding: 3px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  cursor: pointer;
  background: #fff;
  transition: border-color 0.2s, transform 0.2s;
}

.profile-form__color-preset:hover,
.profile-form__color-preset-solid:hover {
  border-color: #918461;
  transform: scale(1.1);
}

.profile-form__color-preset span,
.profile-form__color-preset-solid span {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 4px;
}

/* グラデーション/単色設定エリア */
.profile-form__color-gradient,
.profile-form__color-solid {
  padding: 16px;
  background: #f9f9f9;
  border-radius: 8px;
  border: 1px solid #e0e0e0;
}

/* 透明度スライダー */
.profile-form__opacity-slider {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #e0e0e0;
}

.profile-form__opacity-slider .profile-form__color-picker-label {
  display: block;
  margin-bottom: 8px;
}

.profile-form__range-input {
  width: 100%;
  height: 6px;
  border-radius: 3px;
  background: #ddd;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

.profile-form__range-input::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #918461;
  cursor: pointer;
  border: 2px solid #fff;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.profile-form__range-input::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #918461;
  cursor: pointer;
  border: 2px solid #fff;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

/* Profile Form Benefit Row */
.profile-form__benefit-row {
  display: flex;
  gap: 8px;
  margin-bottom: 8px;
}

.profile-form__benefit-row:last-child {
  margin-bottom: 0;
}

/* Profile Image Upload */
.profile-image-upload {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.profile-image-upload__preview {
  width: 140px;
  height: 140px;
  border: 2px dashed #ddd;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  transition: border-color 0.2s;
}

.profile-image-upload__preview:hover {
  border-color: #918461;
}

.profile-image-upload.has-image .profile-image-upload__preview {
  border-style: solid;
  border-color: #e0e0e0;
}

.profile-image-upload__preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-image-upload__preview--wide {
  width: 100%;
  height: 120px;
}

.profile-image-upload__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #bbb;
  gap: 8px;
}

.profile-image-upload__placeholder span {
  font-size: 12px;
}

.profile-image-upload__actions {
  display: flex;
  gap: 8px;
}

.profile-image-upload .remove-selected-image {
  display: none;
}

.profile-image-upload.has-image .remove-selected-image {
  display: inline-flex;
}

/* Profile Gallery */
.profile-gallery__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
  gap: 10px;
}

.profile-gallery__item {
  position: relative;
  aspect-ratio: 1;
  border-radius: 10px;
  overflow: hidden;
  background: #f5f5f5;
}

.profile-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-gallery__remove {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.6);
  border: none;
  border-radius: 50%;
  color: #fff;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.2s;
}

.profile-gallery__item:hover .profile-gallery__remove {
  opacity: 1;
}

.profile-gallery__remove:hover {
  background: #e74c3c;
}

.profile-gallery__add {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  background: #f8f8f8;
  border: 2px dashed #ddd;
  border-radius: 10px;
  color: #999;
  cursor: pointer;
  transition: all 0.2s;
  gap: 4px;
}

.profile-gallery__add:hover {
  border-color: #918461;
  color: #918461;
  background: #faf9f7;
}

.profile-gallery__add span {
  font-size: 11px;
}

/* Profile Services */
.profile-services {
  margin-top: 16px;
}

.profile-services__legend {
  display: flex;
  gap: 16px;
  margin-bottom: 16px;
  padding: 10px 14px;
  background: #f8f8f8;
  border-radius: 8px;
  flex-wrap: wrap;
}

.profile-services__legend-item {
  font-size: 12px;
  color: #666;
}

.profile-services__legend-item--ok { color: #27ae60; }
.profile-services__legend-item--maybe { color: #f39c12; }
.profile-services__legend-item--no { color: #e74c3c; }

.profile-services__category {
  margin-bottom: 20px;
}

.profile-services__category:last-child {
  margin-bottom: 0;
}

.profile-services__category-title {
  font-size: 13px;
  font-weight: 600;
  color: #555;
  margin: 0 0 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid #eee;
}

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

.profile-services__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 12px;
  background: #fafafa;
  border-radius: 8px;
}

.profile-services__name {
  font-size: 13px;
  color: #444;
}

.profile-services__options {
  display: flex;
  gap: 6px;
}

.profile-services__option {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 2px solid #e0e0e0;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s;
  font-weight: 600;
}

.profile-services__option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.profile-services__option span {
  font-size: 14px;
  color: #999;
  pointer-events: none;
}

.profile-services__option--ok:hover,
.profile-services__option--ok.is-selected {
  border-color: #27ae60;
  background: #e8f8ef;
}
.profile-services__option--ok.is-selected span { color: #27ae60; }

.profile-services__option--maybe:hover,
.profile-services__option--maybe.is-selected {
  border-color: #f39c12;
  background: #fef9e7;
}
.profile-services__option--maybe.is-selected span { color: #f39c12; }

.profile-services__option--no:hover,
.profile-services__option--no.is-selected {
  border-color: #e74c3c;
  background: #fdf2f2;
}
.profile-services__option--no.is-selected span { color: #e74c3c; }

/* Profile Plans */
.profile-plans {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.profile-plans__item {
  background: #f8f8f8;
  border-radius: 10px;
  overflow: hidden;
}

.profile-plans__header {
  padding: 10px 14px;
  font-size: 13px;
  font-weight: 600;
  color: #666;
  background: #f0f0f0;
}

.profile-plans__fields {
  padding: 14px;
}

.profile-plans__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

/* Owner Schedule Form */
.owner-schedule-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.owner-schedule-day {
  background: #fafafa;
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 16px;
}

.owner-schedule-day__header {
  margin-bottom: 12px;
}

.owner-schedule-day__date {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  color: #333;
}

.owner-schedule-day__label {
  display: inline-flex;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  color: #fff;
  background: #02C1D4;
  border-radius: 4px;
}

.owner-schedule-day__options {
  display: flex;
  gap: 16px;
  margin-bottom: 12px;
}

.owner-schedule-day__times {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px;
  background: #fff;
  border-radius: 6px;
  margin-bottom: 12px;
}

.owner-schedule-day__time-slot {
  display: flex;
  align-items: center;
  gap: 8px;
}

.owner-schedule-day__slot-label {
  font-size: 13px;
  font-weight: 500;
  color: #666;
  min-width: 60px;
}

.owner-schedule-day__time {
  display: flex;
  align-items: center;
  gap: 8px;
}

.owner-schedule-day__separator {
  color: #999;
}

.owner-schedule-day__note {
  margin-top: 0;
}

.profile-form__select--time {
  width: auto;
  min-width: 90px;
}

/* Mobile Responsive */
@media (max-width: 600px) {
  .owner-schedule-day__options {
    flex-wrap: wrap;
    gap: 12px;
  }

  .owner-schedule-day__time-slot {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  .owner-schedule-day__slot-label {
    min-width: auto;
  }
}

/* Mobile Responsive */
@media (max-width: 600px) {
  .profile-accordion__header {
    padding: 14px 16px;
  }

  .profile-accordion__icon {
    width: 36px;
    height: 36px;
  }

  .profile-accordion__form {
    padding: 16px;
  }

  .profile-form__input,
  .profile-form__select,
  .profile-form__textarea {
    padding: 11px 12px;
    font-size: 16px; /* Prevent zoom on iOS */
  }

  .profile-form__chips {
    gap: 6px;
  }

  .profile-form__chip span {
    padding: 7px 12px;
    font-size: 12px;
  }

  .profile-services__legend {
    gap: 10px;
    padding: 8px 12px;
  }

  .profile-services__legend-item {
    font-size: 11px;
  }

  .profile-services__item {
    padding: 8px 10px;
  }

  .profile-services__name {
    font-size: 12px;
  }

  .profile-services__option {
    width: 28px;
    height: 28px;
  }

  .profile-services__option span {
    font-size: 12px;
  }

  .profile-gallery__grid {
    grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
  }

  .profile-gallery__remove {
    opacity: 1;
  }

  .profile-plans__row {
    grid-template-columns: 1fr;
  }
}

/* Dashboard Form Plan Item */
.dashboard-form__plan-item {
  padding: 16px;
  background: #F8F8F8;
  border-radius: 8px;
  margin-bottom: 12px;
}

.dashboard-form__plan-title {
  font-size: 14px;
  font-weight: 600;
  color: #555555;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #ddd;
}

.dashboard-form__group--quarter {
  flex: 0 0 calc(25% - 8px);
}

/* Dashboard Form Plan */
.dashboard-form__plan {
  padding: 16px;
  background: #F8F8F8;
  border-radius: 8px;
  margin-bottom: 12px;
}

.dashboard-form__plan-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  font-size: 14px;
  font-weight: 600;
  color: #555555;
}

.dashboard-form__plan-remove {
  background: none;
  border: none;
  color: #E74C3C;
  font-size: 13px;
  cursor: pointer;
}

/* Dashboard Form Timeline */
.dashboard-form__timeline {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.dashboard-form__timeline-item {
  display: flex;
  gap: 8px;
  align-items: center;
}

.dashboard-form__timeline-item .dashboard-form__input {
  flex: 1;
}

.dashboard-form__timeline-remove,
.dashboard-form__achievement-remove {
  background: none;
  border: none;
  color: #E74C3C;
  font-size: 18px;
  cursor: pointer;
  padding: 4px;
}

/* Dashboard Form Achievements */
.dashboard-form__achievements {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.dashboard-form__achievement-item {
  display: flex;
  gap: 8px;
  align-items: center;
}

.dashboard-form__achievement-item .dashboard-form__input {
  flex: 1;
}

/* Dashboard Tabs */
.dashboard-tabs {
  display: flex;
  background: #FFFFFF;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 16px;
}

.dashboard-tabs__tab {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px;
  background: none;
  border: none;
  font-size: 14px;
  font-weight: 500;
  color: #888888;
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
}

.dashboard-tabs__tab:hover {
  color: #918461;
  background: rgba(240, 237, 229, 0.5);
}

.dashboard-tabs__tab--active {
  color: #918461;
  background: #F0EDE5;
}

.dashboard-tabs__badge {
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  background: #918461;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 600;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dashboard-tabs__tab--active .dashboard-tabs__badge {
  background: #918461;
}

/* Dashboard Reviews */
.dashboard-reviews {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dashboard-reviews--hidden {
  display: none;
}

.dashboard-review {
  padding: 16px;
  background: #FFFFFF;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dashboard-review__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.dashboard-review__stars {
  display: flex;
  gap: 2px;
}

.dashboard-review__date {
  font-size: 12px;
  color: #888888;
}

.dashboard-review__text {
  font-size: 14px;
  color: #333333;
  line-height: 1.6;
  margin-bottom: 8px;
}

.dashboard-review__author {
  font-size: 12px;
  color: #888888;
  display: block;
  margin-bottom: 12px;
}

.dashboard-review__actions {
  display: flex;
  gap: 8px;
}

.dashboard-review__actions > .btn {
  flex: 6;
  justify-content: center;
}

.dashboard-review__actions > form {
  display: flex !important;
  flex: 4;
}

.dashboard-review__actions > form .btn {
  width: 100%;
  justify-content: center;
}

.dashboard-review__action-form {
  display: flex;
  gap: 8px;
  width: 100%;
}

.dashboard-review__action-form .btn {
  flex: 1;
  justify-content: center;
}

/* Dashboard Review Reply */
.dashboard-review__reply {
  margin-top: 12px;
  padding: 12px;
  background: #F8F7F4;
  border-radius: 8px;
  border-left: 3px solid #918461;
}

.dashboard-review__reply-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.dashboard-review__reply-label {
  font-size: 12px;
  font-weight: 600;
  color: #918461;
}

.dashboard-review__reply-date {
  font-size: 11px;
  color: #888888;
}

.dashboard-review__reply-text {
  font-size: 14px;
  color: #333333;
  line-height: 1.6;
  margin: 0;
}

.dashboard-review__reply-actions {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}

.dashboard-review__reply {
  margin-bottom: 12px;
}

/* Dashboard Review Reply Form */
.dashboard-review__reply-form {
  margin-top: 12px;
  padding: 12px;
  background: #F8F7F4;
  border-radius: 8px;
}

.dashboard-review__reply-form--hidden {
  display: none;
}

.dashboard-review__reply-form .dashboard-form__group {
  margin-bottom: 12px;
}

.dashboard-review__reply-form .dashboard-form__label {
  font-size: 13px;
  margin-bottom: 6px;
}

.dashboard-review__reply-form .dashboard-form__textarea {
  font-size: 14px;
  padding: 10px;
  resize: vertical;
  min-height: 80px;
}

.dashboard-review__reply-form-actions {
  display: flex;
  gap: 8px;
}

.dashboard-review__reply-from {
  display: flex;
  gap: 16px;
}

.dashboard-review__reply-label--store {
  color: #2196F3;
}

/* Reply button with icon */
.dashboard-review__reply-btn.btn--gold.btn--sm {
  gap: 4px;
  padding: 10px 14px;
}

.dashboard-review__reply-btn svg {
  flex-shrink: 0;
}

/* Danger outline button variant */
.btn--danger-outline {
  background: transparent;
  border: 1px solid #E74C3C;
  color: #E74C3C;
}

.btn--danger-outline:hover {
  background: #E74C3C;
  color: #FFFFFF;
}

/* Dashboard Schedule Day Label */
.dashboard-schedule-day__label {
  display: inline-block;
  padding: 2px 8px;
  background: #918461;
  color: #FFFFFF;
  font-size: 11px;
  font-weight: 600;
  border-radius: 4px;
  margin-right: 8px;
}

/* Dashboard Schedule Form */
.dashboard-schedule-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Dashboard Schedule Day */
.dashboard-schedule-day {
  padding: 16px;
  background: #FFFFFF;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dashboard-schedule-day__header {
  margin-bottom: 12px;
}

.dashboard-schedule-day__date {
  font-size: 15px;
  font-weight: 600;
  color: #333333;
}

.dashboard-schedule-day__options {
  display: flex;
  gap: 16px;
  margin-bottom: 12px;
}

.dashboard-schedule-day__time {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  padding-top: 12px;
  border-top: 1px solid #EEEEEE;
}

.dashboard-schedule-day__time .dashboard-form__group {
  flex: 1;
}

.dashboard-schedule-day__separator {
  padding-bottom: 12px;
  color: #888888;
}

.dashboard-form__select--time {
  padding: 10px;
  font-size: 14px;
}

/* Dashboard Schedule Day - Multiple Time Slots */
.dashboard-schedule-day__times {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #EEEEEE;
}

.dashboard-schedule-day__time-slot {
  display: flex;
  align-items: flex-end;
  gap: 8px;
}

.dashboard-schedule-day__time-slot .dashboard-schedule-day__time {
  flex: 1;
  margin-top: 0;
}

.dashboard-schedule-day__remove-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin-bottom: 6px;
  padding: 0;
  background: transparent;
  border: 1px solid #E74C3C;
  border-radius: 6px;
  color: #E74C3C;
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.dashboard-schedule-day__remove-btn:hover {
  background: #E74C3C;
  color: #FFFFFF;
}

.dashboard-schedule-day__add-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  padding: 10px 16px;
  background: transparent;
  border: 1px dashed #918461;
  border-radius: 8px;
  color: #918461;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
}

.dashboard-schedule-day__add-btn:hover {
  background: rgba(145, 132, 97, 0.08);
  border-style: solid;
}

.dashboard-schedule-day__add-btn svg {
  flex-shrink: 0;
}

/* Hide time slots when not available */
.dashboard-schedule-day__times[style*="display: none"] {
  display: none !important;
}

/* Dashboard Settings */
.dashboard-settings {
  display: flex;
  flex-direction: column;
  background: #FFFFFF;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 16px;
}

.dashboard-settings--danger {
  background: transparent;
  gap: 8px;
}

.dashboard-settings__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: #FFFFFF;
  border: none;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.2s ease;
  width: 100%;
  text-align: left;
}

.dashboard-settings__item:not(:last-child) {
  border-bottom: 1px solid #EEEEEE;
}

.dashboard-settings--danger .dashboard-settings__item {
  border-radius: 12px;
}

.dashboard-settings__item:hover {
  background: #F8F8F8;
}

.dashboard-settings__item--logout {
  color: #333333;
}

.dashboard-settings__item--delete {
  color: #E74C3C;
}

.dashboard-settings__icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #F0F0F0;
  border-radius: 10px;
  color: #555555;
}

.dashboard-settings__item--delete .dashboard-settings__icon {
  background: #FFEBEE;
  color: #E74C3C;
}

.dashboard-settings__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dashboard-settings__title {
  font-size: 15px;
  font-weight: 500;
  color: inherit;
}

.dashboard-settings__value {
  font-size: 13px;
  color: #888888;
}

.dashboard-settings__arrow {
  color: #AAAAAA;
}

.dashboard-settings__notice {
  font-size: 13px;
  color: #666666;
  padding: 12px 16px;
  line-height: 1.6;
}

.dashboard-settings__notice a {
  color: #918461;
  font-weight: 600;
  text-decoration: underline;
}

/* Dashboard Toggle */
.dashboard-toggle {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 28px;
}

.dashboard-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}

.dashboard-toggle__slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: #CCCCCC;
  border-radius: 28px;
  transition: 0.3s;
}

.dashboard-toggle__slider:before {
  position: absolute;
  content: "";
  height: 22px;
  width: 22px;
  left: 3px;
  bottom: 3px;
  background: #FFFFFF;
  border-radius: 50%;
  transition: 0.3s;
}

.dashboard-toggle input:checked + .dashboard-toggle__slider {
  background: #918461;
}

.dashboard-toggle input:checked + .dashboard-toggle__slider:before {
  transform: translateX(22px);
}

/* Dashboard Bottom Navigation */
.dashboard-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  background: #FFFFFF;
  border-top: 1px solid #EEEEEE;
  z-index: 100;
  padding-bottom: env(safe-area-inset-bottom);
}

.dashboard-nav__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 10px 8px;
  background: none;
  border: none;
  color: #888888;
  cursor: pointer;
  position: relative;
  transition: color 0.2s ease;
}

.dashboard-nav__item--active {
  color: #918461;
}

.dashboard-nav__item span {
  font-size: 10px;
  font-weight: 500;
}

.dashboard-nav__badge {
  position: absolute;
  top: 4px;
  right: calc(50% - 20px);
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  background: #E74C3C;
  border-radius: 8px;
  font-size: 10px;
  font-weight: 600;
  color: #FFFFFF;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Button Variants for Dashboard */
.btn--sm {
  padding: 8px 16px;
  font-size: 13px;
}

.btn--full {
  width: 100%;
}

.btn--outline {
  background: transparent;
  border: 1px solid #918461;
  color: #918461;
}

.btn--outline:hover {
  background: #F0EDE5;
}

.btn--danger {
  background: #FFEBEE;
  border: 1px solid #E74C3C;
  color: #E74C3C;
}

.btn--danger:hover {
  background: #FFCDD2;
}

/* Dashboard Responsive */
@media (min-width: 768px) {
  .dashboard-body {
    padding-bottom: 0;
  }

  .dashboard-main {
    display: flex;
    gap: 24px;
    max-width: 1200px;
    padding: 24px;
  }

  .dashboard-nav {
    position: static;
    flex-direction: column;
    width: 200px;
    flex-shrink: 0;
    background: #FFFFFF;
    border: none;
    border-radius: 12px;
    padding: 16px;
    height: fit-content;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  }

  .dashboard-nav__item {
    flex-direction: row;
    justify-content: flex-start;
    gap: 12px;
    padding: 12px;
    border-radius: 8px;
  }

  .dashboard-nav__item span {
    font-size: 14px;
  }

  .dashboard-nav__item--active {
    background: #F0EDE5;
  }

  .dashboard-nav__badge {
    position: static;
    margin-left: auto;
  }

  .dashboard-section {
    flex: 1;
  }

  .dashboard-stats {
    grid-template-columns: repeat(4, 1fr);
  }

  .dashboard-form__row {
    flex-wrap: nowrap;
  }

  .dashboard-form__gallery {
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  }
}

@media (min-width: 1024px) {
  .dashboard-header__inner {
    padding: 16px 24px;
  }

  .dashboard-form__service-item {
    padding: 12px 0;
  }
}

/* ========================================
   Dashboard Diary Section
   ======================================== */

/* New Post Button */
.dashboard-diary-new {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 16px;
  background: linear-gradient(135deg, #D4AF37 0%, #F4D03F 100%);
  color: #FFFFFF;
  border: none;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  margin-bottom: 20px;
  transition: transform 0.2s, box-shadow 0.2s;
}

.dashboard-diary-new:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(212, 175, 55, 0.3);
}

.dashboard-diary-new svg {
  fill: #FFFFFF;
}

/* Diary Form */
.dashboard-diary-form {
  background: #FFFFFF;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dashboard-diary-form--hidden {
  display: none;
}

.dashboard-form__upload--diary {
  width: 100%;
}

.dashboard-form__upload-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 40px 20px;
  border: 2px dashed #E5E5E5;
  border-radius: 12px;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}

.dashboard-form__upload-area:hover {
  border-color: #D4AF37;
  background: #FFFEF5;
}

.dashboard-form__upload-area span {
  font-size: 14px;
  color: #666666;
}

/* Diary List */
.dashboard-diaries {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dashboard-diaries--hidden {
  display: none;
}

/* Diary Item */
.dashboard-diary-item {
  display: flex;
  gap: 12px;
  background: #FFFFFF;
  border-radius: 12px;
  padding: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dashboard-diary-item__image {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  border-radius: 8px;
  overflow: hidden;
}

.dashboard-diary-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dashboard-diary-item__content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.dashboard-diary-item__title {
  font-size: 14px;
  font-weight: 600;
  color: #333333;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-diary-item__excerpt {
  font-size: 12px;
  color: #666666;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.dashboard-diary-item__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: auto;
}

.dashboard-diary-item__date {
  font-size: 11px;
  color: #999999;
}

.dashboard-diary-item__status {
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 4px;
  font-weight: 500;
}

.dashboard-diary-item__status--published {
  background: #E8F5E9;
  color: #2E7D32;
}

.dashboard-diary-item__status--draft {
  background: #FFF3E0;
  color: #EF6C00;
}

.dashboard-diary-item__status--trash {
  background: #FFEBEE;
  color: #C62828;
}

.dashboard-diary-item--trash {
  opacity: 0.7;
}

.dashboard-diary-item--trash:hover {
  opacity: 1;
}

.dashboard-diary-item__actions {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-end;
}

.dashboard-diary-item__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: #F5F5F5;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  color: #666666;
  transition: background 0.2s, color 0.2s;
}

.dashboard-diary-item__btn:hover {
  background: #E8E8E8;
  color: #333333;
}

.dashboard-diary-item__btn--danger:hover {
  background: #FFEBEE;
  color: #D32F2F;
}

/* ========================================
   Dashboard PC Sidebar
   ======================================== */

.dashboard-sidebar {
  display: none;
}

@media (min-width: 768px) {
  .dashboard-sidebar {
    display: block;
    position: fixed;
    top: 64px;
    left: 0;
    width: 280px;
    height: calc(100vh - 64px);
    background: #FFFFFF;
    border-right: 1px solid #E5E5E5;
    overflow-y: auto;
    z-index: 100;
  }

  .dashboard-sidebar__inner {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 24px 16px;
  }

  .dashboard-sidebar__user {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 20px;
    border-bottom: 1px solid #E5E5E5;
    margin-bottom: 20px;
  }

  .dashboard-sidebar__avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
  }

  .dashboard-sidebar__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .dashboard-sidebar__avatar--noimage {
    background-color: #F5F5F5;
    background-image: url(../assets/images/placeholders/placeholder.svg);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
  }

  .dashboard-sidebar__avatar--noimage img {
    display: none;
  }

  .dashboard-sidebar__user-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
  }

  .dashboard-sidebar__name {
    font-size: 14px;
    font-weight: 600;
    color: #333333;
  }

  .dashboard-sidebar__preview {
    font-size: 12px;
    color: #D4AF37;
    text-decoration: none;
  }

  .dashboard-sidebar__preview:hover {
    text-decoration: underline;
  }

  /* Sidebar Status Toggle */
  .dashboard-sidebar__status {
    margin: 16px 0;
    padding: 12px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid #e9ecef;
  }

  .dashboard-sidebar__status-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }

  .dashboard-sidebar__status-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
  }

  .dashboard-sidebar__status-label {
    font-size: 11px;
    color: #6c757d;
    font-weight: 500;
  }

  .dashboard-sidebar__status-value {
    font-size: 13px;
    font-weight: 600;
  }

  .dashboard-sidebar__status-value--published {
    color: #28a745;
  }

  .dashboard-sidebar__status-value--draft {
    color: #dc3545;
  }

  .dashboard-toggle--sidebar {
    flex-shrink: 0;
  }

  /* 2-Column Navigation */
  .dashboard-sidebar__nav {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    margin-bottom: auto;
  }

  .dashboard-sidebar__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 16px 8px;
    background: #F9F9F9;
    border: 1px solid transparent;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
    position: relative;
  }

  .dashboard-sidebar__item span {
    font-size: 11px;
    font-weight: 500;
    color: #666666;
  }

  .dashboard-sidebar__item svg {
    color: #999999;
    fill: #999999;
  }

  .dashboard-sidebar__item:hover {
    background: #F0EDE5;
    border-color: #D4AF37;
  }

  .dashboard-sidebar__item:hover span {
    color: #333333;
  }

  .dashboard-sidebar__item:hover svg {
    color: #D4AF37;
    fill: #D4AF37;
  }

  .dashboard-sidebar__item--active {
    background: linear-gradient(135deg, #D4AF37 0%, #F4D03F 100%);
    border-color: #D4AF37;
  }

  .dashboard-sidebar__item--active span {
    color: #FFFFFF;
  }

  .dashboard-sidebar__item--active svg {
    color: #FFFFFF;
    fill: #FFFFFF;
  }

  .dashboard-sidebar__item .dashboard-sidebar__badge {
    position: absolute;
    top: 8px;
    right: 8px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    background: #D32F2F;
    color: #FFFFFF;
    font-size: 10px;
    font-weight: 600;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .dashboard-sidebar__item--active .dashboard-sidebar__badge {
    background: #D32F2F;
    color: #FFFFFF;
  }

  .dashboard-sidebar__logout {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px;
    background: transparent;
    border: 1px solid #E5E5E5;
    border-radius: 8px;
    cursor: pointer;
    color: #666666;
    font-size: 14px;
    transition: all 0.2s;
  }

  .dashboard-sidebar__logout:hover {
    background: #FFEBEE;
    border-color: #D32F2F;
    color: #D32F2F;
  }

  .dashboard-sidebar__logout svg {
    stroke: currentColor;
  }

  /* Hide bottom nav on PC */
  .dashboard-nav {
    display: none;
  }

  /* Adjust main content for sidebar */
  .dashboard-body {
    padding-bottom: 0;
  }

  .dashboard-main {
    margin-left: 280px;
    max-width: none;
    padding: 24px 32px;
  }

  .dashboard-section {
    max-width: 800px;
    margin: 0 auto;
  }
}

@media (min-width: 1024px) {
  .dashboard-sidebar {
    width: 300px;
  }

  .dashboard-main {
    margin-left: 300px;
    padding: 32px 48px;
  }

  .dashboard-diary-item {
    gap: 16px;
    padding: 16px;
  }

  .dashboard-diary-item__image {
    width: 100px;
    height: 100px;
  }

  .dashboard-diary-item__title {
    font-size: 15px;
  }

  .dashboard-diary-item__excerpt {
    font-size: 13px;
  }

  .dashboard-diary-item__actions {
    flex-direction: row;
    align-items: center;
    gap: 8px;
  }
}

/* ========================================
   Dashboard Rich Text Editor
   ======================================== */

.dashboard-editor {
  border: 1px solid #E5E5E5;
  border-radius: 12px;
  overflow: hidden;
  background: #FFFFFF;
}

.dashboard-editor__toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  padding: 8px 12px;
  background: #F9F9F9;
  border-bottom: 1px solid #E5E5E5;
}

.dashboard-editor__toolbar-group {
  display: flex;
  gap: 2px;
}

.dashboard-editor__toolbar-divider {
  width: 1px;
  height: 24px;
  background: #E5E5E5;
  margin: 0 4px;
}

.dashboard-editor__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  color: #666666;
  transition: all 0.2s;
}

.dashboard-editor__btn:hover {
  background: #E8E8E8;
  color: #333333;
}

.dashboard-editor__btn--active {
  background: #D4AF37;
  color: #FFFFFF;
}

.dashboard-editor__btn--active:hover {
  background: #C9A032;
  color: #FFFFFF;
}

.dashboard-editor__btn span {
  font-size: 12px;
  font-weight: 700;
}

.dashboard-editor__btn svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
}

.dashboard-editor__content {
  min-height: 200px;
  padding: 16px;
  font-size: 14px;
  line-height: 1.8;
  color: #333333;
  outline: none;
}

.dashboard-editor__content:empty:not(:focus)::before {
  content: attr(data-placeholder);
  color: #999999;
}

.dashboard-editor__content:focus {
  background: #FFFEF5;
}

/* Editor Content Styles */
.dashboard-editor__content h2 {
  font-size: 20px;
  font-weight: 700;
  margin: 16px 0 8px;
  color: #333333;
}

.dashboard-editor__content h3 {
  font-size: 17px;
  font-weight: 600;
  margin: 14px 0 6px;
  color: #333333;
}

.dashboard-editor__content p {
  margin: 0 0 12px;
}

.dashboard-editor__content ul,
.dashboard-editor__content ol {
  margin: 12px 0;
  padding-left: 24px;
}

.dashboard-editor__content li {
  margin-bottom: 4px;
}

.dashboard-editor__content a {
  color: #D4AF37;
  text-decoration: underline;
}

.dashboard-editor__content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  margin: 12px 0;
}

.dashboard-editor__content hr {
  border: none;
  border-top: 1px solid #E5E5E5;
  margin: 20px 0;
}

.dashboard-editor__content strong,
.dashboard-editor__content b {
  font-weight: 700;
}

.dashboard-editor__content em,
.dashboard-editor__content i {
  font-style: italic;
}

/* Responsive Editor */
@media (min-width: 768px) {
  .dashboard-editor__toolbar {
    flex-wrap: nowrap;
    gap: 8px;
    padding: 10px 16px;
  }

  .dashboard-editor__toolbar-group {
    gap: 4px;
  }

  .dashboard-editor__toolbar-divider {
    margin: 0 8px;
  }

  .dashboard-editor__btn {
    width: 36px;
    height: 36px;
  }

  .dashboard-editor__content {
    min-height: 300px;
    padding: 20px;
    font-size: 15px;
  }
}

/* ========================================
   Dashboard Owner Styles
   ======================================== */

/* Owner Header */
.dashboard-header__shop {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dashboard-header__shop-label {
  font-size: 10px;
  color: #999999;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.dashboard-header__shop-name {
  font-size: 14px;
  font-weight: 600;
  color: #333333;
}

/* Header Shop Dropdown */
.dashboard-header__shop-dropdown {
  position: relative;
}

.dashboard-header__shop-trigger {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0;
  border: none;
  background: none;
  font-size: 14px;
  font-weight: 600;
  color: #333333;
  cursor: pointer;
  transition: color 0.2s ease;
}

.dashboard-header__shop-trigger:hover {
  color: #02c1d4;
}

.dashboard-header__shop-trigger svg {
  transition: transform 0.2s ease;
}

.dashboard-header__shop-dropdown.is-open .dashboard-header__shop-trigger svg {
  transform: rotate(180deg);
}

.dashboard-header__shop-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 200px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  padding: 8px 0;
  margin-top: 8px;
  z-index: 1000;
  display: none;
}

.dashboard-header__shop-dropdown.is-open .dashboard-header__shop-menu {
  display: block;
}

.dashboard-header__shop-menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  font-size: 13px;
  color: #333;
}

.dashboard-header__shop-menu-item svg {
  color: #999;
  flex-shrink: 0;
}

/* Sidebar Shop Dropdown */
.dashboard-sidebar__shop-dropdown {
  position: relative;
}

.dashboard-sidebar__shop-trigger {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0;
  border: none;
  background: none;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  cursor: pointer;
  transition: opacity 0.2s ease;
  text-align: left;
}

.dashboard-sidebar__shop-trigger:hover {
  opacity: 0.8;
}

.dashboard-sidebar__shop-trigger .dashboard-sidebar__name {
  margin: 0;
}

.dashboard-sidebar__shop-trigger svg {
  color: rgba(255, 255, 255, 0.7);
  transition: transform 0.2s ease;
}

.dashboard-sidebar__shop-dropdown.is-open .dashboard-sidebar__shop-trigger svg {
  transform: rotate(180deg);
}

.dashboard-sidebar__shop-menu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 200px;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  padding: 8px 0;
  margin-top: 8px;
  z-index: 1000;
  display: none;
}

.dashboard-sidebar__shop-dropdown.is-open .dashboard-sidebar__shop-menu {
  display: block;
}

.dashboard-sidebar__shop-menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  font-size: 13px;
  color: #333;
}

.dashboard-sidebar__shop-menu-item svg {
  color: #999;
  flex-shrink: 0;
}

/* Owner Welcome */
.dashboard-welcome--owner {
  background: linear-gradient(135deg, #F0EDE5 0%, #FBF9F4 100%);
  border: 1px solid #E5E0D5;
  padding: 20px;
}

.dashboard-welcome--owner .dashboard-welcome__content {
  width: 100%;
}

.dashboard-welcome--owner .dashboard-welcome__role {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  color: #918461;
  background: #fff;
  padding: 4px 10px;
  border-radius: 4px;
  margin-bottom: 8px;
}

.dashboard-welcome--owner .dashboard-welcome__shops-count {
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  margin: 0 0 12px 0;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.dashboard-welcome--owner .dashboard-welcome__shops-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dashboard-welcome--owner .dashboard-welcome__shop-chip {
  font-size: 12px;
  color: #666;
  background: rgba(255, 255, 255, 0.8);
  padding: 6px 12px;
  border-radius: 20px;
  border: 1px solid #E5E0D5;
}

.dashboard-welcome--owner .dashboard-welcome__name {
  font-size: 20px;
  font-weight: 700;
  color: #333333;
  margin: 0;
}

.dashboard-welcome__icon {
  width: 56px;
  height: 56px;
  background: linear-gradient(135deg, #D4AF37 0%, #F4D03F 100%);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dashboard-welcome__icon svg {
  fill: #FFFFFF;
}

/* Owner Stats */
.dashboard-stats__icon--therapists {
  background: #E3F2FD;
  color: #1976D2;
}

/* Owner Filter */
.dashboard-owner-filter {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 20px;
}

.dashboard-owner-filter__search {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  border-radius: 8px;
  width: 100%;
}

.dashboard-owner-filter__search svg {
  color: #999999;
  flex-shrink: 0;
}

.dashboard-owner-filter__search input {
  flex: 1;
  border: none;
  outline: none;
  font-size: 14px;
  background: transparent;
  min-width: 0;
}

.dashboard-owner-filter__select {
  width: 100%;
}

.dashboard-owner-filter__select--wide {
  width: 100%;
}

.dashboard-owner-filter__select select {
  padding: 10px 32px 10px 14px;
  border: 1px solid #E5E5E5;
  border-radius: 8px;
  font-size: 14px;
  background: #FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='%23666'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right 10px center;
  appearance: none;
  cursor: pointer;
  width: 100%;
}

@media (min-width: 480px) {
  .dashboard-owner-filter {
    flex-direction: row;
    gap: 12px;
  }

  .dashboard-owner-filter__search {
    flex: 1;
    width: auto;
  }

  .dashboard-owner-filter__select {
    flex-shrink: 0;
    width: auto;
  }

  .dashboard-owner-filter__select--wide {
    flex: 1;
    max-width: 200px;
  }
}

/* Therapist Mini List (Overview) */
.dashboard-owner-therapists-mini {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dashboard-owner-therapist-mini {
  display: flex;
  align-items: center;
  gap: 12px;
}

.dashboard-owner-therapist-mini img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
}

.dashboard-owner-therapist-mini__info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dashboard-owner-therapist-mini__name {
  font-size: 14px;
  font-weight: 600;
  color: #333333;
}

.dashboard-owner-therapist-mini__status {
  font-size: 11px;
  padding: 2px 6px;
  border-radius: 4px;
  display: inline-block;
  width: fit-content;
}

.dashboard-owner-therapist-mini__status--active {
  background: #E8F5E9;
  color: #2E7D32;
}

.dashboard-owner-therapist-mini__status--draft {
  background: #FFF3E0;
  color: #EF6C00;
}

.dashboard-owner-therapist-mini__views {
  font-size: 12px;
  color: #666666;
  font-weight: 500;
}

/* Pending Reviews (Overview) */
.dashboard-owner-pending {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 12px;
}

.dashboard-owner-pending__item {
  display: flex;
  align-items: center;
  gap: 12px;
}

.dashboard-owner-pending__item img {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
}

.dashboard-owner-pending__info {
  flex: 1;
  min-width: 0;
}

.dashboard-owner-pending__therapist {
  font-size: 12px;
  font-weight: 600;
  color: #333333;
  display: block;
}

.dashboard-owner-pending__text {
  font-size: 12px;
  color: #666666;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-owner-pending__date {
  font-size: 11px;
  color: #999999;
  flex-shrink: 0;
}

/* Therapist List */
.dashboard-owner-therapists {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dashboard-owner-therapist {
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: #FFFFFF;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dashboard-owner-therapist__main {
  display: flex;
  gap: 12px;
}

.dashboard-owner-therapist__avatar {
  position: relative;
  flex-shrink: 0;
}

.dashboard-owner-therapist__avatar img {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  object-fit: cover;
}

.dashboard-owner-therapist__rank {
  position: absolute;
  bottom: -4px;
  right: -4px;
  width: 22px;
  height: 22px;
  background: linear-gradient(135deg, #D4AF37 0%, #F4D03F 100%);
  color: #FFFFFF;
  font-size: 11px;
  font-weight: 700;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #FFFFFF;
}

.dashboard-owner-therapist__info {
  flex: 1;
  min-width: 0;
}

.dashboard-owner-therapist__name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

.dashboard-owner-therapist__name {
  font-size: 16px;
  font-weight: 600;
  color: #333333;
  margin: 0;
}

.dashboard-owner-therapist__status {
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 4px;
  font-weight: 500;
}

.dashboard-owner-therapist__status--active {
  background: #E8F5E9;
  color: #2E7D32;
}

.dashboard-owner-therapist__status--draft {
  background: #FFF3E0;
  color: #EF6C00;
}

.dashboard-owner-therapist__area {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 500;
  background: #F5F5F5;
  color: #666666;
}

.dashboard-owner-therapist__meta {
  font-size: 12px;
  color: #666666;
  margin-bottom: 8px;
}

.dashboard-owner-therapist__stats {
  display: flex;
  gap: 12px;
}

.dashboard-owner-therapist__stat {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: #666666;
}

.dashboard-owner-therapist__stat svg {
  fill: #999999;
}

.dashboard-owner-therapist__stat--rating svg {
  fill: #FFD700;
}

.dashboard-owner-therapist__actions {
  display: flex;
  gap: 8px;
  padding-top: 12px;
  border-top: 1px solid #F0F0F0;
}

.dashboard-owner-therapist__btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px;
  background: #F5F5F5;
  border: none;
  border-radius: 8px;
  font-size: 13px;
  color: #666666;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.2s;
}

.dashboard-owner-therapist__btn:hover {
  background: #E8E8E8;
  color: #333333;
}

.dashboard-owner-therapist__btn--edit {
  background: linear-gradient(135deg, #D4AF37 0%, #F4D03F 100%);
  color: #FFFFFF;
}

.dashboard-owner-therapist__btn--edit:hover {
  background: linear-gradient(135deg, #C9A032 0%, #E8C434 100%);
  color: #FFFFFF;
}

.dashboard-owner-therapist__btn--edit svg {
  stroke: #FFFFFF;
}

/* Owner Reviews */
.dashboard-owner-reviews {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dashboard-owner-review {
  background: #FFFFFF;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dashboard-owner-review__therapist {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid #F0F0F0;
}

.dashboard-owner-review__therapist img {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
}

.dashboard-owner-review__therapist span {
  font-size: 13px;
  font-weight: 600;
  color: #333333;
}

.dashboard-owner-review__content {
  margin-bottom: 12px;
}

.dashboard-owner-review__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.dashboard-owner-review__stars {
  display: flex;
  gap: 2px;
}

.dashboard-owner-review__date {
  font-size: 12px;
  color: #999999;
}

.dashboard-owner-review__status {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 4px;
  margin-left: auto;
  margin-right: 8px;
}

.dashboard-owner-review__status--pending {
  background: #FFF3E0;
  color: #E65100;
}

.dashboard-owner-review__status--approved {
  background: #E8F5E9;
  color: #2E7D32;
}

.dashboard-owner-review__status--rejected {
  background: #FFEBEE;
  color: #C62828;
}

.dashboard-owner-review__text {
  font-size: 14px;
  color: #333333;
  line-height: 1.6;
  margin: 0 0 8px;
}

.dashboard-owner-review__author {
  font-size: 12px;
  color: #666666;
}

.dashboard-owner-review__actions {
  display: flex;
  gap: 8px;
}

/* Owner Review Reply */
.dashboard-owner-review__reply {
  margin-top: 12px;
  padding: 12px;
  background: #F8F6F3;
  border-radius: 8px;
  border-left: 3px solid #918461;
}

.dashboard-owner-review__reply-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.dashboard-owner-review__reply-label {
  font-size: 12px;
  font-weight: 600;
  color: #918461;
}

.dashboard-owner-review__reply-date {
  font-size: 11px;
  color: #999999;
}

.dashboard-owner-review__reply-text {
  font-size: 13px;
  color: #333333;
  line-height: 1.6;
  margin: 0 0 8px;
}

.dashboard-owner-review__reply-actions {
  display: flex;
  gap: 8px;
}

/* Owner Review Reply Form */
.dashboard-owner-review__reply-form {
  margin-top: 12px;
  padding: 12px;
  background: #F8F8F8;
  border-radius: 8px;
}

.dashboard-owner-review__reply-form--hidden {
  display: none;
}

.dashboard-owner-review__reply-form-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

/* Period Filter */
.dashboard-owner-period {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.dashboard-owner-period__btn {
  padding: 8px 16px;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  border-radius: 20px;
  font-size: 13px;
  color: #666666;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s;
}

.dashboard-owner-period__btn:hover {
  border-color: #D4AF37;
  color: #D4AF37;
}

.dashboard-owner-period__btn--active {
  background: linear-gradient(135deg, #D4AF37 0%, #F4D03F 100%);
  border-color: #D4AF37;
  color: #FFFFFF;
}

/* Stats Change */
.dashboard-stats__change {
  font-size: 11px;
  font-weight: 600;
  margin-top: 4px;
}

.dashboard-stats__change--up {
  color: #2E7D32;
}

.dashboard-stats__change--down {
  color: #D32F2F;
}

/* Owner Ranking */
.dashboard-owner-ranking {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dashboard-owner-ranking__item {
  display: flex;
  align-items: center;
  gap: 12px;
}

.dashboard-owner-ranking__rank {
  width: 24px;
  height: 24px;
  background: #F0EDE5;
  color: #D4AF37;
  font-size: 12px;
  font-weight: 700;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dashboard-owner-ranking__item:first-child .dashboard-owner-ranking__rank {
  background: linear-gradient(135deg, #D4AF37 0%, #F4D03F 100%);
  color: #FFFFFF;
}

.dashboard-owner-ranking__item img {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
}

.dashboard-owner-ranking__name {
  flex: 1;
  font-size: 14px;
  font-weight: 500;
  color: #333333;
}

.dashboard-owner-ranking__value {
  font-size: 13px;
  font-weight: 600;
  color: #666666;
}

/* Dashboard Notice */
.dashboard-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: #FFF8E1;
  border: 1px solid #FFE082;
  border-radius: 8px;
  margin-bottom: 16px;
}

.dashboard-notice svg {
  color: #F9A825;
  flex-shrink: 0;
}

.dashboard-notice span {
  font-size: 13px;
  color: #5D4037;
}

/* Dashboard Shop Info (Read-only) */
.dashboard-shop-info {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.dashboard-shop-info__logo {
  width: 80px;
  height: 80px;
  background: #F5F5F5;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
}

.dashboard-shop-info__names {
  display: flex;
  gap: 12px;
}

.dashboard-shop-info__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px;
  background: #F5F5F5;
  border-radius: 8px;
}

.dashboard-shop-info__details {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.dashboard-shop-info__row {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.dashboard-shop-info__label {
  font-size: 12px;
  color: #888888;
  font-weight: 500;
}

.dashboard-shop-info__value {
  font-size: 15px;
  font-weight: 600;
  color: #333333;
}

.dashboard-shop-info__text {
  font-size: 14px;
  color: #333333;
  line-height: 1.6;
  margin: 0;
}

.dashboard-shop-info__link {
  font-size: 14px;
  color: #918461;
  text-decoration: none;
}

.dashboard-shop-info__link:hover {
  text-decoration: underline;
}

/* Section Header */
.dashboard-section__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.dashboard-section__header .dashboard-section__title {
  margin-bottom: 0;
}

.dashboard-section__link {
  font-size: 14px;
  color: #02C1D4;
  text-decoration: none;
  font-weight: 500;
}

.dashboard-section__link:hover {
  text-decoration: underline;
}

/* Modal */
.dashboard-modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
}

.dashboard-modal--open {
  display: flex;
}

.dashboard-modal__overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
}

.dashboard-modal__container {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  background: #FFFFFF;
}

.dashboard-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  background: #FFFFFF;
  border-bottom: 1px solid #E5E5E5;
}

.dashboard-modal__therapist {
  display: flex;
  align-items: center;
  gap: 10px;
}

.dashboard-modal__therapist img {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
}

.dashboard-modal__therapist span {
  font-size: 15px;
  font-weight: 600;
  color: #333333;
}

.dashboard-modal__close {
  background: none;
  border: none;
  color: #666666;
  cursor: pointer;
  padding: 4px;
}

.dashboard-modal__close:hover {
  color: #333333;
}

.dashboard-modal__body {
  flex: 1;
  overflow: hidden;
}

.dashboard-modal__body iframe {
  width: 100%;
  height: 100%;
}

/* Owner Sidebar */
.dashboard-sidebar--owner .dashboard-sidebar__avatar--shop {
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, #D4AF37 0%, #F4D03F 100%);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dashboard-sidebar--owner .dashboard-sidebar__avatar--shop svg {
  fill: #FFFFFF;
}

.dashboard-sidebar__role {
  font-size: 11px;
  color: #999999;
}

/* Responsive */
@media (min-width: 768px) {
  .dashboard-owner-therapist {
    flex-direction: row;
    align-items: center;
  }

  .dashboard-owner-therapist__main {
    flex: 1;
  }

  .dashboard-owner-therapist__actions {
    flex-direction: column;
    padding-top: 0;
    border-top: none;
    border-left: 1px solid #F0F0F0;
    padding-left: 16px;
  }

  .dashboard-owner-therapist__btn {
    flex: none;
    padding: 8px 16px;
  }

  .dashboard-modal__container {
    width: 90%;
    max-width: 900px;
    height: 90%;
    margin: auto;
    border-radius: 16px;
    overflow: hidden;
  }
}

@media (min-width: 1024px) {
  .dashboard-owner-therapist__avatar img {
    width: 72px;
    height: 72px;
  }

  .dashboard-owner-therapist__name {
    font-size: 18px;
  }

  .dashboard-owner-therapist__stats {
    gap: 20px;
  }

  .dashboard-owner-therapist__stat {
    font-size: 13px;
  }
}

/* ========================================
   Dashboard Manager Styles
   ======================================== */

.dashboard-stats__icon--therapists {
  background: rgba(52, 152, 219, 0.1);
  color: #3498DB;
}

/* Quick Actions */
.dashboard-quick-actions {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 32px;
}

@media (min-width: 768px) {
  .dashboard-quick-actions {
    grid-template-columns: repeat(4, 1fr);
  }
}

.dashboard-quick-action {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 20px 16px;
  background: #fff;
  border: 1px solid #E5E5E5;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
}

.dashboard-quick-action:hover {
  border-color: #C4A962;
  box-shadow: 0 4px 12px rgba(196, 169, 98, 0.15);
}

.dashboard-quick-action__icon {
  width: 48px;
  height: 48px;
  background: #F8F6F0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #918461;
}

.dashboard-quick-action__label {
  font-size: 13px;
  font-weight: 500;
  color: #333;
  text-align: center;
}

.dashboard-quick-action__badge {
  position: absolute;
  top: 12px;
  right: 12px;
  background: #E74C3C;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 10px;
}

/* Manager Ranking */
.dashboard-manager-ranking {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 24px;
}

.dashboard-manager-ranking__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #F0F0F0;
}

.dashboard-manager-ranking__item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.dashboard-manager-ranking__item:first-child {
  padding-top: 0;
}

.dashboard-manager-ranking__rank {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
  background: #E5E5E5;
  color: #666;
}

.dashboard-manager-ranking__rank--1 {
  background: linear-gradient(135deg, #FFD700, #FFA500);
  color: #fff;
}

.dashboard-manager-ranking__rank--2 {
  background: linear-gradient(135deg, #C0C0C0, #A0A0A0);
  color: #fff;
}

.dashboard-manager-ranking__rank--3 {
  background: linear-gradient(135deg, #CD7F32, #B87333);
  color: #fff;
}

.dashboard-manager-ranking__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.dashboard-manager-ranking__avatar--placeholder {
  background: #F5F5F5;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
}

.dashboard-manager-ranking__info {
  flex: 1;
  min-width: 0;
}

.dashboard-manager-ranking__name {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #333;
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dashboard-manager-ranking__area {
  font-size: 12px;
  font-weight: 400;
  color: #888;
  margin-left: 4px;
}

.dashboard-manager-ranking__stats {
  display: block;
  font-size: 12px;
  color: #888;
}

/* Activity */
.dashboard-activity {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
}

.dashboard-activity__item {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid #F0F0F0;
}

.dashboard-activity__item:last-child {
  border-bottom: none;
}

.dashboard-activity__icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.dashboard-activity__icon--review {
  background: rgba(196, 169, 98, 0.1);
  color: #C4A962;
}

.dashboard-activity__icon--profile {
  background: rgba(52, 152, 219, 0.1);
  color: #3498DB;
}

.dashboard-activity__icon--schedule {
  background: rgba(46, 204, 113, 0.1);
  color: #2ECC71;
}

.dashboard-activity__icon--new {
  background: rgba(155, 89, 182, 0.1);
  color: #9B59B6;
}

.dashboard-activity__content {
  flex: 1;
}

.dashboard-activity__text {
  font-size: 14px;
  color: #333;
  margin: 0 0 4px;
}

.dashboard-activity__time {
  font-size: 12px;
  color: #999;
}

/* Filter Bar */
.dashboard-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 20px;
}

.dashboard-filter__search {
  flex: 1;
  min-width: 200px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: #fff;
  border: 1px solid #E5E5E5;
  border-radius: 8px;
}

.dashboard-filter__search svg {
  color: #999;
  flex-shrink: 0;
}

.dashboard-filter__input {
  flex: 1;
  border: none;
  font-size: 14px;
  color: #333;
  outline: none;
}

.dashboard-filter__input::placeholder {
  color: #999;
}

.dashboard-filter__select {
  padding: 10px 14px;
  background: #fff;
  border: 1px solid #E5E5E5;
  border-radius: 8px;
  font-size: 14px;
  color: #333;
  cursor: pointer;
}

/* Therapist List */
.dashboard-therapist-list {
  display: grid;
  gap: 16px;
  margin-bottom: 24px;
}

@media (min-width: 768px) {
  .dashboard-therapist-list {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Therapist Card */
.dashboard-therapist-card {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  border: 1px solid #E5E5E5;
}

.dashboard-therapist-card--inactive {
  opacity: 0.7;
}

.dashboard-therapist-card__header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.dashboard-therapist-card__avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
}

.dashboard-therapist-card__info {
  flex: 1;
}

.dashboard-therapist-card__name {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin: 0 0 4px;
}

.dashboard-therapist-card__id {
  font-size: 12px;
  color: #999;
}

.dashboard-therapist-card__area {
  font-size: 12px;
  color: #918461;
}

.dashboard-therapist-card__status {
  font-size: 12px;
  font-weight: 500;
  padding: 4px 10px;
  border-radius: 12px;
}

.dashboard-therapist-card__status--active {
  background: rgba(46, 204, 113, 0.1);
  color: #2ECC71;
}

.dashboard-therapist-card__status--pending {
  background: rgba(241, 196, 15, 0.1);
  color: #F1C40F;
}

.dashboard-therapist-card__status--inactive {
  background: rgba(149, 165, 166, 0.1);
  color: #95A5A6;
}

.dashboard-therapist-card__stats {
  display: flex;
  gap: 16px;
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid #F0F0F0;
}

.dashboard-therapist-card__stat {
  text-align: center;
}

.dashboard-therapist-card__stat-value {
  display: block;
  font-size: 18px;
  font-weight: 600;
  color: #333;
}

.dashboard-therapist-card__stat-label {
  font-size: 11px;
  color: #999;
}

.dashboard-therapist-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 16px;
}

.dashboard-therapist-card__tag {
  font-size: 11px;
  padding: 4px 10px;
  background: #F8F6F0;
  color: #918461;
  border-radius: 12px;
}

.dashboard-therapist-card__actions {
  display: flex;
  gap: 8px;
}

.dashboard-therapist-card__menu {
  margin-left: auto;
}

/* Pagination */
.dashboard-pagination {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

@media (min-width: 768px) {
  .dashboard-pagination {
    flex-direction: row;
    justify-content: center;
  }
}

.dashboard-pagination__info {
  font-size: 14px;
  color: #666;
}

.dashboard-pagination__controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.dashboard-pagination__btn {
  padding: 8px 16px;
  background: #fff;
  border: 1px solid #E5E5E5;
  border-radius: 6px;
  font-size: 14px;
  color: #333;
  cursor: pointer;
}

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

.dashboard-pagination__page {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  color: #666;
  cursor: pointer;
}

.dashboard-pagination__page--active {
  background: #C4A962;
  color: #fff;
  border-radius: 6px;
}

/* WordPress paginate_links() styles */
.dashboard-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 12px;
  background: #fff;
  border: 1px solid #E5E5E5;
  border-radius: 6px;
  font-size: 14px;
  color: #333;
  text-decoration: none;
  transition: all 0.2s ease;
}

.dashboard-pagination .page-numbers:hover {
  border-color: #C4A962;
  color: #C4A962;
}

.dashboard-pagination .page-numbers.current {
  background: #C4A962;
  border-color: #C4A962;
  color: #fff;
}

.dashboard-pagination .page-numbers.dots {
  background: transparent;
  border: none;
  color: #666;
}

.dashboard-pagination .page-numbers.prev,
.dashboard-pagination .page-numbers.next {
  font-weight: 600;
}

.dashboard-pagination .page-numbers.prev:hover,
.dashboard-pagination .page-numbers.next:hover {
  background: #f8f8f8;
}

/* Analytics Period */
.dashboard-analytics-period {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.dashboard-analytics-period__btn {
  padding: 8px 16px;
  background: #fff;
  border: 1px solid #E5E5E5;
  border-radius: 20px;
  font-size: 14px;
  color: #666;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s ease;
}

.dashboard-analytics-period__btn:hover {
  border-color: #C4A962;
}

.dashboard-analytics-period__btn--active {
  background: #C4A962;
  border-color: #C4A962;
  color: #fff;
}

/* Analytics Summary */
.dashboard-analytics-summary {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 24px;
}

@media (min-width: 768px) {
  .dashboard-analytics-summary {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* 3 column layout for summary (default on desktop) */
@media (min-width: 768px) {
  .dashboard-analytics-summary {
    grid-template-columns: repeat(3, 1fr);
  }
}

.dashboard-analytics-card {
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  border: 1px solid #E5E5E5;
}

.dashboard-analytics-card__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.dashboard-analytics-card__title {
  font-size: 13px;
  color: #666;
}

.dashboard-analytics-card__change {
  font-size: 12px;
  font-weight: 600;
}

.dashboard-analytics-card__change--up {
  color: #2ECC71;
}

.dashboard-analytics-card__change--down {
  color: #E74C3C;
}

.dashboard-analytics-card__value {
  display: block;
  font-size: 28px;
  font-weight: 700;
  color: #333;
  margin-bottom: 4px;
}

.dashboard-analytics-card__compare {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #999;
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px dashed #eee;
}

.dashboard-analytics-card__compare-label {
  color: #999;
}

.dashboard-analytics-card__compare-value {
  color: #666;
  font-weight: 500;
}

.dashboard-analytics-card__compare-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 1px 5px;
  border-radius: 3px;
  margin-left: auto;
}

.dashboard-analytics-card__compare-badge--up {
  background: #E8F5E9;
  color: #2E7D32;
}

.dashboard-analytics-card__compare-badge--down {
  background: #FFEBEE;
  color: #C62828;
}

.dashboard-analytics-card__compare-badge--neutral {
  background: #F5F5F5;
  color: #999;
}

/* Therapist Detail Stats Section */
.dashboard-therapist-detail {
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 24px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.dashboard-therapist-detail__title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin: 0 0 4px 0;
}

.dashboard-therapist-detail__subtitle {
  font-size: 13px;
  color: #999;
  margin: 0 0 16px 0;
}

.dashboard-therapist-detail__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

@media (min-width: 768px) {
  .dashboard-therapist-detail__grid {
    grid-template-columns: repeat(5, 1fr);
  }
}

.dashboard-therapist-detail__item {
  background: #f8f9fa;
  border-radius: 8px;
  padding: 12px;
}

.dashboard-therapist-detail__item-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.dashboard-therapist-detail__item-title {
  font-size: 12px;
  color: #666;
  font-weight: 500;
}

.dashboard-therapist-detail__item-rank {
  font-size: 11px;
  font-weight: 600;
  color: #02c1d4;
  background: #E0F7FA;
  padding: 2px 6px;
  border-radius: 4px;
}

.dashboard-therapist-detail__item-values {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 8px;
}

.dashboard-therapist-detail__item-value {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.dashboard-therapist-detail__item-label {
  font-size: 11px;
  color: #999;
}

.dashboard-therapist-detail__item-number {
  font-size: 14px;
  font-weight: 600;
  color: #333;
  display: flex;
  align-items: center;
  gap: 2px;
}

.dashboard-therapist-detail__item-number--avg {
  font-weight: 400;
  color: #666;
}

.dashboard-therapist-detail__item-diff {
  font-size: 12px;
  font-weight: 600;
  text-align: center;
  padding: 4px 8px;
  border-radius: 4px;
}

.dashboard-therapist-detail__item-diff--up {
  background: #E8F5E9;
  color: #2E7D32;
}

.dashboard-therapist-detail__item-diff--down {
  background: #FFEBEE;
  color: #C62828;
}

.dashboard-therapist-detail__item-diff--neutral {
  background: #F5F5F5;
  color: #999;
}

/* Analytics Card Percent Badge */
.dashboard-analytics-card__percent {
  font-size: 12px;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 4px;
  margin-left: auto;
}

.dashboard-analytics-card__percent--up {
  background: #E8F5E9;
  color: #2E7D32;
}

.dashboard-analytics-card__percent--down {
  background: #FFEBEE;
  color: #C62828;
}

/* Analytics Card Previous Value */
.dashboard-analytics-card__previous {
  display: block;
  font-size: 12px;
  color: #999;
  margin-top: 4px;
}

/* Analytics Card Star (for rating) */
.dashboard-analytics-card__star {
  display: inline-flex;
  align-items: center;
  margin-left: 4px;
  vertical-align: middle;
}

/* Analytics Card Unit (for count) */
.dashboard-analytics-card__unit {
  font-size: 16px;
  font-weight: 500;
  color: #666;
  margin-left: 2px;
}

/* Analytics Cards Grid */
.dashboard-analytics-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}

@media (min-width: 768px) {
  .dashboard-analytics-cards {
    grid-template-columns: repeat(4, 1fr);
  }
}

.dashboard-analytics-card__header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  color: #666;
  font-size: 13px;
}

.dashboard-analytics-card__header svg {
  color: #02c1d4;
}

/* Analytics Chart */
.dashboard-analytics-chart {
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 24px;
  border: 1px solid #E5E5E5;
}

.dashboard-analytics-chart__header {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 16px;
}

@media (min-width: 768px) {
  .dashboard-analytics-chart__header {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.dashboard-analytics-chart__title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin: 0;
}

.dashboard-analytics-chart__tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.dashboard-analytics-chart__tab {
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 500;
  color: #666;
  background: #F5F5F5;
  border: 1px solid #E5E5E5;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.dashboard-analytics-chart__tab:hover {
  background: #EEEEEE;
  color: #333;
}

.dashboard-analytics-chart__tab--active {
  background: linear-gradient(135deg, #918461 0%, #C4A962 100%);
  color: #fff;
  border-color: transparent;
}

.dashboard-analytics-chart__tab--active:hover {
  background: linear-gradient(135deg, #7a6f52 0%, #b09854 100%);
  color: #fff;
}

.dashboard-analytics-chart__placeholder {
  height: 200px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #999;
  gap: 12px;
}

.dashboard-analytics-chart__placeholder p {
  margin: 0;
  font-size: 14px;
}

.dashboard-analytics-chart__canvas-wrapper {
  height: 300px;
  position: relative;
}

@media (min-width: 768px) {
  .dashboard-analytics-chart__canvas-wrapper {
    height: 350px;
  }
}

.dashboard-analytics-chart__container {
  height: 250px;
  position: relative;
}

/* Analytics Filters */
.dashboard-analytics-filters {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

@media (min-width: 768px) {
  .dashboard-analytics-filters {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

/* Analytics Detail (for single therapist view) */
.dashboard-analytics-detail {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  padding: 16px 0;
}

@media (min-width: 768px) {
  .dashboard-analytics-detail {
    grid-template-columns: repeat(5, 1fr);
  }
}

.dashboard-analytics-detail__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 16px;
  background: #f8f8f8;
  border-radius: 8px;
}

.dashboard-analytics-detail__label {
  font-size: 12px;
  color: #666;
}

.dashboard-analytics-detail__value {
  font-size: 24px;
  font-weight: 700;
  color: #333;
}

/* Analytics Ranking */
.dashboard-analytics-ranking {
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  border: 1px solid #E5E5E5;
  margin-top: 24px;
}

.dashboard-analytics-ranking__title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin: 0 0 16px;
}

.dashboard-analytics-ranking__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dashboard-analytics-ranking__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  background: #F9F9F9;
  border-radius: 8px;
}

.dashboard-analytics-ranking__rank {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #E5E5E5;
  border-radius: 50%;
  font-size: 13px;
  font-weight: 600;
  color: #666;
  flex-shrink: 0;
}

.dashboard-analytics-ranking__item:nth-child(1) .dashboard-analytics-ranking__rank {
  background: linear-gradient(135deg, #FFD700 0%, #FFA500 100%);
  color: #fff;
}

.dashboard-analytics-ranking__item:nth-child(2) .dashboard-analytics-ranking__rank {
  background: linear-gradient(135deg, #C0C0C0 0%, #A0A0A0 100%);
  color: #fff;
}

.dashboard-analytics-ranking__item:nth-child(3) .dashboard-analytics-ranking__rank {
  background: linear-gradient(135deg, #CD7F32 0%, #B87333 100%);
  color: #fff;
}

.dashboard-analytics-ranking__image {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  object-fit: cover;
  flex-shrink: 0;
}

.dashboard-analytics-ranking__info {
  flex: 1;
  min-width: 0;
}

.dashboard-analytics-ranking__name {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #333;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dashboard-analytics-ranking__name:hover {
  color: #02c1d4;
}

.dashboard-analytics-ranking__shop {
  display: block;
  font-size: 12px;
  color: #999;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dashboard-analytics-ranking__value {
  font-size: 14px;
  font-weight: 600;
  color: #02c1d4;
  white-space: nowrap;
}

/* Analytics Loading State */
.dashboard-analytics.is-loading {
  opacity: 0.6;
  pointer-events: none;
}

/* Analytics Table */
.dashboard-analytics-table {
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  border: 1px solid #E5E5E5;
}

.dashboard-analytics-table__title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin: 0 0 16px;
}

.dashboard-table {
  width: 100%;
  border-collapse: collapse;
}

.dashboard-table th,
.dashboard-table td {
  padding: 12px 8px;
  text-align: left;
  border-bottom: 1px solid #F0F0F0;
  font-size: 14px;
}

.dashboard-table th {
  font-weight: 600;
  color: #666;
  font-size: 13px;
}

.dashboard-table td {
  color: #333;
}

.dashboard-table__user {
  display: flex;
  align-items: center;
  gap: 10px;
}

.dashboard-table__user img {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
}

.dashboard-table__user-info {
  display: flex;
  flex-direction: column;
}

.dashboard-table__user-name {
  font-weight: 500;
  color: #333;
}

.dashboard-table__user-area {
  font-size: 11px;
  color: #999;
}

.dashboard-table__change {
  font-weight: 600;
}

.dashboard-table__change--up {
  color: #2ECC71;
}

.dashboard-table__change--down {
  color: #E74C3C;
}

/* Sortable Table */
.dashboard-table__sortable {
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
  transition: color 0.2s ease;
}

.dashboard-table__sortable:hover {
  color: #333;
}

.dashboard-table__sortable--active {
  color: #02c1d4;
}

.dashboard-table__sort-icon {
  display: inline-flex;
  align-items: center;
  margin-left: 4px;
  opacity: 0.3;
  transition: all 0.2s ease;
}

.dashboard-table__sortable--active .dashboard-table__sort-icon {
  opacity: 1;
}

.dashboard-table__sortable--asc .dashboard-table__sort-icon {
  transform: rotate(180deg);
}

.dashboard-table__sortable--desc .dashboard-table__sort-icon {
  transform: rotate(0deg);
}

/* Tag Manager */
.dashboard-section__desc {
  font-size: 14px;
  color: #666;
  margin-bottom: 24px;
}

.dashboard-tag-manager {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.dashboard-tag-category {
  background: #fff;
  border-radius: 12px;
  padding: 20px;
  border: 1px solid #E5E5E5;
}

.dashboard-tag-category__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

.dashboard-tag-category__title {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin: 0;
}

.dashboard-tag-category__add {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  background: none;
  border: 1px dashed #C4A962;
  border-radius: 6px;
  font-size: 13px;
  color: #C4A962;
  cursor: pointer;
  transition: all 0.2s ease;
}

.dashboard-tag-category__add:hover {
  background: rgba(196, 169, 98, 0.1);
}

.dashboard-tag-category__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.dashboard-tag-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: #F8F6F0;
  border-radius: 8px;
}

.dashboard-tag-item__name {
  font-size: 14px;
  color: #333;
}

.dashboard-tag-item__count {
  font-size: 11px;
  color: #999;
  margin-right: 4px;
}

.dashboard-tag-item__edit,
.dashboard-tag-item__delete {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  border-radius: 4px;
  color: #999;
  cursor: pointer;
  transition: all 0.2s ease;
}

.dashboard-tag-item__edit:hover {
  background: rgba(52, 152, 219, 0.1);
  color: #3498DB;
}

.dashboard-tag-item__delete:hover {
  background: rgba(231, 76, 60, 0.1);
  color: #E74C3C;
}

.dashboard-tag-category--add {
  background: transparent;
  border: 2px dashed #E5E5E5;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100px;
}

.dashboard-tag-category__add-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 20px;
  background: none;
  border: none;
  color: #999;
  cursor: pointer;
  transition: all 0.2s ease;
}

.dashboard-tag-category__add-btn:hover {
  color: #C4A962;
}

.dashboard-tag-category__add-btn span {
  font-size: 14px;
}

/* Empty State */
.dashboard-empty {
  text-align: center;
  padding: 40px 20px;
  color: #999;
}

.dashboard-empty p {
  margin: 0;
}

/* ============================================
   Review Form (Front-end)
   ============================================ */

/* Review Summary */
.review-summary {
  margin-bottom: 24px;
  padding: 20px;
  background: #F8F8F8;
  border-radius: 12px;
}

.review-summary__rating {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.review-summary__value {
  font-family: 'Poppins', sans-serif;
  font-size: 36px;
  font-weight: 700;
  color: #333333;
  line-height: 1;
}

.review-summary__stars {
  display: flex;
  gap: 2px;
}

.review-summary__count {
  font-size: 14px;
  color: #666666;
}

/* Review Form Wrapper */
.review-form-wrapper {
  margin-top: 32px;
  padding: 24px;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  border-radius: 12px;
}

.review-form__title {
  font-size: 18px;
  font-weight: 600;
  color: #333333;
  margin: 0 0 24px 0;
  padding-bottom: 12px;
  border-bottom: 2px solid #C4A962;
}

.review-form__group {
  margin-bottom: 20px;
}

.review-form__label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #333333;
  margin-bottom: 8px;
}

.review-form__required {
  color: #E53935;
  margin-left: 2px;
}

/* Star Rating Input */
.review-form__star-rating {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  gap: 4px;
}

.review-form__star-rating input {
  display: none;
}

.review-form__star-rating label {
  cursor: pointer;
  transition: all 0.15s ease;
}

.review-form__star-rating label svg {
  fill: #E5E5E5;
  transition: fill 0.15s ease;
}

.review-form__star-rating label:hover svg,
.review-form__star-rating label:hover ~ label svg {
  fill: #FFD700;
}

.review-form__star-rating input:checked ~ label svg {
  fill: #FFD700;
}

/* Form Inputs */
.review-form__input {
  width: 100%;
  padding: 12px 16px;
  font-size: 14px;
  color: #333333;
  background: #FFFFFF;
  border: 1px solid #DDDDDD;
  border-radius: 8px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.review-form__input:focus {
  outline: none;
  border-color: #C4A962;
  box-shadow: 0 0 0 3px rgba(196, 169, 98, 0.1);
}

.review-form__input::placeholder {
  color: #999999;
}

.review-form__textarea {
  width: 100%;
  padding: 12px 16px;
  font-size: 14px;
  color: #333333;
  background: #FFFFFF;
  border: 1px solid #DDDDDD;
  border-radius: 8px;
  resize: vertical;
  min-height: 120px;
  font-family: inherit;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.review-form__textarea:focus {
  outline: none;
  border-color: #C4A962;
  box-shadow: 0 0 0 3px rgba(196, 169, 98, 0.1);
}

.review-form__textarea::placeholder {
  color: #999999;
}

.review-form__char-count {
  display: block;
  text-align: right;
  font-size: 12px;
  color: #999999;
  margin-top: 4px;
}

/* Checkbox */
.review-form__checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}

.review-form__checkbox input {
  display: none;
}

.review-form__checkbox-mark {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border: 2px solid #DDDDDD;
  border-radius: 4px;
  position: relative;
  transition: all 0.2s ease;
}

.review-form__checkbox input:checked + .review-form__checkbox-mark {
  background: #C4A962;
  border-color: #C4A962;
}

.review-form__checkbox input:checked + .review-form__checkbox-mark::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 6px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.review-form__checkbox-text {
  font-size: 14px;
  color: #666666;
  line-height: 1.5;
}

.review-form__checkbox-text a {
  color: #C4A962;
  text-decoration: underline;
}

.review-form__checkbox-text a:hover {
  color: #918461;
}

/* Submit Button */
.review-form__submit {
  width: 100%;
  padding: 14px 24px;
  font-size: 16px;
  font-weight: 600;
  margin-top: 8px;
}

.review-form__submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Message */
.review-form__message {
  margin-top: 16px;
  padding: 12px 16px;
  border-radius: 8px;
  font-size: 14px;
  text-align: center;
}

.review-form__message--success {
  background: #E8F5E9;
  color: #2E7D32;
  border: 1px solid #C8E6C9;
}

.review-form__message--error {
  background: #FFEBEE;
  color: #C62828;
  border: 1px solid #FFCDD2;
}

/* Note */
.review-form__note {
  margin-top: 16px;
  font-size: 12px;
  color: #999999;
  text-align: center;
}

/* Responsive */
@media (max-width: 767px) {
  .review-form-wrapper {
    padding: 16px;
    margin-top: 24px;
  }

  .review-form__title {
    font-size: 16px;
  }

  .review-summary__value {
    font-size: 28px;
  }

  .review-form__star-rating label svg {
    width: 28px;
    height: 28px;
  }
}

/* Review Item Reply */
.review-item__reply {
  margin-top: 16px;
  padding: 16px;
  background: #F8F7F4;
  border-radius: 8px;
  border-left: 3px solid #C4A962;
}

.review-item__reply-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.review-item__reply-label {
  font-size: 12px;
  font-weight: 600;
  color: #918461;
}

.review-item__reply-date {
  font-size: 12px;
  color: #999999;
}

.review-item__reply-text {
  font-size: 14px;
  color: #333333;
  line-height: 1.6;
  margin: 0;
}

.review-item__title {
  font-size: 15px;
  font-weight: 600;
  color: #333333;
  margin: 8px 0;
}

/* ======================
 * Noimage Placeholder Styles
 * ====================== */

/* セラピストカード - noimage */
.therapist-card__image--noimage {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #F5F5F5;
  color: #CCCCCC;
  width: 100%;
  height: 100%;
}

/* 日記カード - noimage */
.diary-card__image--noimage {
  background-color: #F5F5F5;
}

.diary-card__image--noimage img {
  object-fit: contain !important;
}

/* 日記カードアイテム - noimage */
.diary-card-item__image--noimage {
  background-color: #F5F5F5;
}

.diary-card-item__image--noimage img {
  object-fit: contain !important;
}

/* セラピスト詳細プロフィール - noimage */
.therapist-profile__image--noimage img {
  object-fit: contain !important;
  background-color: #F5F5F5;
  padding: 20px;
}

/* サイドバープロフィール - noimage */
.diary-detail-profile__image--noimage {
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: none !important;
  background-color: #F5F5F5;
  color: #CCCCCC;
}

/* ランキングカード - noimage */
.ranking-card__image--noimage {
  background-color: #F5F5F5;
}

.ranking-card__photo--noimage {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #CCCCCC;
}

/* レビューアイテム - noimage */
.review-item__therapist-image--noimage img {
  object-fit: contain !important;
  background-color: #F5F5F5;
  padding: 5px;
}

/* セラピストリストカード - noimage */
.therapist-list-card__image--noimage {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #F5F5F5;
  color: #CCCCCC;
}

/* ========================================
   Dashboard Overview Mini Styles
   ======================================== */

/* Reviews Mini - for Overview tab */
.dashboard-reviews-mini {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dashboard-review-mini {
  padding: 12px;
  background: #F8F7F4;
  border-radius: 8px;
}

.dashboard-review-mini__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.dashboard-review-mini__rating {
  display: flex;
  gap: 2px;
}

.dashboard-review-mini__rating .star {
  color: #E5E5E5;
  font-size: 14px;
}

.dashboard-review-mini__rating .star--filled {
  color: #FFD700;
}

.dashboard-review-mini__date {
  font-size: 11px;
  color: #888888;
}

.dashboard-review-mini__content {
  font-size: 13px;
  color: #333333;
  line-height: 1.5;
  margin: 0 0 8px 0;
}

.dashboard-review-mini__author {
  font-size: 11px;
  color: #888888;
}

/* Dashboard Settings Styles */
.dashboard-settings {
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: #E5E5E5;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 20px;
}

.dashboard-settings--danger {
  margin-top: 32px;
  background: transparent;
}

.dashboard-settings__form {
  background: #FFFFFF;
}

.dashboard-settings__item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  background: #FFFFFF;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  border: none;
  width: 100%;
  text-align: left;
  transition: background 0.2s;
}

a.dashboard-settings__item:hover {
  background: #F8F7F4;
}

.dashboard-settings__item--delete {
  background: #FFFFFF;
  border: 1px solid #E74C3C;
  border-radius: 12px;
  color: #E74C3C;
}

.dashboard-settings__item--delete:hover {
  background: #FFEBEE;
}

.dashboard-settings__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #F5F5F5;
  border-radius: 10px;
  color: #666666;
}

.dashboard-settings__item--delete .dashboard-settings__icon {
  background: #FFEBEE;
  color: #E74C3C;
}

.dashboard-settings__info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dashboard-settings__title {
  font-size: 14px;
  font-weight: 500;
  color: #333333;
}

.dashboard-settings__item--delete .dashboard-settings__title {
  color: #E74C3C;
}

.dashboard-settings__value {
  font-size: 12px;
  color: #888888;
}

.dashboard-settings__arrow {
  flex-shrink: 0;
  color: #CCCCCC;
}

/* Dashboard Toggle Switch */
.dashboard-toggle {
  position: relative;
  display: inline-flex;
  width: 50px;
  height: 28px;
  flex-shrink: 0;
}

.dashboard-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}

.dashboard-toggle__slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #CCCCCC;
  border-radius: 28px;
  transition: 0.3s;
}

.dashboard-toggle__slider:before {
  position: absolute;
  content: "";
  height: 22px;
  width: 22px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  border-radius: 50%;
  transition: 0.3s;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.dashboard-toggle input:checked + .dashboard-toggle__slider {
  background-color: #918461;
}

.dashboard-toggle input:checked + .dashboard-toggle__slider:before {
  transform: translateX(22px);
}

/* Dashboard Modal */
.dashboard-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.dashboard-modal__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
}

.dashboard-modal__content {
  position: relative;
  background: #FFFFFF;
  border-radius: 16px;
  padding: 24px;
  width: 100%;
  max-width: 400px;
  max-height: 90vh;
  overflow-y: auto;
}

.dashboard-modal__title {
  font-size: 18px;
  font-weight: 600;
  color: #333333;
  margin: 0 0 12px 0;
}

.dashboard-modal__text {
  font-size: 14px;
  color: #666666;
  line-height: 1.6;
  margin: 0 0 20px 0;
}

.dashboard-modal__actions {
  display: flex;
  gap: 12px;
  margin-top: 20px;
}

.dashboard-modal__actions .btn {
  flex: 1;
}

/* Dashboard Requirements List (公開時の必須項目リスト) */
.dashboard-requirements-list {
  list-style: none;
  padding: 0;
  margin: 0 0 20px 0;
}

.dashboard-requirements-list__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: #FFF9E6;
  border: 1px solid #F0E6C8;
  border-radius: 8px;
  margin-bottom: 8px;
}

.dashboard-requirements-list__item:last-child {
  margin-bottom: 0;
}

.dashboard-requirements-list__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: #FFFFFF;
  border-radius: 50%;
  color: #918461;
  flex-shrink: 0;
}

.dashboard-requirements-list__icon svg {
  width: 18px;
  height: 18px;
}

.dashboard-requirements-list__text {
  flex: 1;
  font-size: 14px;
  font-weight: 500;
  color: #333;
}

.dashboard-requirements-list__status {
  font-size: 12px;
  font-weight: 600;
  color: #D97706;
  background: #FEF3C7;
  padding: 4px 8px;
  border-radius: 4px;
}

/* Dashboard Diary New Button */
.dashboard-diary-new {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 16px;
  background: linear-gradient(135deg, #918461 0%, #B8A878 100%);
  border: none;
  border-radius: 12px;
  color: #FFFFFF;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  margin-bottom: 16px;
  transition: opacity 0.2s;
}

.dashboard-diary-new:hover {
  opacity: 0.9;
  color: #FFFFFF;
}

/* Dashboard Diary Item No Image */
.dashboard-diary-item__no-image {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #F5F5F5;
}

/* Dashboard Schedule Styles */
.dashboard-schedule-day {
  padding: 16px;
  background: #FFFFFF;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dashboard-schedule-day__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.dashboard-schedule-day__date {
  font-size: 14px;
  font-weight: 600;
  color: #333333;
}

.dashboard-schedule-day__dayname {
  font-size: 12px;
  color: #888888;
  margin-left: 8px;
}

.dashboard-schedule-day__options {
  display: flex;
  gap: 8px;
}

.dashboard-schedule-day__option {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 12px;
  border: 2px solid #E5E5E5;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  color: #666666;
  cursor: pointer;
  transition: all 0.2s;
}

.dashboard-schedule-day__option:has(input:checked) {
  border-color: #918461;
  background: #F8F7F4;
  color: #918461;
}

.dashboard-schedule-day__option input {
  display: none;
}

.dashboard-schedule-day__option--available:has(input:checked) {
  border-color: #4CAF50;
  background: #E8F5E9;
  color: #2E7D32;
}

.dashboard-schedule-day__option--off:has(input:checked) {
  border-color: #9E9E9E;
  background: #F5F5F5;
  color: #616161;
}

.dashboard-schedule-day__option--soldout:has(input:checked) {
  border-color: #F44336;
  background: #FFEBEE;
  color: #C62828;
}

.dashboard-schedule-day__time {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #F0F0F0;
}

.dashboard-schedule-day__time-label {
  font-size: 13px;
  color: #666666;
  min-width: 40px;
}

.dashboard-schedule-day__time select {
  flex: 1;
  padding: 8px 12px;
  border: 1px solid #E5E5E5;
  border-radius: 6px;
  font-size: 14px;
}

.dashboard-schedule-day__separator {
  color: #888888;
}

/* Dashboard Schedule Mini (Overview) */
.dashboard-schedule-mini {
  display: flex;
  justify-content: space-between;
}

.dashboard-schedule-mini__day {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

.dashboard-schedule-mini__label {
  font-size: 12px;
  color: #888888;
}

.dashboard-schedule-mini__status {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 600;
}

.dashboard-schedule-mini__status--available {
  background: #E8F5E9;
  color: #2E7D32;
}

.dashboard-schedule-mini__status--off {
  background: #F5F5F5;
  color: #9E9E9E;
}

.dashboard-schedule-mini__status--soldout {
  background: #FFEBEE;
  color: #C62828;
}

.dashboard-schedule-mini__status--undecided {
  background: #FFF8E1;
  color: #F57C00;
}

/* Dashboard Form Upload Area */
.dashboard-form__upload {
  position: relative;
}

.dashboard-form__upload-area {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 32px;
  background: #FAFAFA;
  border: 2px dashed #E0E0E0;
  border-radius: 12px;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}

.dashboard-form__upload-area:hover {
  border-color: #918461;
  background: #F8F7F4;
}

.dashboard-form__upload-area span {
  font-size: 14px;
  color: #666666;
}

.dashboard-form__upload-area .dashboard-form__hint {
  font-size: 12px;
  color: #999999;
}

/* Dashboard Profile Section (No Accordion) */
.dashboard-profile-section {
  background: #FFFFFF;
  border-radius: 12px;
  margin-bottom: 16px;
  overflow: hidden;
}

.dashboard-profile-section__title {
  font-size: 16px;
  font-weight: 600;
  color: #333333;
  margin: 0;
  padding: 16px 20px;
  background: #F8F7F4;
  border-bottom: 1px solid #EEEEEE;
}

.dashboard-profile-section__content {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* ===================================
   Dashboard Schedule (Weekly View)
   =================================== */

/* Schedule Header */
.dashboard-schedule-header {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px;
  background: #FFFFFF;
  border-radius: 12px;
}

.dashboard-schedule-header__text {
  font-size: 16px;
  font-weight: 600;
  color: #333333;
}

.dashboard-schedule-header__note {
  font-size: 13px;
  color: #888888;
}

/* Schedule Form */
.dashboard-schedule-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Schedule Day Card */
.dashboard-schedule-day {
  background: #FFFFFF;
  border-radius: 12px;
  padding: 16px;
}

.dashboard-schedule-day__header {
  margin-bottom: 12px;
}

.dashboard-schedule-day__date {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  color: #333333;
}

.dashboard-schedule-day__label {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  color: #FFFFFF;
  background: #918461;
  border-radius: 4px;
}

/* Schedule Options (Radio Buttons) */
.dashboard-schedule-day__options {
  display: flex;
  gap: 12px;
  margin-bottom: 12px;
}

.dashboard-form__radio {
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}

.dashboard-form__radio input {
  display: none;
}

.dashboard-form__radio span {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 500;
  color: #666666;
  background: #F5F5F5;
  border-radius: 8px;
  transition: all 0.2s ease;
}

.dashboard-form__radio input:checked + span {
  background: #918461;
  color: #FFFFFF;
}

.dashboard-form__radio:hover span {
  background: #E8E8E8;
}

.dashboard-form__radio input:checked:hover + span {
  background: #7A6F52;
}

/* Time Slots */
.dashboard-schedule-day__times {
  padding: 12px 0;
  border-top: 1px solid #EEEEEE;
}

.dashboard-schedule-day__time-slot {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.dashboard-schedule-day__time-slot:last-child {
  margin-bottom: 0;
}

.dashboard-schedule-day__slot-label {
  font-size: 13px;
  color: #666666;
  min-width: 60px;
}

.dashboard-schedule-day__time {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
}

/* Note Input */
.dashboard-schedule-day__note {
  padding-top: 12px;
  border-top: 1px solid #EEEEEE;
}

.dashboard-schedule-day__note .dashboard-form__input {
  width: 100%;
  font-size: 14px;
}

.dashboard-schedule-day__separator {
  display: flex;
  align-items: center;
  height: 42px;
  font-size: 14px;
  color: #888888;
}

/* Schedule Validation Error Styles */
.schedule-validation-error {
  background: #FFEBEE;
  border: 1px solid #FFCDD2;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 20px;
}

.schedule-validation-error strong {
  display: block;
  color: #C62828;
  font-size: 14px;
  margin-bottom: 8px;
}

.schedule-validation-error ul {
  margin: 0;
  padding-left: 20px;
}

.schedule-validation-error li {
  color: #C62828;
  font-size: 13px;
  line-height: 1.6;
}

.dashboard-schedule-day--error {
  border-color: #FFCDD2 !important;
  background: #FFF8F8 !important;
}

.dashboard-schedule-day--error .dashboard-schedule-day__header {
  color: #C62828;
}

.dashboard-schedule-day__remove-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 42px;
  background: none;
  border: none;
  color: #CCCCCC;
  cursor: pointer;
  transition: color 0.2s ease;
}

.dashboard-schedule-day__remove-btn:hover {
  color: #D32F2F;
}

.dashboard-schedule-day__add-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  padding: 10px;
  margin-top: 8px;
  font-size: 13px;
  color: #918461;
  background: #F8F7F4;
  border: 1px dashed #D4C9A8;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.dashboard-schedule-day__add-btn:hover {
  background: #F0EDE4;
  border-color: #918461;
}

/* Time Select */
.dashboard-form__select--time {
  width: 100px;
  padding: 10px 12px;
  font-size: 14px;
  border: 1px solid #E0E0E0;
  border-radius: 8px;
  background: #FFFFFF;
  cursor: pointer;
}

.dashboard-form__select--time:focus {
  outline: none;
  border-color: #918461;
}

/* Dashboard Card */
.dashboard-card {
  background: #FFFFFF;
  border-radius: 12px;
  padding: 20px;
}

.dashboard-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}

.dashboard-card__title {
  font-size: 16px;
  font-weight: 600;
  color: #333333;
  margin: 0;
}

.dashboard-card__link {
  font-size: 13px;
  color: #918461;
  text-decoration: none;
}

.dashboard-card__link:hover {
  text-decoration: underline;
}

/* Responsive Schedule */
@media (max-width: 600px) {
  .dashboard-schedule-day__options {
    flex-wrap: wrap;
    gap: 8px;
  }

  .dashboard-form__radio span {
    padding: 6px 12px;
    font-size: 13px;
  }

  .dashboard-schedule-day__time {
    flex-wrap: wrap;
  }

  .dashboard-form__select--time {
    width: 80px;
    padding: 8px 10px;
    font-size: 13px;
  }
}

/* ========================================
   Dashboard Owner Additional Styles
   ======================================== */

/* Welcome Owner */
.dashboard-welcome--owner {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px;
  background: linear-gradient(135deg, #D4AF37 0%, #F4D03F 100%);
  border-radius: 12px;
  margin-bottom: 24px;
}

.dashboard-welcome--owner .dashboard-welcome__icon {
  width: 56px;
  height: 56px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #FFFFFF;
}

.dashboard-welcome--owner .dashboard-welcome__greeting {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
}

.dashboard-welcome--owner .dashboard-welcome__name {
  font-size: 18px;
  font-weight: 700;
  color: #FFFFFF;
  margin: 4px 0 0;
}

/* Dashboard Stats Owner */
.dashboard-stats--owner {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 24px;
}

@media (min-width: 768px) {
  .dashboard-stats--owner {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Placeholder styles */
.dashboard-owner-therapist-mini__placeholder,
.dashboard-owner-therapist__placeholder,
.dashboard-owner-pending__placeholder,
.dashboard-owner-review__therapist-placeholder {
  width: 40px;
  height: 40px;
  background: #F0F0F0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #CCCCCC;
}

.dashboard-owner-therapist__placeholder {
  width: 60px;
  height: 60px;
}

.dashboard-owner-pending__placeholder {
  width: 36px;
  height: 36px;
}

.dashboard-owner-review__therapist-placeholder {
  width: 32px;
  height: 32px;
}

/* Dashboard Settings */
.dashboard-settings {
  background: #FFFFFF;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 16px;
}

.dashboard-settings--danger {
  border: 1px solid #FEE2E2;
}

.dashboard-settings__item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  text-decoration: none;
  transition: background 0.2s;
  border-bottom: 1px solid #F0F0F0;
}

.dashboard-settings__item:last-child {
  border-bottom: none;
}

.dashboard-settings__item:hover {
  background: #F8F8F8;
}

.dashboard-settings__item--logout {
  color: #DC2626;
}

.dashboard-settings__item--logout:hover {
  background: #FEF2F2;
}

.dashboard-settings__icon {
  width: 40px;
  height: 40px;
  background: #F5F5F5;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #666666;
  flex-shrink: 0;
}

.dashboard-settings__item--logout .dashboard-settings__icon {
  background: #FEE2E2;
  color: #DC2626;
}

.dashboard-settings__info {
  flex: 1;
  min-width: 0;
}

.dashboard-settings__title {
  font-size: 15px;
  font-weight: 600;
  color: #333333;
  display: block;
}

.dashboard-settings__item--logout .dashboard-settings__title {
  color: #DC2626;
}

.dashboard-settings__value {
  font-size: 13px;
  color: #888888;
  display: block;
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-settings__arrow {
  color: #CCCCCC;
  flex-shrink: 0;
}

/* Dashboard Toggle */
.dashboard-toggle {
  position: relative;
  display: inline-block;
  width: 48px;
  height: 28px;
  flex-shrink: 0;
}

.dashboard-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}

.dashboard-toggle__slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #E5E5E5;
  transition: 0.3s;
  border-radius: 28px;
}

.dashboard-toggle__slider:before {
  position: absolute;
  content: "";
  height: 22px;
  width: 22px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: 0.3s;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.dashboard-toggle input:checked + .dashboard-toggle__slider {
  background: linear-gradient(135deg, #D4AF37 0%, #F4D03F 100%);
}

.dashboard-toggle input:checked + .dashboard-toggle__slider:before {
  transform: translateX(20px);
}

/* Dashboard Analytics */
.dashboard-analytics-period {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.dashboard-analytics-period__btn {
  padding: 8px 16px;
  background: #FFFFFF;
  border: 1px solid #E5E5E5;
  border-radius: 20px;
  font-size: 13px;
  color: #666666;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.2s;
}

.dashboard-analytics-period__btn:hover {
  border-color: #D4AF37;
  color: #D4AF37;
}

.dashboard-analytics-period__btn--active {
  background: linear-gradient(135deg, #D4AF37 0%, #F4D03F 100%);
  border-color: #D4AF37;
  color: #FFFFFF;
}

/* Analytics Summary Cards */
.dashboard-analytics-summary {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 24px;
}

@media (min-width: 768px) {
  .dashboard-analytics-summary {
    grid-template-columns: repeat(3, 1fr);
  }
}

.dashboard-analytics-card {
  background: #FFFFFF;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dashboard-analytics-card__header {
  margin-bottom: 8px;
}

.dashboard-analytics-card__title {
  font-size: 12px;
  color: #888888;
  font-weight: 500;
}

.dashboard-analytics-card__value {
  font-size: 28px;
  font-weight: 700;
  color: #333333;
}

/* Analytics Chart */
.dashboard-analytics-chart {
  background: #FFFFFF;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 24px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dashboard-analytics-chart__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}

.dashboard-analytics-chart__title {
  font-size: 16px;
  font-weight: 600;
  color: #333333;
  margin: 0;
}

.dashboard-analytics-chart__tabs {
  display: flex;
  gap: 8px;
}

.dashboard-analytics-chart__tab {
  padding: 6px 12px;
  background: #F5F5F5;
  border: none;
  border-radius: 6px;
  font-size: 12px;
  color: #666666;
  cursor: pointer;
  transition: all 0.2s;
}

.dashboard-analytics-chart__tab:hover {
  background: #E8E8E8;
}

.dashboard-analytics-chart__tab--active {
  background: #333333;
  color: #FFFFFF;
}

.dashboard-analytics-chart__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 200px;
  color: #CCCCCC;
  gap: 12px;
}

.dashboard-analytics-chart__placeholder p {
  font-size: 14px;
  margin: 0;
}

/* Analytics Table */
.dashboard-analytics-table {
  background: #FFFFFF;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dashboard-analytics-table__title {
  font-size: 16px;
  font-weight: 600;
  color: #333333;
  margin: 0 0 16px;
}

/* Form readonly note */
.dashboard-form__readonly-note {
  display: block;
  font-size: 12px;
  color: #999999;
  margin-top: 8px;
}

/* Form Upload */
.dashboard-form__upload {
  display: flex;
  align-items: center;
  gap: 16px;
}

.dashboard-form__upload-preview {
  width: 80px;
  height: 80px;
  background: #F5F5F5;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.dashboard-form__upload-preview--logo {
  border-radius: 12px;
}

.dashboard-form__upload-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Dashboard Table User Placeholder */
.dashboard-table__user-placeholder {
  width: 36px;
  height: 36px;
  background: #F0F0F0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #CCCCCC;
  flex-shrink: 0;
}

/* ================================
   Dashboard Filter - Extended Styles
   ================================ */

.dashboard-filter__form {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  width: 100%;
  align-items: center;
}

.dashboard-filter__btn {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: #666;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dashboard-filter__btn:hover {
  color: #333;
}

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

.dashboard-filter__tab {
  padding: 8px 16px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 500;
  color: #666;
  background: #F5F5F5;
  text-decoration: none;
  transition: all 0.2s ease;
}

.dashboard-filter__tab:hover {
  background: #EAEAEA;
  color: #333;
}

.dashboard-filter__tab.is-active {
  background: #333;
  color: #fff;
}

/* Shop Filter (for multiple shops) */
.dashboard-shop-filter {
  margin-bottom: 0px;
  padding: 16px;
  background: #F8F6F0;
  border-radius: 12px;
}

.dashboard-shop-filter__label {
  font-size: 12px;
  font-weight: 500;
  color: #666;
  margin-bottom: 10px;
}

.dashboard-shop-filter__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

@media (max-width: 767px) {
  .dashboard-shop-filter__chips {
    max-height: 76px;
    overflow: hidden;
    transition: max-height 0.3s ease;
  }

  .dashboard-shop-filter__chips.is-expanded {
    max-height: none;
  }

  .dashboard-shop-filter__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    margin-top: 8px;
    padding: 4px 0;
    font-size: 12px;
    color: #918461;
    font-weight: 500;
    cursor: pointer;
    border: none;
    background: none;
    width: 100%;
  }

  .dashboard-shop-filter__toggle svg {
    transition: transform 0.3s ease;
  }

  .dashboard-shop-filter__toggle.is-expanded svg {
    transform: rotate(180deg);
  }
}

@media (min-width: 768px) {
  .dashboard-shop-filter__toggle {
    display: none;
  }
}

.dashboard-shop-filter__chip {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  background: #fff;
  border: 1px solid #E5E5E5;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 500;
  color: #666;
  text-decoration: none;
  transition: all 0.2s ease;
}

.dashboard-shop-filter__chip:hover {
  border-color: #918461;
  color: #918461;
}

.dashboard-shop-filter__chip.is-active,
a.dashboard-shop-filter__chip.is-active {
  background: #918461;
  border-color: #918461;
  color: #fff;
}

.dashboard-shop-filter__chip.is-active:hover,
a.dashboard-shop-filter__chip.is-active:hover {
  background: #7a7052;
  border-color: #7a7052;
  color: #fff;
}

/* Dashboard Table Shop Column */
.dashboard-table__shop {
  display: inline-block;
  font-size: 12px;
  color: #666;
  padding: 2px 8px;
  background: #F5F5F5;
  border-radius: 6px;
}

/* ================================
   Dashboard Therapist Item List
   ================================ */

.dashboard-therapist-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: #fff;
  border-radius: 12px;
  border: 1px solid #E5E5E5;
  transition: all 0.2s ease;
}

.dashboard-therapist-item:hover {
  border-color: #D0D0D0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.dashboard-therapist-item__image {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  border-radius: 50%;
  overflow: hidden;
}

.dashboard-therapist-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dashboard-therapist-item__placeholder {
  width: 100%;
  height: 100%;
  background: #F0F0F0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #CCC;
}

.dashboard-therapist-item__info {
  flex: 1;
  min-width: 0;
}

.dashboard-therapist-item__name-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}

.dashboard-therapist-item__name {
  font-size: 15px;
  font-weight: 600;
  color: #333;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dashboard-therapist-item__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
}

.dashboard-therapist-item__status {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 500;
}

.dashboard-therapist-item__status--active {
  background: rgba(46, 204, 113, 0.1);
  color: #2ECC71;
}

.dashboard-therapist-item__status--draft {
  background: rgba(149, 165, 166, 0.1);
  color: #95A5A6;
}

.dashboard-therapist-item__views {
  color: #888;
}

.dashboard-therapist-item__shop {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  background: #F0EDE5;
  color: #7A6F50;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 500;
}

.dashboard-therapist-item__edit {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  background: #F8F6F0;
  color: #918461;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.dashboard-therapist-item__edit:hover {
  background: #EDE9DD;
  color: #7A6F50;
}

.dashboard-therapist-item__edit svg {
  width: 14px;
  height: 14px;
}

/* Dashboard Empty State */
.dashboard-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  text-align: center;
  background: #fff;
  border-radius: 12px;
  border: 1px solid #E5E5E5;
}

.dashboard-empty svg {
  color: #DDD;
  margin-bottom: 16px;
}

.dashboard-empty p {
  color: #888;
  font-size: 14px;
  margin: 0;
}

/* Mobile Responsive for Therapist List */
@media (max-width: 480px) {
  .dashboard-filter__form {
    flex-direction: column;
    align-items: stretch;
  }

  .dashboard-filter__search {
    width: 100%;
    min-width: auto;
  }

  .dashboard-filter__tabs {
    width: 100%;
    justify-content: flex-start;
  }

  .dashboard-therapist-item {
    flex-wrap: wrap;
    gap: 10px;
  }

  .dashboard-therapist-item__edit {
    width: 100%;
    justify-content: center;
    margin-top: 4px;
  }
}

/* ================================
   Dashboard Shop List (Multiple Shops)
   ================================ */

.dashboard-shop-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 8px;
}

.dashboard-shop-list__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: #F8F6F0;
  border-radius: 10px;
  border: 1px solid #E8E4D9;
}

.dashboard-shop-list__icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border-radius: 8px;
  color: #918461;
  flex-shrink: 0;
}

.dashboard-shop-list__info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.dashboard-shop-list__brand {
  font-size: 15px;
  font-weight: 600;
  color: #333;
}

.dashboard-shop-list__area {
  font-size: 13px;
  color: #666;
}

/* ================================
   Shop Accordion (Multiple Shops Edit)
   ================================ */

.dashboard-shop-accordions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.shop-accordion {
  background: #fff;
  border-radius: 12px;
  border: 1px solid #E5E5E5;
  overflow: hidden;
}

.shop-accordion__header {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 16px 20px;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background-color 0.2s ease;
}

.shop-accordion__header:hover {
  background: #FAFAFA;
}

.shop-accordion__header-content {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1;
  min-width: 0;
}

.shop-accordion__icon {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #F8F6F0;
  border-radius: 10px;
  color: #918461;
  flex-shrink: 0;
  overflow: hidden;
}

.shop-accordion__icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.shop-accordion__header-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.shop-accordion__title {
  font-size: 15px;
  font-weight: 600;
  color: #333;
}

.shop-accordion__area {
  font-size: 13px;
  color: #666;
}

.shop-accordion__status {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 500;
  flex-shrink: 0;
  margin-right: 8px;
}

.shop-accordion__status--complete {
  background: #E8F5E9;
  color: #4CAF50;
}

.shop-accordion__status--complete svg {
  stroke: #4CAF50;
}

.shop-accordion__status--incomplete {
  background: #FFF3E0;
  color: #F57C00;
}

.shop-accordion__arrow {
  display: flex;
  align-items: center;
  color: #999;
  transition: transform 0.2s ease;
  flex-shrink: 0;
}

.shop-accordion.is-open .shop-accordion__arrow {
  transform: rotate(180deg);
}

.shop-accordion__body {
  border-top: 1px solid #F0F0F0;
}

.shop-accordion__form {
  padding: 20px;
}

.shop-accordion__footer {
  padding-top: 16px;
  margin-top: 8px;
}

/* Logo preview in shop accordion */
.profile-image-upload__preview--logo {
  width: 120px;
  height: 120px;
  border-radius: 12px;
  background: #F8F6F0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  cursor: pointer;
}

.profile-image-upload__preview--logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-image-upload__preview--logo .profile-image-upload__placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: #999;
  font-size: 12px;
}

/* Mobile Responsive */
@media (max-width: 480px) {
  .shop-accordion__header {
    padding: 14px 16px;
  }

  .shop-accordion__icon {
    width: 40px;
    height: 40px;
  }

  .shop-accordion__form {
    padding: 16px;
  }

  .profile-image-upload__preview--logo {
    width: 100px;
    height: 100px;
  }
}

/* ===================================
   Therapist Dashboard - Shop Ranking
   =================================== */

/* Rank Summary */
.dashboard-rank-summary {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin-top: 16px;
}

.dashboard-rank-summary__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 12px 8px;
  background: #F8F6F0;
  border-radius: 8px;
}

.dashboard-rank-summary__label {
  font-size: 12px;
  color: #888888;
}

.dashboard-rank-summary__value {
  font-size: 20px;
  font-weight: 700;
  color: #918461;
}

/* Current User Highlight in Table */
.dashboard-table tr.is-current-user {
  background: linear-gradient(135deg, #FFF8E1 0%, #FFF3C4 100%);
}

.dashboard-table tr.is-current-user td {
  border-color: #E8DDB5;
}

.dashboard-table tr.is-current-user td:first-child {
  border-left: 3px solid #918461;
}

.dashboard-table tr.is-current-user .dashboard-table__user-name {
  font-weight: 700;
  color: #918461;
}

/* Mobile Responsive for Rank Summary */
@media (max-width: 767px) {
  .dashboard-rank-summary {
    grid-template-columns: repeat(3, 1fr);
  }

  .dashboard-rank-summary__item {
    padding: 10px 6px;
  }

  .dashboard-rank-summary__label {
    font-size: 11px;
  }

  .dashboard-rank-summary__value {
    font-size: 18px;
  }
}

@media (max-width: 480px) {
  .dashboard-rank-summary {
    grid-template-columns: repeat(2, 1fr);
  }

  .dashboard-rank-summary__item:last-child {
    grid-column: span 2;
  }
}

/* Stats Tab Mobile Overflow Fixes */
.dashboard-section#stats {
  overflow: hidden;
  max-width: 100%;
}

.dashboard-analytics-chart {
  overflow: hidden;
  max-width: 100%;
}

.dashboard-analytics-chart__canvas-wrapper {
  max-width: 100%;
  overflow: hidden;
}

.dashboard-analytics-chart__canvas-wrapper canvas {
  max-width: 100% !important;
  height: auto !important;
}

.dashboard-analytics-table {
  max-width: 100%;
}

.dashboard-analytics-table__scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.dashboard-analytics-table .dashboard-table {
  min-width: 600px;
}

@media (max-width: 767px) {
  .dashboard-analytics-chart {
    padding: 16px;
  }

  .dashboard-analytics-chart__tabs {
    flex-wrap: wrap;
  }

  .dashboard-analytics-chart__tab {
    padding: 6px 10px;
    font-size: 11px;
  }

  .dashboard-analytics-table {
    padding: 16px;
  }

  .dashboard-therapist-detail {
    overflow: hidden;
  }

  .dashboard-therapist-detail__grid {
    overflow-x: auto;
  }

  /* セラピスト名固定・横スクロール対応 */
  .dashboard-analytics-table__scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    background: #FFFFFF;
  }

  .dashboard-analytics-table .dashboard-table {
    min-width: auto;
    border-collapse: separate;
    border-spacing: 0;
  }

  .dashboard-analytics-table .dashboard-table thead th:first-child,
  .dashboard-analytics-table .dashboard-table tbody td:first-child {
    position: sticky;
    left: 0;
    min-width: 96px;
    max-width: 140px;
  }

  /* ヘッダー固定列 */
  .dashboard-analytics-table .dashboard-table thead th:first-child {
    z-index: 10;
    background-color: #F8F8F8;
  }

  /* ボディ固定列 */
  .dashboard-analytics-table .dashboard-table tbody td:first-child {
    z-index: 5;
    background-color: #FFFFFF;
  }

  /* 現在のユーザー行 */
  .dashboard-analytics-table .dashboard-table tbody tr.is-current-user td:first-child {
    background-color: #FFF8E1;
  }

  .dashboard-analytics-table .dashboard-table th:not(:first-child),
  .dashboard-analytics-table .dashboard-table td:not(:first-child) {
    min-width: 70px;
    text-align: center;
  }

  .dashboard-analytics-table .dashboard-table__user {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .dashboard-analytics-table .dashboard-table__user-name {
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100px;
  }
}
