/* Localy 공용 스타일 */

.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  vertical-align: middle;
  user-select: none;
}

.fill-icon {
  font-variation-settings: 'FILL' 1;
}

body {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  -webkit-tap-highlight-color: transparent;
  background-color: #eceef1; /* 데스크톱 배경 */
  min-height: 100dvh;
}

/* 앱 프레임: 모바일 = 전체 폭 / 데스크톱 = 가운데 정렬 카드 */
.app-frame {
  width: 100%;
  max-width: 480px;
  margin: 0 auto;
  min-height: 100dvh;
  background-color: #f8f9fb;
  position: relative;
  box-shadow: 0 0 40px rgba(0, 0, 0, 0.08);
}

/* 데스크톱: 모든 페이지 동일 너비로 통일 */
@media (min-width: 768px) {
  .app-frame {
    max-width: 768px;
  }
}

/* 고정 헤더/하단바와 같은 폭 유지 */
.fixed-frame {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 480px;
  z-index: 50;
}

@media (min-width: 768px) {
  .fixed-frame {
    max-width: 768px;
  }
}

.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

.chat-bubble-left { border-radius: 4px 16px 16px 16px; }
.chat-bubble-right { border-radius: 16px 16px 4px 16px; }

.active-tab {
  border-bottom: 2px solid #755b00;
  color: #755b00;
  font-weight: 700;
}

.safe-pb { padding-bottom: env(safe-area-inset-bottom); }
