/* 全局基础样式、主题变量与无障碍设置。 */
:root{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;color:#303133;background:#f0f2f5;font-synthesis:none;--el-color-primary:#409eff;--el-border-radius-base:4px;--el-font-size-base:14px}
*{box-sizing:border-box}
html,body,#app{margin:0;min-height:100%;width:100%}
body{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
button,input{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible{outline:2px solid #409eff;outline-offset:3px}
@media(prefers-reduced-motion:reduce){
*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}

/* 启动与导航反馈属于根组件，布局加载失败时仍可重试。 */
.startup{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#f0f2f5;padding:32px;text-align:center}
.startup h1{font-size:22px;font-weight:600}
.startup p{max-width:660px;line-height:1.8;color:#606266}
.startup button{border:0;border-radius:4px;background:#409eff;color:#fff;padding:10px 22px}
.startup button[hidden]{display:none}
.app-navigation-progress{position:fixed;inset:0 0 auto;height:2px;z-index:3000;pointer-events:none}
.app-navigation-progress::after{content:"";display:block;height:100%;background:var(--el-color-primary);box-shadow:0 0 6px var(--el-color-primary);transform:scaleX(var(--progress));transform-origin:left;transition:transform .2s ease-out}
.app-navigation-progress.is-done{opacity:0;transition:opacity .18s .2s}
.app-navigation-error{position:fixed;top:16px;right:16px;z-index:3000;width:min(560px,calc(100vw - 32px));box-shadow:0 4px 20px #0002}
.app-navigation-error .el-button{margin-top:12px}
@media(prefers-reduced-motion:reduce){
.app-navigation-progress::after{transform:none;box-shadow:none}
}
