* { box-sizing: border-box; }
html, body, #app { height: 100%; margin: 0; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif; }
body { background: var(--bg-page); }
button, input, select, textarea { font: inherit; }
button:disabled { cursor: not-allowed; opacity: .6; }
a { color: var(--brand-primary); }
.stat-card { border-radius: var(--radius-md); padding: var(--space-5); color: #fff; position: relative; overflow: hidden; }
.stat-card .num { font-size: 32px; font-weight: 700; margin-top: var(--space-2); }
.stat-card .label { opacity: .85; font-size: 14px; }
.page-card { border-radius: var(--radius-md); border-color: var(--border-base); overflow: hidden; }
.page-card + .page-card { margin-top: var(--space-4); }
.page-card > .el-card__header { padding: var(--space-4) var(--space-6); border-bottom-color: var(--border-light); }
.page-card > .el-card__body { padding: var(--space-6); }
.el-table { --el-table-border-color: var(--border-light); --el-table-header-bg-color: var(--bg-inset); --el-table-row-hover-bg-color: var(--bg-hover); }
.el-table th.el-table__cell { color: var(--text-secondary); font-weight: 600; }
.el-table .cell { line-height: 1.5; }
.el-table .el-table__body .cell { font-variant-numeric: tabular-nums; }
.el-dialog { max-width: calc(100vw - 32px); border-radius: var(--radius-lg); }
.el-drawer { max-width: 100vw; }
.el-button { transition: background-color var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast); }
.el-input__wrapper:focus-within, .el-select__wrapper:focus-within { box-shadow: 0 0 0 1px var(--brand-primary) inset; }
.row-between { gap: var(--space-3); flex-wrap: wrap; }
.el-card__header .row-between > :last-child { display: flex; gap: var(--space-2); flex-wrap: wrap; align-items: center; }
.el-table__body-wrapper { scrollbar-width: thin; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }
@media (max-width: 640px) {
.page-card > .el-card__header, .page-card > .el-card__body { padding: var(--space-4); }
.el-dialog { width: calc(100vw - 32px) !important; }
.el-drawer { width: 100vw !important; }
}
.mono { font-family: 'JetBrains Mono', Consolas, monospace; font-size: 12px; white-space: pre-wrap; overflow-wrap: anywhere; }
.protocol-tag { font-weight: 600; }
/* 全局焦点可见样式(可访问性) */
*:focus-visible { outline: 2px solid var(--brand-primary); outline-offset: 2px; }