/* ============================================================
   Base CSS — Reset + 全局排版 + 通用工具类
   依赖：tokens.css 必须先加载
   ============================================================ */

/* ----- Reset ----- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{font-family:var(--font-sans);font-size:var(--text-body);font-weight:var(--weight-regular);line-height:var(--leading-body);color:var(--text-primary);background:var(--bg-page);min-height:100dvh}
img,svg{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit;border:none;background:none;outline:none}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
a{color:var(--color-primary);text-decoration:none}
ul,ol{list-style:none}

/* ----- 标题层级（全局统一） ----- */
h1{font-size:var(--text-h1);font-weight:var(--weight-bold);line-height:var(--leading-heading)}
h2{font-size:var(--text-h2);font-weight:var(--weight-bold);line-height:var(--leading-heading)}
h3{font-size:var(--text-h3);font-weight:var(--weight-medium);line-height:var(--leading-heading)}

/* ----- 通用排版组件 ----- */
.text-body{font-size:var(--text-body);line-height:var(--leading-body)}
.text-caption{font-size:var(--text-caption);line-height:var(--leading-body)}
.text-small{font-size:var(--text-small)}
.text-secondary{color:var(--text-secondary)}
.text-tertiary{color:var(--text-tertiary)}
.text-accent{color:var(--color-primary)}
.text-bold{font-weight:var(--weight-bold)}
.text-mono{font-family:"Inter","Noto Sans SC",sans-serif}

/* ----- 毛玻璃卡片基类 ----- */
.glass{
  background:var(--glass-bg);
  backdrop-filter:blur(var(--glass-blur));
  -webkit-backdrop-filter:blur(var(--glass-blur));
  border:var(--glass-border);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-card);
}

/* ----- 实色卡片基类（不需要毛玻璃时） ----- */
.solid-card{
  background:var(--bg-surface-solid);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-card);
  border:1px solid var(--border-light);
}

/* ----- 通用隐藏方案（保留屏幕阅读器可访问） ----- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ----- 滚动条美化 ----- */
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}
::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}

/* ----- 全局过渡继承 ----- */
.glass,.solid-card,.btn,button,a,input,select,textarea{transition:all var(--duration-fast) var(--ease-out)}

/* ----- 无障碍：减弱动画 ----- */
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ----- 内容居中容器 ----- */
.content-max{max-width:var(--max-content-width);margin:0 auto;padding:0 var(--space-16)}
