/* 公共信息面板 */ .jx3-template :where( .header, .page-header, .top-info, .info-bar, .summary, .main-card, .card, .panel, .section, .achievement-card, .material-card, .boss-item, .cell, .stat-item, .stat-box, .empty-card, .empty-state ) { color: var(--jx3-text); border: 1px solid var(--jx3-border-soft); background: linear-gradient(180deg, var(--jx3-surface), var(--jx3-surface-strong)); border-radius: var(--jx3-radius-md); box-shadow: var(--jx3-shadow-sm); } .jx3-template :where( .item, .summary-panel, .summary-item, .price-box, .price-item, .material-price-item, .store-price-item, .subtotal-row, .material-total, .achievement-info, .detail-item, .boss-card, .server-card, .recruit-card ) { color: var(--jx3-text-secondary); border-color: var(--jx3-border-faint); background: var(--jx3-surface-soft); } .jx3-template :where(.header, .page-header, .top-info, .info-bar) { padding: var(--jx3-space-5) var(--jx3-space-6); border-color: var(--jx3-border); } .jx3-template :where(.meta, .meta-row, .page-subtitle, .top-summary, .top-desc, .desc, .description, .time) { color: var(--jx3-text-muted); } .jx3-template .role { color: var(--jx3-text-secondary); } .jx3-template :where(.section-title, .section-header, .table-title, .summary-title, .card-header) { color: var(--jx3-gold-bright); border-color: var(--jx3-border-soft); } .jx3-template .section-title::before { background: var(--jx3-gold); } /* 状态与重点数据 */ .jx3-template :where(.rank-1, .price-col, .summary-percent, .item-percent, .point-value, .money-gold) { color: var(--jx3-gold-bright); } .jx3-template .rank-2 { color: #506578; } .jx3-template .rank-3 { color: #9a542e; } .jx3-template :where(.winrate, .success, .unfinished, .status-unfinished) { color: var(--jx3-green); } .jx3-template :where(.danger, .finished, .status-finished, .boss-final, .boss) { color: var(--jx3-red); } .jx3-template :where(.empty, .empty-row, .empty-data, .empty-state) { color: var(--jx3-text-muted); } .jx3-template :where(.progress, .map-progress) { overflow: hidden; background: #dce4e9; border: 1px solid rgba(39, 57, 73, 0.13); } .jx3-template :where(.progress-fill, .map-progress > span) { background: linear-gradient(90deg, var(--jx3-gold-muted), var(--jx3-gold-bright)); } .jx3-template :where(.avatar, .force-icon, .school-icon, .item-icon, .material-icon, .main-icon) { border: 1px solid var(--jx3-border-soft); background: var(--jx3-surface-muted); } .jx3-template :where(.tag, .category-tag, .channel-tag, .status-badge, .quality-badge, .material-tag) { border: 1px solid var(--jx3-border-soft); background: #fff4dc; color: var(--jx3-gold-bright); } .jx3-template :where(.footer, .card-footer, .summary-footer) { color: var(--jx3-text-muted); border-color: var(--jx3-border-soft); } /* 页面级色彩收敛 */ .jx3-template :where(.page-title, .main-name, .role-name, .item-name, .material-name, .achievement-name, .stat-value) { color: var(--jx3-text); } .jx3-template :where( .title, .summary-name, .feature-name, .event-name, .quantity-value, .price-box-value, .material-price-value, .store-price-value, .subtotal-value, .material-total-value ) { color: var(--jx3-text); } .jx3-template :where( .sub-info, .section-desc, .summary-count, .score, .tip-list li, .material-meta, .material-footer, .raw-price, .quantity-label, .subtotal-label, .material-total-label ) { color: var(--jx3-text-muted); } .jx3-template :where(.command, .feature, .material-card-header, .summary-section) { border-color: var(--jx3-border-faint); } .jx3-template .summary-section { background: var(--jx3-border-faint); } .jx3-template .tip-list li::before { background: var(--jx3-gold); } .jx3-template .command { color: var(--jx3-text-secondary); background: #eaf3fa; } .jx3-template .command:hover { color: var(--jx3-gold-bright); border-color: var(--jx3-border-soft); background: #fff4dc; } .jx3-template :where(.stat-label, .price-box-label, .material-price-label, .store-price-label, .point-label) { color: var(--jx3-text-muted); } .jx3-template :where(.stat-value, .price-box-value, .material-price-value, .store-price-value, .point-number) { font-variant-numeric: tabular-nums; } .jx3-template .data-page__meta { margin-bottom: var(--jx3-space-6); color: var(--jx3-text-muted); font-size: 20px; text-align: center; } /* @component data-table */ /* 标准数据页:列数和内容由 HTML 决定,视觉规则由所有查询页共用 */ .jx3-template :where(.table-wrapper, .table-scroll) { overflow: hidden; border: 1px solid var(--jx3-border-soft); border-radius: var(--jx3-radius-md); background: var(--jx3-surface); box-shadow: var(--jx3-shadow-sm); } .jx3-template table { width: 100%; table-layout: auto; overflow: hidden; border-collapse: collapse; border-radius: var(--jx3-radius-md); color: var(--jx3-text-secondary); background: var(--jx3-surface); border-color: var(--jx3-border-soft); text-align: center; box-shadow: none; } .jx3-template thead { color: var(--jx3-gold-bright); background: var(--jx3-surface-muted); border-top: 1px solid var(--jx3-border-strong); border-bottom: 1px solid var(--jx3-border-strong); } .jx3-template :where(th, td) { padding: 13px 14px; color: inherit; border-color: var(--jx3-border-faint); font-size: 19px; text-align: center; vertical-align: middle; } .jx3-template th { color: var(--jx3-gold-bright); font-weight: 700; letter-spacing: 0.03em; } .jx3-template td { border-bottom: 1px solid var(--jx3-border-faint); } .jx3-template tbody tr:nth-child(odd) { background: transparent; } .jx3-template tbody tr:nth-child(even) { background: #f3f6f8; } .jx3-template tbody tr:hover { background: #fff4df; } .jx3-template tbody tr:last-child td { border-bottom-color: transparent; } .jx3-template .data-table--spaced { margin-top: 10px; } .jx3-template .data-table--nowrap :where(th, td), .jx3-template .data-cell--nowrap { white-space: nowrap; } .jx3-template .data-cell--wrap { word-break: break-word; } .jx3-template .data-cell--copy { color: var(--jx3-text-secondary); font-weight: 600; line-height: 1.5; word-break: break-word; } .jx3-template .data-cell--strong, .jx3-template .data-cell--name { color: var(--jx3-text); font-weight: 700; } .jx3-template .data-cell--muted { color: var(--jx3-text-muted); } .jx3-template .data-cell--numeric { font-variant-numeric: tabular-nums; } .jx3-template .data-cell--rank { color: var(--jx3-gold-bright); font-weight: 800; white-space: nowrap; } .jx3-template .data-cell--score { white-space: nowrap; font-variant-numeric: tabular-nums; } .jx3-template .data-cell--time { color: var(--jx3-text-muted); white-space: nowrap; font-variant-numeric: tabular-nums; } .jx3-template .data-cell--accent, .jx3-template .data-cell--score { color: var(--jx3-gold-bright); font-weight: 800; } .jx3-template .data-avatar { display: block; width: 40px; height: 40px; margin: 0 auto; border-radius: 50%; object-fit: cover; } .jx3-template .data-cell--rank.rank-2 { color: #506578; } .jx3-template .data-cell--rank.rank-3 { color: #9a542e; } .jx3-template .icon-label { display: flex; align-items: center; justify-content: center; gap: 8px; min-width: 0; color: var(--jx3-text); font-weight: 700; white-space: nowrap; } .jx3-template .icon-label__icon { width: 32px; height: 32px; border: 1px solid var(--jx3-border-soft); border-radius: 50%; object-fit: contain; flex: 0 0 auto; background: var(--jx3-surface-muted); } .jx3-template .data-table tr.camp-haoqi { color: var(--jx3-blue); } .jx3-template .data-table tr.camp-eren { color: var(--jx3-red); } .jx3-template .data-table--camp-tinted tr.camp-haoqi { background: #eaf3fa; } .jx3-template .data-table--camp-tinted tr.camp-eren { background: #fcedeb; } .jx3-template .data-table--camp-tinted tr.camp-haoqi .data-cell--name, .jx3-template .data-table tr.camp-haoqi .data-cell--camp { color: var(--jx3-blue); } .jx3-template .data-table--camp-tinted tr.camp-eren .data-cell--name, .jx3-template .data-table tr.camp-eren .data-cell--camp { color: var(--jx3-red); } /* @endcomponent */ /* @component data-layout */ /* 通用分区、统计卡片与可配置列数的卡片网格 */ .jx3-template .data-section, .jx3-template .collection-section { margin-bottom: var(--jx3-space-6); } .jx3-template .data-section__title, .jx3-template .collection-heading { display: flex; align-items: center; gap: 10px; margin: 0 0 var(--jx3-space-3); color: var(--jx3-gold-bright); font-size: 28px; line-height: 1.3; font-weight: 800; } .jx3-template .data-section__title::before, .jx3-template .collection-heading::before { width: 5px; height: 30px; border-radius: 3px; background: var(--jx3-gold); content: ""; flex: 0 0 auto; } .jx3-template .card-grid { display: grid; grid-template-columns: repeat(var(--grid-columns, 3), minmax(0, 1fr)); gap: var(--grid-gap, 16px); } .jx3-template .stat-grid { display: grid; grid-template-columns: repeat(var(--grid-columns, 3), minmax(0, 1fr)); gap: 14px; margin-bottom: 22px; } .jx3-template .stat-card { padding: 18px 14px; border: 1px solid var(--jx3-border-faint); border-radius: var(--jx3-radius-md); background: var(--jx3-surface); text-align: center; box-shadow: var(--jx3-shadow-sm); } .jx3-template .stat-card__label { margin-bottom: var(--jx3-space-2); color: var(--jx3-text-muted); font-size: 20px; } .jx3-template .stat-card__value { color: var(--jx3-gold-bright); font-size: 34px; line-height: 1; font-weight: 800; font-variant-numeric: tabular-nums; } /* @endcomponent */ /* @component ability-card */ /* 技能与奇穴共用同一套能力卡片 */ .jx3-template .ability-card { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 12px; padding: 14px; border: 1px solid var(--jx3-border-faint); border-radius: var(--jx3-radius-md); background: var(--jx3-surface); box-shadow: var(--jx3-shadow-sm); } .jx3-template .ability-card__icon { width: 48px; height: 48px; border: 1px solid var(--jx3-border-soft); border-radius: 8px; object-fit: cover; background: var(--jx3-surface-muted); } .jx3-template .ability-card__head { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; } .jx3-template .ability-card__name { color: var(--jx3-text); font-size: 21px; line-height: 1.25; font-weight: 800; } .jx3-template .ability-card__tag { padding: 2px 8px; border: 1px solid var(--jx3-border-soft); border-radius: 999px; color: var(--jx3-gold-bright); background: #fff4dc; font-size: 18px; white-space: nowrap; } .jx3-template .ability-card__tag--accent { color: var(--jx3-bg-deep); background: var(--jx3-gold); font-weight: 700; } .jx3-template .ability-card__desc { color: var(--jx3-text-secondary); font-size: 19px; line-height: 1.55; word-break: break-word; } /* @endcomponent */ /* @component collection-card */ /* 奇遇与区服状态共用卡片网格 */ .jx3-template .collection-section { margin-bottom: var(--jx3-space-8); } .jx3-template .collection-heading { margin-bottom: var(--jx3-space-4); font-size: 36px; } .jx3-template .collection-card { display: flex; min-height: 90px; padding: 16px 12px; flex-direction: column; align-items: center; justify-content: center; border: 1px solid var(--jx3-border-faint); border-radius: var(--jx3-radius-md); background: var(--jx3-surface); text-align: center; box-shadow: var(--jx3-shadow-sm); } .jx3-template .collection-card__image { width: 100%; max-width: 180px; height: auto; margin-bottom: 6px; object-fit: contain; } .jx3-template .collection-card__name { margin-bottom: 4px; color: var(--jx3-text); font-size: 24px; font-weight: 600; } .jx3-template .collection-card__meta { color: var(--jx3-text-muted); font-size: 22px; } .jx3-template .collection-empty { padding: 18px; border: 1px solid var(--jx3-border-faint); border-radius: var(--jx3-radius-md); color: var(--jx3-text-muted); background: var(--jx3-surface); } .jx3-template .data-header { margin-bottom: var(--jx3-space-6); } .jx3-template .data-header__title { margin-bottom: var(--jx3-space-2); color: var(--jx3-text); font-size: 38px; font-weight: 800; } .jx3-template .data-header__meta { color: var(--jx3-text-muted); font-size: 22px; } .jx3-template .server-status-card { padding: 30px 12px; border-radius: var(--jx3-radius-md); color: #fff; font-size: 30px; font-weight: 600; text-align: center; } .jx3-template .server-status-card.爆满 { background: #b94f4b; } .jx3-template .server-status-card.拥挤 { color: #2c2106; background: #d4a64e; } .jx3-template .server-status-card:is(.正常, .顺畅) { background: #438d65; } .jx3-template .server-status-card.维护 { color: #253443; background: #9eaebb; } /* @endcomponent */ /* @component object-card */ /* 器物与家园装饰共用详情卡片 */ .jx3-template .object-card { display: flex; margin-bottom: var(--jx3-space-6); overflow: hidden; border: 1px solid var(--jx3-border-faint); border-radius: var(--jx3-radius-lg); background: var(--jx3-surface); box-shadow: var(--jx3-shadow-sm); } .jx3-template .object-card__image { width: 220px; height: 220px; padding: 16px; object-fit: contain; background: var(--jx3-surface-muted); } .jx3-template .object-card__content { min-width: 0; padding: 20px 24px; flex: 1; } .jx3-template .object-card__title { margin-bottom: 6px; font-size: 30px; font-weight: 800; } .jx3-template :where(.quality-1) { color: var(--jx3-text-muted); } .jx3-template :where(.quality-2) { color: var(--jx3-green); } .jx3-template :where(.quality-3) { color: var(--jx3-blue); } .jx3-template :where(.quality-4) { color: var(--jx3-purple); } .jx3-template :where(.quality-5) { color: #e6a25f; } .jx3-template .object-card__meta { margin-bottom: 14px; color: var(--jx3-text-muted); font-size: 19px; } .jx3-template .object-card__meta span { margin-right: 18px; } .jx3-template .object-card__tip { margin-bottom: 16px; padding: 10px 14px; border-left: 4px solid var(--jx3-gold); color: var(--jx3-text-secondary); background: #edf5fa; font-size: 18px; } .jx3-template .object-stats { display: grid; grid-template-columns: repeat(var(--grid-columns, 5), minmax(0, 1fr)); gap: 12px; } .jx3-template .object-stat { padding: 10px; border: 1px solid var(--jx3-border-faint); border-radius: var(--jx3-radius-md); background: var(--jx3-surface-soft); text-align: center; } .jx3-template .object-stat__label { margin-bottom: 6px; color: var(--jx3-text-muted); font-size: 18px; } .jx3-template .object-stat__value { color: var(--jx3-text); font-size: 20px; font-weight: 700; } .jx3-template .object-card__footer { margin-top: 12px; color: var(--jx3-text-muted); font-size: 18px; } /* @endcomponent */ /* @component data-extras */ .jx3-template .data-subtitle { margin: 40px 0 12px; color: var(--jx3-gold-bright); font-size: 30px; font-weight: 700; } .jx3-template .data-subtitle + .data-table { margin-bottom: var(--jx3-space-5); } .jx3-template .data-note { color: var(--jx3-text-secondary); font-weight: 600; } .jx3-template .data-price { color: var(--jx3-gold-bright); font-weight: 700; } .jx3-template .text-purple { color: var(--jx3-purple); font-weight: 600; } .jx3-template .text-blue { color: var(--jx3-blue); font-weight: 600; } /* @endcomponent */