/* 全局样式 - 处理移动端适配 */

/* 状态栏安全区域 */
.page-header {
  padding-top: max(env(safe-area-inset-top), 16px);
}

/* 页面容器 */
.page-container {
  min-height: 100vh;
  padding-bottom: calc(70px + env(safe-area-inset-bottom));
}

/* 固定顶部导航 */
.fixed-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 20;
  padding-top: env(safe-area-inset-top);
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
}

/* 内容区域（避免被固定头部遮挡） */
.content-with-header {
  padding-top: calc(60px + env(safe-area-inset-top));
}

/* 全局隐藏滚动条但保持滚动功能 */
.scrollable {
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.scrollable::-webkit-scrollbar {
  display: none;
}

/* Toast 和 Dialog 动画 */
@keyframes slide-down {
  from {
    opacity: 0;
    transform: translate(-50%, -100%);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}

@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes scale-in {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

.animate-slide-down {
  animation: slide-down 0.3s ease-out;
}

.animate-fade-in {
  animation: fade-in 0.2s ease-out;
}

.animate-scale-in {
  animation: scale-in 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
