@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);
/* 确保Tailwind工作的测试样式 */
.bg-red-500 {
  background-color: #ef4444 !important;
}

.text-white {
  color: #ffffff !important;
}

.p-4 {
  padding: 1rem !important;
}

.mb-4 {
  margin-bottom: 1rem !important;
}

.text-2xl {
  font-size: 1.5rem !important;
  line-height: 2rem !important;
}

.font-bold {
  font-weight: 700 !important;
}

body {
  margin: 0;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
    'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
    sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

code {
  font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
    monospace;
}

/* 响应式设计系统 */
/* 全局基础字体设置 */
html {
  font-size: 16px; /* 基准字体大小 */
}

body {
  font-size: var(--font-sm);
  line-height: 1.6;
}

/* 移动端全局字体缩小 */
@media (max-width: 767px) {
  html {
    font-size: 14px; /* 移动端基准字体更小 */
  }
  
  body {
    font-size: var(--font-sm);
    line-height: 1.5;
  }
  
  /* 确保所有文本元素使用小字体 */
  * {
    font-size: inherit !important;
  }
  
  /* 覆盖常见HTML元素 */
  p, span, div, li, td, th {
    font-size: var(--font-sm) !important;
  }
  
  h1 {
    font-size: var(--font-xl) !important;
  }
  
  h2 {
    font-size: var(--font-lg) !important;
  }
  
  h3 {
    font-size: var(--font-md) !important;
  }
  
  h4, h5, h6 {
    font-size: var(--font-sm) !important;
  }
  
  small {
    font-size: var(--font-xs) !important;
  }
}

:root {
  /* ===== 间距系统 ===== */
  --spacing-xs: 0.25rem;    /* 4px */
  --spacing-sm: 0.5rem;     /* 8px */
  --spacing-md: 1rem;       /* 16px */
  --spacing-lg: 1.5rem;     /* 24px */
  --spacing-xl: 2rem;       /* 32px */
  --spacing-2xl: 2.5rem;    /* 40px */
  --spacing-3xl: 3rem;      /* 48px */

  /* ===== 容器宽度系统 ===== */
  --container-xs: 100%;
  --container-sm: 95vw;
  --container-md: 90vw;
  --container-lg: 75rem;    /* 1200px，桌面端保持现有布局 */
  --container-xl: 80rem;    /* 1280px */
  
  /* ===== 工具页面容器 ===== */
  --tool-container-sm: 100%;
  --tool-container-md: 90vw;
  --tool-container-lg: 43.75rem;  /* 700px */
  --tool-container-xl: 56.25rem;  /* 900px */

  /* ===== 响应式字体 ===== */
  --font-xs: clamp(0.6875rem, 2vw, 0.875rem);  /* 11-14px */
  --font-sm: clamp(0.75rem, 2.5vw, 1rem);      /* 12-16px */
  --font-md: clamp(0.875rem, 3vw, 1.125rem);   /* 14-18px */
  --font-lg: clamp(1rem, 4vw, 1.5rem);         /* 16-24px */
  --font-xl: clamp(1.125rem, 5vw, 1.75rem);    /* 18-28px */

  /* ===== 按钮尺寸 ===== */
  --btn-sm-width: 3.75rem;      /* 60px */
  --btn-md-width: 5rem;         /* 80px */
  --btn-lg-width: 7.5rem;       /* 120px */
  
  /* ===== 组件尺寸 ===== */
  --input-height: 2.25rem;      /* 36px */
  --icon-sm: 1rem;              /* 16px */
  --icon-md: 1.125rem;          /* 18px */
  --icon-lg: 1.5rem;            /* 24px */
  
  /* ===== 圆角系统 ===== */
  --radius-sm: 0.25rem;         /* 4px */
  --radius-md: 0.375rem;        /* 6px */
  --radius-lg: 0.5rem;          /* 8px */
  --radius-xl: 0.75rem;         /* 12px */
}

/* ===== 移动端适配 ===== */
@media (max-width: 767px) {
  :root {
    /* 移动端容器适配 */
    --container-lg: var(--container-sm);
    --tool-container-lg: var(--tool-container-sm);
    --tool-container-xl: var(--tool-container-sm);
    
    /* 移动端间距优化 */
    --spacing-lg: var(--spacing-md);
    --spacing-xl: var(--spacing-lg);
    --spacing-2xl: var(--spacing-xl);
    
    /* 移动端按钮适配 */
    --btn-sm-width: 3rem;         /* 48px */
    --btn-md-width: 4rem;         /* 64px */
    --btn-lg-width: 5rem;         /* 80px */
    
    /* 移动端字体进一步缩小 */
    --font-xs: 0.6875rem;         /* 11px */
    --font-sm: 0.75rem;           /* 12px */
    --font-md: 0.875rem;          /* 14px */
    --font-lg: 1rem;              /* 16px */
    --font-xl: 1.125rem;          /* 18px */
  }
}

/* ===== 平板端适配 ===== */
@media (min-width: 768px) and (max-width: 1023px) {
  :root {
    --container-lg: var(--container-md);
    --tool-container-lg: 80vw;
    --tool-container-xl: 85vw;
  }
}

/* ===== 通用响应式工具类 ===== */
.container-responsive {
  max-width: var(--container-lg);
  margin: 0 auto;
  padding: 0 var(--spacing-md);
}

.tool-container-responsive {
  max-width: var(--tool-container-lg);
  margin: 0 auto;
  padding: var(--spacing-md);
}

.spacing-responsive {
  padding: var(--spacing-md);
  margin-bottom: var(--spacing-lg);
}

/* ===== 移动端隐藏/显示 ===== */
@media (max-width: 767px) {
  .desktop-only {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .mobile-only {
    display: none !important;
  }
}

/* ===== Ant Design组件响应式覆盖 ===== */
@media (max-width: 767px) {
  .ant-card {
    margin: var(--spacing-sm) 0;
    border-radius: var(--radius-lg);
  }
  
  .ant-btn {
    min-width: var(--btn-sm-width);
    font-size: var(--font-sm) !important;
    height: 40px; /* 移动端按钮更高 */
  }
  
  .ant-input {
    font-size: var(--font-sm) !important;
    height: 40px; /* 移动端输入框更高 */
  }
  
  .ant-table-wrapper {
    overflow-x: auto;
  }
  
  .ant-select {
    font-size: var(--font-sm) !important;
  }
  
  .ant-select-selector {
    height: 40px !important;
    padding: 8px 11px !important;
    font-size: var(--font-sm) !important;
  }
  
  .ant-form-item-label {
    font-size: var(--font-sm) !important;
  }
  
  /* 更多Ant Design组件字体覆盖 */
  .ant-typography {
    font-size: var(--font-sm) !important;
  }
  
  .ant-card-head-title {
    font-size: var(--font-md) !important;
  }
  
  .ant-card-body {
    font-size: var(--font-sm) !important;
  }
  
  .ant-menu-item {
    font-size: var(--font-sm) !important;
  }
  
  .ant-menu-submenu-title {
    font-size: var(--font-sm) !important;
  }
  
  .ant-breadcrumb {
    font-size: var(--font-xs) !important;
  }
  
  .ant-tag {
    font-size: var(--font-xs) !important;
  }
  
  .ant-statistic-content {
    font-size: var(--font-lg) !important;
  }
  
  .ant-statistic-content-value {
    font-size: var(--font-lg) !important;
  }
  
  .ant-statistic-title {
    font-size: var(--font-xs) !important;
  }
  
  .ant-alert {
    font-size: var(--font-sm) !important;
  }
  
  .ant-message {
    font-size: var(--font-sm) !important;
  }
  
  .ant-notification {
    font-size: var(--font-sm) !important;
  }
  
  .ant-drawer-title {
    font-size: var(--font-md) !important;
  }
  
  .ant-drawer-body {
    font-size: var(--font-sm) !important;
  }
  
  .ant-space-item {
    font-size: var(--font-sm) !important;
  }
  
  /* 表格字体优化 */
  .ant-table-thead > tr > th {
    font-size: var(--font-xs) !important;
  }
  
  .ant-table-tbody > tr > td {
    font-size: var(--font-xs) !important;
  }
  
  /* 表单字体优化 */
  .ant-form-item-label > label {
    font-size: var(--font-sm) !important;
  }
  
  .ant-form-item-control-input {
    font-size: var(--font-sm) !important;
  }
  
  /* 弹框字体优化 */
  .ant-modal-title {
    font-size: var(--font-md) !important;
  }
  
  .ant-modal-body {
    font-size: var(--font-sm) !important;
  }
}

/* ===== 移动端布局专用样式 ===== */
.mobile-layout .ant-layout-header {
  padding: 0;
  line-height: 56px;
}

.mobile-layout .ant-drawer-header {
  padding: 16px;
  border-bottom: 1px solid #f0f0f0;
}

.mobile-layout .ant-drawer-body {
  padding: 0;
}

.mobile-layout .ant-menu-item {
  padding-left: 24px !important;
  height: 48px;
  line-height: 48px;
  font-size: var(--font-sm);
}

.mobile-layout .ant-menu-submenu-title {
  padding-left: 24px !important;
  height: 48px;
  line-height: 48px;
  font-size: var(--font-sm);
}

.mobile-layout .ant-menu-item-group-title {
  padding: 12px 24px 8px;
  font-size: var(--font-xs);
  color: #999;
  font-weight: 500;
}

/* ===== 移动端内容区优化 ===== */
@media (max-width: 767px) {
  .mobile-layout .ant-card-head {
    padding: 12px 16px;
    min-height: auto;
  }
  
  .mobile-layout .ant-card-head-title {
    font-size: var(--font-md);
    font-weight: 500;
  }
  
  .mobile-layout .ant-card-body {
    padding: 16px;
  }
  
  .mobile-layout .ant-form-item {
    margin-bottom: 16px;
  }
  
  .mobile-layout .ant-space-item {
    margin-bottom: 8px;
  }
  
  /* 表格在移动端的优化 */
  .mobile-layout .ant-table-container {
    overflow-x: auto;
  }
  
  .mobile-layout .ant-table-thead > tr > th {
    padding: 8px;
    font-size: var(--font-xs);
  }
  
  .mobile-layout .ant-table-tbody > tr > td {
    padding: 8px;
    font-size: var(--font-xs);
  }
}

/* ===== 触摸友好的交互 ===== */
@media (max-width: 767px) {
  .mobile-layout button,
  .mobile-layout .ant-btn {
    min-height: 44px; /* 满足最小触摸目标 */
    padding: 0 16px;
  }
  
  .mobile-layout .ant-btn-sm {
    min-height: 36px;
    padding: 0 12px;
  }
  
  .mobile-layout .ant-btn-lg {
    min-height: 48px;
    padding: 0 20px;
  }
}

/* ===== 移动端字体缩放优化 ===== */
@media (max-width: 767px) {
  .mobile-layout h1 {
    font-size: var(--font-xl);
    line-height: 1.3;
    margin-bottom: var(--spacing-lg);
  }
  
  .mobile-layout h2 {
    font-size: var(--font-lg);
    line-height: 1.4;
    margin-bottom: var(--spacing-md);
  }
  
  .mobile-layout h3 {
    font-size: var(--font-md);
    line-height: 1.4;
    margin-bottom: var(--spacing-sm);
  }
  
  .mobile-layout p {
    font-size: var(--font-sm);
    line-height: 1.6;
  }
} 
/* 移动端字体强制优化 */
@media (max-width: 767px) {
  /* 强制覆盖所有文本元素的字体大小 */
  .mobile-layout *,
  .mobile-layout *::before,
  .mobile-layout *::after {
    font-size: inherit !important;
  }
  
  /* 基础HTML元素字体强制覆盖 */
  .mobile-layout body {
    font-size: 12px !important;
    line-height: 1.5 !important;
  }
  
  .mobile-layout p,
  .mobile-layout span,
  .mobile-layout div:not(.ant-statistic-content-value),
  .mobile-layout li,
  .mobile-layout label,
  .mobile-layout text {
    font-size: 12px !important;
  }
  
  .mobile-layout h1 {
    font-size: 18px !important;
    line-height: 1.3 !important;
  }
  
  .mobile-layout h2 {
    font-size: 16px !important;
    line-height: 1.4 !important;
  }
  
  .mobile-layout h3 {
    font-size: 14px !important;
    line-height: 1.4 !important;
  }
  
  .mobile-layout h4,
  .mobile-layout h5,
  .mobile-layout h6 {
    font-size: 12px !important;
    line-height: 1.5 !important;
  }
  
  .mobile-layout small {
    font-size: 11px !important;
  }
  
  /* Ant Design组件字体强制覆盖 */
  .mobile-layout .ant-btn {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-btn-lg {
    font-size: 13px !important;
  }
  
  .mobile-layout .ant-btn-sm {
    font-size: 11px !important;
  }
  
  .mobile-layout .ant-input {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-select {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-select-selector {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-select-item {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-form-item-label > label {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-card-head-title {
    font-size: 14px !important;
  }
  
  .mobile-layout .ant-card-body {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-card-body * {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-typography {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-typography h1 {
    font-size: 18px !important;
  }
  
  .mobile-layout .ant-typography h2 {
    font-size: 16px !important;
  }
  
  .mobile-layout .ant-typography h3 {
    font-size: 14px !important;
  }
  
  .mobile-layout .ant-typography h4,
  .mobile-layout .ant-typography h5,
  .mobile-layout .ant-typography h6 {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-menu-item {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-menu-submenu-title {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-menu-item-group-title {
    font-size: 11px !important;
  }
  
  .mobile-layout .ant-breadcrumb {
    font-size: 11px !important;
  }
  
  .mobile-layout .ant-breadcrumb * {
    font-size: 11px !important;
  }
  
  .mobile-layout .ant-tag {
    font-size: 11px !important;
  }
  
  .mobile-layout .ant-table-thead > tr > th {
    font-size: 11px !important;
  }
  
  .mobile-layout .ant-table-tbody > tr > td {
    font-size: 11px !important;
  }
  
  .mobile-layout .ant-table-pagination {
    font-size: 11px !important;
  }
  
  .mobile-layout .ant-pagination {
    font-size: 11px !important;
  }
  
  .mobile-layout .ant-pagination * {
    font-size: 11px !important;
  }
  
  .mobile-layout .ant-statistic-title {
    font-size: 11px !important;
  }
  
  .mobile-layout .ant-statistic-content-value {
    font-size: 16px !important;
  }
  
  .mobile-layout .ant-alert {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-alert * {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-drawer-title {
    font-size: 14px !important;
  }
  
  .mobile-layout .ant-drawer-body {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-drawer-body * {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-modal-title {
    font-size: 14px !important;
  }
  
  .mobile-layout .ant-modal-body {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-modal-body * {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-message {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-notification {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-progress-text {
    font-size: 11px !important;
  }
  
  .mobile-layout .ant-space-item {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-divider {
    font-size: 12px !important;
  }
  
  .mobile-layout .ant-divider * {
    font-size: 12px !important;
  }
  
  /* 自定义组件字体覆盖 */
  .mobile-layout .container-responsive * {
    font-size: 12px !important;
  }
  
  .mobile-layout .tool-container-responsive * {
    font-size: 12px !important;
  }
  
  /* 确保标题还是稍大一些 */
  .mobile-layout .container-responsive h1,
  .mobile-layout .tool-container-responsive h1 {
    font-size: 18px !important;
  }
  
  .mobile-layout .container-responsive h2,
  .mobile-layout .tool-container-responsive h2 {
    font-size: 16px !important;
  }
  
  .mobile-layout .container-responsive h3,
  .mobile-layout .tool-container-responsive h3 {
    font-size: 14px !important;
  }
  
  /* 特殊情况：统计数字保持大一点 */
  .mobile-layout .ant-statistic-content-value,
  .mobile-layout [data-testid="statistic-value"] {
    font-size: 16px !important;
  }
  
  /* 代码块字体 */
  .mobile-layout code,
  .mobile-layout pre {
    font-size: 11px !important;
    font-family: 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', monospace !important;
  }
  
  /* 强制覆盖任何内联样式 */
  .mobile-layout [style*="font-size"] {
    font-size: 12px !important;
  }
} 
.App {
  text-align: center;
}

.App-logo {
  height: 40vmin;
  pointer-events: none;
}

@media (prefers-reduced-motion: no-preference) {
  .App-logo {
    animation: App-logo-spin infinite 20s linear;
  }
}

.App-header {
  background-color: #282c34;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: calc(10px + 2vmin);
  color: white;
}

.App-link {
  color: #61dafb;
}

@keyframes App-logo-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* 横幅渐变动画 */
@keyframes bannerGradient {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

/* 横幅文字闪烁效果 */
@keyframes bannerPulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.8;
  }
}

/* 固定布局相关样式 */
body, html, #root {
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden; /* 防止整个页面滚动 */
}

/* 自定义滚动条样式 */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb {
  background: #c1c1c1;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: #a8a8a8;
}

/* 确保antd组件在固定布局中的表现 */
.ant-layout {
  background: transparent;
}

.ant-layout-header {
  line-height: 64px;
}

.ant-layout-sider {
  box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35);
}

/* 移动端特殊样式 */
@media (max-width: 768px) {
  body, html, #root {
    overflow: auto; /* 移动端允许页面滚动 */
  }
}

/* 防止移动端横向滚动 */
* {
  box-sizing: border-box;
}

/* 内容区域滚动优化 */
.content-scroll {
  scrollbar-width: thin;
  scrollbar-color: #c1c1c1 #f1f1f1;
}


/*# sourceMappingURL=main.99ac5e7f.css.map*/