Files
console-dev/app/assets/styles/official-site.pBD-PXD7.css
cneicy 42dfead9cd
前端验证 / verify (push) Failing after 15m3s
feat(ui): 优化控制台响应式布局与视觉体验
- 统一页面标题、圆角、字体和响应式断点,调整暗色主题及图表配色
- 新增表格列标签插件,在窄屏下将表格转换为卡片布局,优化实例、订单、工单等列表展示
- 支持移动端点击订单行进入详情,并完善订单凭据的打印布局
- 在财务中心展示本月及累计消费,补充充值关闭时的提示
- 优化工单详情布局,将附件上传入口整合至富文本编辑器工具栏
- 调整实例操作按钮、SSH 密钥操作及安全菜单图标
- 为多个页面显式导入 definePageMeta,完善页面元数据声明
2026-11-07 00:09:57 +08:00

1191 lines
25 KiB
CSS

/* 公开官网布局:导航、首屏、产品卡片、基础设施展示与联系页脚。 */
/* 导入方:app/layouts/official-site.vue。 */
.official-site {
min-height: 100vh;
color: var(--p-text-color, #334155);
background: var(--console-page-bg, #f8fafc);
--official-primary: var(--p-primary-color);
--official-accent: #eff6ff;
}
.official-site a {
color: inherit;
text-decoration: none;
}
/* 滚动时保持此区域可见;定位偏移需与页面固定顶栏及父级滚动容器一起核对。 */
.official-header {
z-index: 20;
border-bottom: 1px solid var(--console-panel-border, #e2e8f0);
background: color-mix(
in srgb,
var(--p-content-background, #fff) 92%,
transparent
);
-webkit-backdrop-filter: blur(12px);
backdrop-filter: blur(12px);
position: sticky;
top: 0;
}
.official-header-inner {
align-items: center;
gap: 32px;
width: min(1200px, 100% - 36px);
min-height: 66px;
margin: 0 auto;
display: flex;
}
.official-brand {
align-items: center;
gap: 10px;
min-width: 0;
display: inline-flex;
}
.official-brand-mark {
background: color-mix(
in srgb,
var(--official-primary) 11%,
var(--p-content-background)
);
border-radius: var(--radius-md);
justify-content: center;
align-items: flex-end;
gap: 2px;
width: 30px;
height: 30px;
padding: 6px;
display: inline-flex;
}
.official-brand-mark span {
background: var(--official-primary);
border-radius: 2px 2px 1px 1px;
width: 4px;
}
.official-brand-mark span:first-child {
opacity: 0.6;
height: 8px;
}
.official-brand-mark span:nth-child(2) {
height: 14px;
}
.official-brand-mark span:nth-child(3) {
opacity: 0.8;
height: 10px;
}
.official-brand-image {
-o-object-fit: contain;
object-fit: contain;
width: auto;
max-width: 136px;
max-height: 36px;
display: block;
}
.official-brand-copy {
flex-direction: column;
min-width: 0;
line-height: 1.2;
display: flex;
}
.official-brand-copy strong {
color: var(--p-text-color);
text-overflow: ellipsis;
white-space: nowrap;
font-size: 1rem;
font-weight: 650;
overflow: hidden;
}
.official-brand-copy small {
color: var(--p-text-muted-color);
white-space: nowrap;
margin-top: 3px;
font-size: 0.75rem;
}
.official-nav {
flex: 1;
justify-content: center;
align-items: center;
gap: 27px;
display: flex;
}
.official-mobile-nav a,
.official-nav a {
color: var(--p-text-muted-color);
font-size: 0.9375rem;
transition: color 0.18s;
}
.official-mobile-nav a:hover,
.official-nav a:hover {
color: var(--official-primary);
}
.official-header-actions {
align-items: center;
gap: 10px;
display: flex;
}
.official-header-login {
border: 1px solid var(--console-panel-border);
background: var(--p-content-background);
color: var(--p-text-color);
white-space: nowrap;
border-radius: var(--radius-sm);
align-items: center;
gap: 7px;
padding: 9px 13px;
font-size: 0.875rem;
transition:
border-color 0.18s,
color 0.18s;
display: inline-flex;
}
.official-header-login i {
color: var(--official-primary);
font-size: 0.8125rem;
}
.official-header-login:hover {
border-color: var(--official-primary);
color: var(--official-primary);
}
.official-menu-toggle {
border: 1px solid var(--console-panel-border);
background: var(--p-content-background);
width: 38px;
height: 38px;
color: var(--p-text-color);
cursor: pointer;
border-radius: var(--radius-sm);
display: none;
}
.official-mobile-nav {
display: none;
}
.official-main {
width: min(1200px, 100% - 36px);
margin: 0 auto;
}
.official-page {
padding: 35px 0 50px;
}
.official-hero-top {
grid-template-columns: 1.05fr 0.95fr;
align-items: end;
gap: 56px;
padding: 36px 0 28px;
display: grid;
}
.official-eyebrow,
.official-section-eyebrow {
color: var(--official-primary);
align-items: center;
gap: 8px;
font-size: 0.85rem;
font-weight: 600;
display: inline-flex;
}
.official-eyebrow {
border: 1px solid
color-mix(in srgb, var(--official-primary) 18%, var(--console-panel-border));
background: color-mix(
in srgb,
var(--official-primary) 5%,
var(--p-content-background)
);
border-radius: 20px;
padding: 6px 10px;
}
.official-eyebrow > span {
background: var(--official-primary);
width: 7px;
height: 7px;
box-shadow: 0 0 0 3px
color-mix(in srgb, var(--official-primary) 13%, transparent);
border-radius: 50%;
}
.official-hero-heading h1 {
max-width: 700px;
color: var(--p-text-color);
letter-spacing: -0.055em;
white-space: pre-line;
margin: 21px 0 9px;
font-size: clamp(2.15rem, 4.25vw, 3.7rem);
font-weight: 700;
line-height: 1.18;
}
.official-hero-heading h2 {
color: var(--p-text-muted-color);
margin: 0;
font-size: clamp(1.1rem, 1.7vw, 1.42rem);
font-weight: 500;
}
.official-hero-intro {
padding: 0 0 3px;
}
.official-hero-intro > p {
max-width: 500px;
color: var(--p-text-muted-color);
margin: 0 0 18px;
font-size: 1rem;
line-height: 1.8;
}
.official-hero-features {
flex-wrap: wrap;
gap: 9px 18px;
margin-bottom: 22px;
display: flex;
}
.official-hero-features span {
color: var(--p-text-color);
align-items: center;
gap: 7px;
font-size: 0.875rem;
display: inline-flex;
}
.official-hero-features i {
color: var(--official-primary);
font-size: 0.8125rem;
}
.official-contact-actions,
.official-hero-actions {
flex-wrap: wrap;
align-items: center;
gap: 10px;
display: flex;
}
.official-button {
border: 1px solid #0000;
border-radius: var(--radius-sm);
justify-content: center;
align-items: center;
gap: 9px;
min-height: 38px;
padding: 8px 13px;
font-size: 0.91rem;
font-weight: 500;
line-height: 1.3;
transition:
background 0.18s,
border-color 0.18s,
color 0.18s,
transform 0.18s;
display: inline-flex;
}
.official-button:hover {
transform: translateY(-1px);
}
.official-button.primary {
background: var(--official-primary);
color: var(--p-primary-contrast-color, #fff);
box-shadow: 0 2px 5px
color-mix(in srgb, var(--official-primary) 20%, transparent);
}
.official-button.primary:hover {
filter: brightness(0.96);
}
.official-button.secondary {
border-color: var(--console-panel-border);
background: var(--p-content-background);
color: var(--p-text-color);
}
.official-button.secondary:hover {
border-color: color-mix(
in srgb,
var(--official-primary) 40%,
var(--console-panel-border)
);
color: var(--official-primary);
}
.official-button i {
font-size: 0.8125rem;
}
/* 首屏装饰性网络图由CSS元素组成,与真实资源监控数据无关。 */
.official-hero-visual {
border: 1px solid
color-mix(in srgb, var(--official-primary) 17%, var(--console-panel-border));
background: linear-gradient(
122deg,
color-mix(in srgb, var(--official-accent) 86%, var(--p-content-background))
0,
var(--p-content-background) 57%,
color-mix(in srgb, var(--official-primary) 10%, var(--p-content-background))
100%
);
min-height: 315px;
box-shadow: var(--console-panel-shadow);
border-radius: var(--radius-md);
position: relative;
overflow: hidden;
}
.official-visual-grid {
opacity: 0.48;
background-image:
linear-gradient(
to right,
color-mix(in srgb, var(--official-primary) 11%, transparent) 1px,
transparent 1px
),
linear-gradient(
to bottom,
color-mix(in srgb, var(--official-primary) 11%, transparent) 1px,
transparent 1px
);
background-size: 34px 34px;
position: absolute;
inset: 0;
-webkit-mask-image: linear-gradient(110deg, #000 5%, #0000 83%);
mask-image: linear-gradient(110deg, #000 5%, #0000 83%);
}
.official-visual-orbit {
border: 1px solid color-mix(in srgb, var(--official-primary) 18%, transparent);
border-radius: 50%;
width: 290px;
height: 290px;
position: absolute;
}
.orbit-one {
top: 11px;
left: 8%;
}
.orbit-one,
.orbit-two {
transform: scaleX(1.45);
}
.orbit-two {
top: 54px;
left: 14%;
}
.official-visual-network {
position: absolute;
inset: 0;
}
.network-line {
transform-origin: 0;
background: linear-gradient(
90deg,
transparent,
color-mix(in srgb, var(--official-primary) 55%, #fff),
transparent
);
width: 47%;
height: 1px;
position: absolute;
top: 50%;
left: 14%;
}
.line-one {
transform: rotate(-18deg);
}
.line-two {
transform: rotate(19deg);
}
.network-node {
border: 2px solid var(--p-content-background);
background: var(--official-primary);
width: 8px;
height: 8px;
box-shadow: 0 0 0 4px
color-mix(in srgb, var(--official-primary) 14%, transparent);
border-radius: 50%;
position: absolute;
}
.node-one {
top: 26%;
left: 23%;
}
.node-two {
top: 68%;
left: 33%;
}
.node-three {
top: 37%;
left: 53%;
}
.node-four {
top: 62%;
left: 62%;
}
.official-art-caption {
color: color-mix(in srgb, var(--p-text-color) 74%, transparent);
align-items: center;
gap: 9px;
font-size: 0.84rem;
display: inline-flex;
position: absolute;
bottom: 23px;
left: 25px;
}
.official-art-pulse {
background: var(--official-primary);
border-radius: 50%;
width: 7px;
height: 7px;
}
.official-hero-stat {
width: min(265px, 40%);
min-height: 215px;
padding: 20px;
position: absolute;
top: 28px;
right: 28px;
}
.official-stat-kicker {
color: var(--p-text-muted-color);
font-size: 0.8125rem;
}
.official-stat-value {
color: var(--p-text-color);
letter-spacing: -0.04em;
margin-top: 18px;
font-size: 1.9rem;
font-weight: 700;
line-height: 1.1;
}
.official-stat-value small {
color: var(--p-text-muted-color);
letter-spacing: 0;
margin-left: 4px;
font-size: 0.85rem;
font-weight: 500;
}
.official-hero-stat strong {
color: var(--p-text-color);
margin-top: 11px;
font-size: 0.95rem;
font-weight: 600;
display: block;
}
.official-hero-stat p {
color: var(--p-text-muted-color);
margin: 6px 0 0;
font-size: 0.8125rem;
line-height: 1.55;
}
.official-floating-label {
border: 1px solid var(--console-panel-border);
background: var(--p-content-background);
color: var(--p-text-color);
box-shadow: var(--console-panel-shadow);
border-radius: var(--radius-sm);
align-items: center;
gap: 8px;
padding: 9px 12px;
font-size: 0.86rem;
display: inline-flex;
position: absolute;
bottom: 66px;
left: 7%;
}
.official-floating-label i {
color: var(--official-primary);
font-size: 0.8125rem;
}
.official-section {
margin-top: 52px;
scroll-margin-top: 87px;
}
.official-section-head {
justify-content: space-between;
align-items: flex-end;
gap: 25px;
margin-bottom: 20px;
display: flex;
}
.official-contact-panel h2,
.official-infra-copy h2,
.official-section-head h2 {
color: var(--p-text-color);
letter-spacing: -0.035em;
margin: 7px 0 6px;
font-size: clamp(1.45rem, 2.5vw, 2rem);
font-weight: 650;
line-height: 1.3;
}
.official-contact-panel p,
.official-infra-copy > p,
.official-section-head p {
max-width: 690px;
color: var(--p-text-muted-color);
margin: 0;
font-size: 0.96rem;
line-height: 1.7;
}
.official-section-badges {
flex-wrap: wrap;
justify-content: flex-end;
gap: 8px;
display: flex;
}
.official-section-badges span {
border: 1px solid var(--console-panel-border);
background: var(--p-content-background);
color: var(--p-text-muted-color);
white-space: nowrap;
border-radius: var(--radius-sm);
align-items: center;
gap: 6px;
padding: 6px 9px;
font-size: 0.8125rem;
display: inline-flex;
}
.official-section-badges i {
color: var(--official-primary);
font-size: 0.75rem;
}
/* 官网产品卡片网格,不改变商品接口或库存判定。 */
.official-product-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 14px;
display: grid;
}
.official-product-card {
min-height: 315px;
padding: 18px;
transition:
border-color 0.18s,
box-shadow 0.18s,
transform 0.18s;
position: relative;
}
.official-product-card:hover {
border-color: color-mix(
in srgb,
var(--official-primary) 30%,
var(--console-panel-border)
);
transform: translateY(-2px);
box-shadow: 0 5px 14px #0f172a14;
}
.official-product-icon {
border: 1px solid
color-mix(in srgb, var(--official-primary) 15%, var(--console-panel-border));
background: color-mix(
in srgb,
var(--official-primary) 7%,
var(--p-content-background)
);
width: 38px;
height: 38px;
color: var(--official-primary);
border-radius: var(--radius-sm);
place-items: center;
font-size: 1.2rem;
display: grid;
}
.official-product-title-row {
justify-content: space-between;
align-items: flex-start;
gap: 10px;
margin-top: 16px;
display: flex;
}
.official-product-title-row h3 {
color: var(--p-text-color);
margin: 0;
font-size: 1.1rem;
font-weight: 600;
}
.official-product-title-row span {
color: var(--p-text-muted-color);
letter-spacing: 0.08em;
margin-top: 3px;
font-size: 0.75rem;
display: block;
}
.official-product-title-row > i {
color: var(--p-text-muted-color);
margin-top: 3px;
font-size: 0.875rem;
}
.official-product-description {
min-height: 42px;
color: var(--p-text-muted-color);
margin: 12px 0 0;
font-size: 0.87rem;
line-height: 1.6;
}
.official-product-price {
color: var(--p-text-color);
align-items: baseline;
gap: 7px;
margin-top: 15px;
font-size: 1.13rem;
font-weight: 650;
display: flex;
}
.official-product-price small {
color: var(--p-text-muted-color);
font-size: 0.79rem;
font-weight: 400;
}
.official-product-features {
border-top: 1px solid var(--console-panel-border);
gap: 7px;
margin: 14px 0;
padding: 14px 0 0;
list-style: none;
display: grid;
}
.official-product-features li {
color: var(--p-text-muted-color);
justify-content: space-between;
align-items: center;
gap: 12px;
font-size: 0.8125rem;
display: flex;
}
.official-product-features i {
color: var(--official-primary);
font-size: 0.75rem;
}
.official-product-link {
align-items: center;
gap: 7px;
font-size: 0.875rem;
font-weight: 600;
display: inline-flex;
color: var(--official-primary) !important;
}
.official-product-link i {
font-size: 0.75rem;
transition: transform 0.18s;
}
.official-product-link:hover i {
transform: translate(3px);
}
.official-empty-card {
min-height: 200px;
color: var(--p-text-muted-color);
justify-content: center;
align-items: center;
gap: 8px;
display: flex;
}
.official-infra-panel {
grid-template-columns: 0.9fr 1.1fr;
min-height: 350px;
padding: 25px;
display: grid;
overflow: hidden;
}
.official-infra-copy {
flex-direction: column;
align-items: flex-start;
display: flex;
}
.official-infra-copy > p {
max-width: 470px;
}
.official-infra-stats {
flex-wrap: wrap;
gap: 28px;
margin: auto 0 0;
padding-top: 30px;
display: flex;
}
.official-infra-stats div {
flex-direction: column-reverse;
gap: 4px;
display: flex;
}
.official-infra-stats dt {
color: var(--p-text-muted-color);
font-size: 0.8125rem;
}
.official-infra-stats dd {
color: var(--p-text-color);
margin: 0;
font-size: 1.2rem;
font-weight: 650;
}
.official-infra-stats dd small {
color: var(--p-text-muted-color);
margin-left: 4px;
font-size: 0.8125rem;
font-weight: 400;
}
.official-infra-visual {
border: 1px solid
color-mix(in srgb, var(--official-primary) 14%, var(--console-panel-border));
background: linear-gradient(
130deg,
color-mix(in srgb, var(--official-accent) 70%, var(--p-content-background)),
var(--p-content-background)
);
border-radius: var(--radius-md);
min-height: 285px;
position: relative;
overflow: hidden;
}
.official-infra-world {
opacity: 0.55;
place-items: center;
display: grid;
position: absolute;
inset: 0;
}
.official-infra-world:after,
.official-infra-world:before {
content: "";
border: 1px solid color-mix(in srgb, var(--official-primary) 28%, transparent);
border-radius: 50%;
width: 205px;
height: 205px;
position: absolute;
}
.official-infra-world:after {
width: 270px;
height: 120px;
transform: rotate(-27deg);
}
.official-infra-world span {
background: var(--official-primary);
width: 6px;
height: 6px;
box-shadow: 0 0 0 5px
color-mix(in srgb, var(--official-primary) 13%, transparent);
border-radius: 50%;
position: absolute;
}
.official-infra-world span:first-child {
top: 28%;
left: 30%;
}
.official-infra-world span:nth-child(2) {
top: 40%;
right: 21%;
}
.official-infra-world span:nth-child(3) {
bottom: 20%;
left: 49%;
}
.official-infra-world span:nth-child(4) {
bottom: 33%;
left: 22%;
}
.official-infra-world span:nth-child(5) {
top: 19%;
right: 39%;
}
.official-infra-card {
width: min(320px, 74%);
padding: 15px;
position: absolute;
top: 22px;
right: 22px;
}
.official-infra-card-kicker {
color: var(--official-primary);
letter-spacing: 0.09em;
font-size: 0.75rem;
font-weight: 600;
display: block;
}
.official-infra-card > strong {
color: var(--p-text-color);
margin-top: 7px;
font-size: 0.98rem;
display: block;
}
.official-infra-card > p {
color: var(--p-text-muted-color);
margin: 4px 0 14px;
font-size: 0.8125rem;
}
.official-resource-row {
color: var(--p-text-muted-color);
grid-template-columns: 86px minmax(40px, 1fr) auto;
align-items: center;
gap: 8px;
margin-top: 10px;
font-size: 0.77rem;
display: grid;
}
.official-resource-track {
background: color-mix(
in srgb,
var(--official-primary) 10%,
var(--console-panel-border)
);
border-radius: var(--radius-md);
height: 5px;
overflow: hidden;
}
.official-resource-track i {
border-radius: inherit;
background: var(--official-primary);
height: 100%;
display: block;
}
.official-resource-row b {
color: var(--p-text-color);
white-space: nowrap;
font-size: 0.74rem;
font-weight: 500;
}
.official-reviews-head {
justify-content: flex-start;
}
.official-review-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 14px;
display: grid;
}
.official-review-card {
min-height: 190px;
padding: 18px;
}
.official-review-mark {
color: var(--official-primary);
font-size: 2rem;
font-weight: 700;
line-height: 0.9;
}
.official-review-card > p {
min-height: 52px;
color: var(--p-text-color);
margin: 10px 0 18px;
font-size: 0.9375rem;
line-height: 1.65;
}
.official-review-person {
border-top: 1px solid var(--console-panel-border);
align-items: center;
gap: 10px;
padding-top: 13px;
display: flex;
}
.official-review-avatar,
.official-review-person img {
-o-object-fit: cover;
object-fit: cover;
background: color-mix(
in srgb,
var(--official-primary) 11%,
var(--p-content-background)
);
width: 34px;
height: 34px;
color: var(--official-primary);
border-radius: 50%;
place-items: center;
display: grid;
}
.official-review-person div {
flex-direction: column;
gap: 2px;
display: flex;
}
.official-review-person strong {
color: var(--p-text-color);
font-size: 0.8125rem;
font-weight: 600;
}
.official-review-person small {
color: var(--p-text-muted-color);
font-size: 0.75rem;
}
.official-contact-section {
margin-top: 50px;
}
.official-contact-panel {
border-left: 3px solid var(--official-primary);
justify-content: space-between;
align-items: center;
gap: 30px;
padding: 25px;
display: flex;
}
.official-contact-panel > div:first-child {
max-width: 670px;
}
.official-contact-actions {
flex-shrink: 0;
justify-content: flex-end;
}
/* 官网联系信息和页脚链接区域,与会员控制台页脚分别维护。 */
.official-footer {
border-top: 1px solid var(--console-panel-border);
background: var(--p-content-background);
}
.official-footer-main {
grid-template-columns: 1.15fr 1.4fr 0.9fr;
gap: 42px;
width: min(1200px, 100% - 36px);
margin: 0 auto;
padding: 35px 0 28px;
display: grid;
}
.official-footer-brand > p {
max-width: 300px;
color: var(--p-text-muted-color);
margin: 15px 0 0;
font-size: 0.8125rem;
line-height: 1.65;
}
.official-footer-groups {
flex-wrap: wrap;
gap: 30px;
display: flex;
}
.official-footer-contact,
.official-footer-group {
flex-direction: column;
align-items: flex-start;
gap: 10px;
display: flex;
}
.official-footer-contact h2,
.official-footer-group h2 {
color: var(--p-text-color);
margin: 2px 0 4px;
font-size: 0.875rem;
font-weight: 600;
}
.official-footer-contact a,
.official-footer-contact p,
.official-footer-group a {
color: var(--p-text-muted-color);
margin: 0;
font-size: 0.8125rem;
line-height: 1.5;
}
.official-footer-contact a:hover,
.official-footer-group a:hover {
color: var(--official-primary);
}
.official-footer-contact a,
.official-footer-contact p {
align-items: flex-start;
gap: 8px;
display: flex;
}
.official-footer-contact i {
color: var(--official-primary);
margin-top: 2px;
font-size: 0.8125rem;
}
.official-footer-qr {
color: var(--p-text-muted-color);
align-items: center;
gap: 10px;
font-size: 0.75rem;
display: flex;
}
.official-footer-qr img {
border: 1px solid var(--console-panel-border);
-o-object-fit: contain;
object-fit: contain;
border-radius: var(--radius-sm);
width: 56px;
height: 56px;
}
.official-footer-bottom {
border-top: 1px solid var(--console-panel-border);
width: min(1200px, 100% - 36px);
min-height: 50px;
color: var(--p-text-muted-color);
justify-content: space-between;
align-items: center;
gap: 12px;
margin: 0 auto;
font-size: 0.75rem;
display: flex;
}
.official-footer-bottom > div {
gap: 17px;
display: flex;
}
.official-footer-bottom a:hover {
color: var(--official-primary);
}
/* 键盘操作的可见焦点:不要只保留鼠标 hover 效果而移除此反馈。 */
.official-site a:focus-visible,
.official-site button:focus-visible {
outline: 2px solid var(--official-primary);
outline-offset: 3px;
}
/* 视口条件 (width<=900px) 下的响应式覆盖;保留相对基础规则的层叠顺序。 */
@media (width<=900px) {
.official-header-inner {
gap: 18px;
}
.official-nav {
gap: 15px;
}
.official-hero-top {
gap: 35px;
}
.official-section-head {
flex-direction: column;
align-items: flex-start;
}
.official-section-badges {
justify-content: flex-start;
}
.official-infra-panel {
grid-template-columns: 1fr;
gap: 25px;
}
.official-infra-stats {
margin-top: 26px;
}
.official-footer-main {
grid-template-columns: 1fr 1.3fr;
}
.official-footer-contact {
grid-column: 2;
}
}
/* 视口条件 (width<=640px) 下的响应式覆盖;保留相对基础规则的层叠顺序。 */
@media (width<=640px) {
.official-footer-bottom,
.official-footer-main,
.official-header-inner,
.official-main {
width: min(100% - 24px, 560px);
}
.official-header-inner {
justify-content: space-between;
min-height: 58px;
}
.official-nav {
display: none;
}
.official-header-login {
padding: 8px 9px;
font-size: 0.8125rem;
}
.official-menu-toggle {
place-items: center;
display: inline-grid;
}
.official-mobile-nav {
border-top: 1px solid var(--console-panel-border);
background: var(--p-content-background);
gap: 0;
padding: 4px 12px 12px;
display: grid;
}
.official-mobile-nav a {
border-bottom: 1px solid var(--console-panel-border);
padding: 11px 7px;
}
.official-page {
padding: 20px 0 38px;
}
.official-hero-top {
grid-template-columns: 1fr;
gap: 19px;
padding: 17px 0 20px;
}
.official-hero-heading h1 {
margin-top: 16px;
font-size: clamp(2rem, 8.5vw, 2.8rem);
}
.official-hero-intro > p {
margin-bottom: 13px;
font-size: 0.9375rem;
}
.official-hero-features {
margin-bottom: 16px;
}
.official-hero-visual {
min-height: 270px;
}
.official-hero-stat {
width: min(236px, 58%);
min-height: 187px;
padding: 14px;
top: 16px;
right: 14px;
}
.official-stat-value {
margin-top: 13px;
font-size: 1.55rem;
}
.official-floating-label {
max-width: 48%;
font-size: 0.75rem;
bottom: 17px;
left: 12px;
}
.official-art-caption {
text-align: right;
max-width: 49%;
font-size: 0.73rem;
bottom: 19px;
left: auto;
right: 14px;
}
.official-section {
margin-top: 38px;
}
.official-product-grid {
grid-template-columns: 1fr;
}
.official-product-card {
min-height: 0;
}
.official-product-description {
min-height: auto;
}
.official-infra-panel {
padding: 16px;
}
.official-infra-visual {
min-height: 265px;
}
.official-infra-card {
width: min(310px, 82%);
padding: 13px;
top: 14px;
right: 12px;
}
.official-infra-stats {
gap: 18px;
}
.official-review-grid {
grid-template-columns: 1fr;
}
.official-contact-panel {
flex-direction: column;
align-items: flex-start;
gap: 18px;
padding: 18px;
}
.official-contact-actions {
justify-content: flex-start;
}
.official-footer-main {
grid-template-columns: 1fr 1fr;
gap: 23px 15px;
padding: 26px 0 21px;
}
.official-footer-brand {
grid-column: 1/-1;
}
.official-footer-brand > p {
max-width: 460px;
}
.official-footer-groups {
grid-column: 1/-1;
gap: 26px;
}
.official-footer-contact {
grid-column: 1/-1;
}
.official-footer-bottom {
flex-direction: column;
justify-content: center;
align-items: flex-start;
padding: 12px 0;
}
}
/* 尊重减少动态效果偏好:保留状态信息,降低或取消非必要动画。 */
@media (prefers-reduced-motion: reduce) {
.official-site *,
.official-site :after,
.official-site :before {
scroll-behavior: auto !important;
transition-duration: 0.01ms !important;
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
}
}