/* 七境 v1.2.1-R1 · 连续材质增量
 * 只处理容器/控件边界。原境徽、玉牌镶边、星环、流光、滤镜、动效时长均在原文件中保留。
 * 仅随 Qijing 模板加载，不改 Cartoon/MountFuji/管理后台。
 */
html[data-qj-surface] {
    --qj-seam: rgba(var(--qj-accent-rgb), .075);
    --qj-seam-hover: rgba(var(--qj-accent-rgb), .18);
    --qj-control-radius: 11px;
    --qj-reading-surface: var(--qj-surface-strong);
}
html[data-qj-surface][data-appearance="dark"] { --qj-seam: rgba(var(--qj-accent-rgb), .065); }

@supports (background: color-mix(in srgb, white, transparent)) {
    html[data-qj-surface] { --qj-reading-surface: color-mix(in srgb, var(--qj-surface-strong) 88%, transparent); }
}

/* 交互层：不改主按钮颜色与扫光，只让它不再像与页面无关的胶囊。 */
.qj-body .qj-btn { border-radius: var(--qj-control-radius); }
.qj-body .qj-btn--primary { border-color: transparent; }
.qj-body .qj-btn--ghost { border-color: var(--qj-seam); background: var(--qj-surface-soft); }
.qj-body .qj-btn--ghost:hover { border-color: var(--qj-seam-hover); background: var(--qj-surface); }
.qj-body .qj-chip { border-radius: var(--qj-control-radius); border-color: transparent; }
.qj-body .qj-chip:hover { border-color: var(--qj-seam-hover); }
.qj-body .qj-chip.is-primary, .qj-body .qj-chip[aria-selected="true"] { border-color: transparent; }
.qj-body .qj-icon-btn, .qj-body .qj-search input { border-color: var(--qj-seam); }
.qj-body .qj-icon-btn:hover, .qj-body .qj-icon-btn[aria-expanded="true"] { border-color: var(--qj-seam-hover); }
.qj-body .qj-hero__realm { border-color: transparent; }
.qj-body .qj-search input:focus { border-color: var(--qj-accent); }

/* 外壳只留一层材质边界；内层仍有原来完整的卡面与光学效果。 */
.qj-body .qj-feature.qj-glass { border-color: var(--qj-seam); background: var(--qj-reading-surface); }
.qj-body .qj-card.qj-glass { border-color: var(--qj-seam); }
.qj-body .qj-card:hover { border-color: var(--qj-seam-hover); }
.qj-body .qj-card__foot { border-top-color: transparent; }
.qj-body .qj-card__go { border-color: var(--qj-seam); }
/* 系列图鉴保留封面、档位、筛选与排版，仅降低各组外框。 */
.qj-body .qj-atlas__item { border-color: var(--qj-seam); }
.qj-body .qj-atlas__series { border-color: transparent; }
.qj-body .qj-atlas__series:hover, .qj-body .qj-atlas__series.is-active { border-color: var(--qj-seam-hover); }

/* 首页下半部与页脚接续为阅读面；不删文字，不搬动入口。 */
.qj-body .qj-steps.qj-glass,
.qj-body .qj-footer__panel.qj-glass { border-color: transparent; background: var(--qj-surface-soft); box-shadow: inset 0 1px 0 var(--qj-seam); }
.qj-body .qj-contact a, .qj-body .qj-contact button { border-color: var(--qj-seam); }
.qj-body .qj-footer__scope { border-color: var(--qj-seam); }

/* 商品详情 / 查单 / 教程 / 登录：不同功能共用一个阅读材质，不再层层套框。 */
.qj-body .qj-buy.qj-glass,
.qj-body .qj-query__form.qj-glass,
.qj-body .qj-auth-panel.qj-glass,
.qj-body .qj-auth-card.qj-glass,
.qj-body .qj-auth__card.qj-glass,
.qj-body .qj-item__detail.qj-glass,
.qj-body .qj-about.qj-glass { border-color: var(--qj-seam); background: var(--qj-reading-surface); }
.qj-body .qj-fold.qj-glass,
.qj-body .qj-band.qj-glass,
.qj-body .qj-trio .qj-glass,
.qj-body .qj-pair.qj-glass { border-color: var(--qj-seam); }
.qj-body .qj-fold__icon { border-color: var(--qj-seam-hover); }
.qj-body .order-item { border-color: var(--qj-seam); }
.qj-body .order-header, .qj-body .card-section { border-color: var(--qj-seam); }
/* 卡密是有操作含义的区域，仍有明确左标线与底色，非全面抹边。 */
.qj-body .card-display { border: 1px solid transparent; border-left: 2px solid var(--qj-accent); border-radius: 0 11px 11px 0; }
.qj-body .qj-buy__price, .qj-body .qj-buy__head, .qj-body .qj-buy__section { border-color: var(--qj-seam); }
.qj-body .qj-option { border-radius: var(--qj-control-radius); border-color: var(--qj-seam-hover); }
/* 规格选中态是状态，不是装饰：保留可辨轮廓。 */
.qj-body .qj-option.is-primary { border-color: var(--qj-accent); box-shadow: inset 0 0 0 1px rgba(var(--qj-accent-rgb), .45); }
.qj-body .qj-qty { border-radius: var(--qj-control-radius); border-color: var(--qj-seam-hover); }
.qj-body .pay-list .pay { border-radius: var(--qj-control-radius); }

/* 输入保留底线和焦点/错误状态；验证码原尺寸与背景不动。 */
.qj-body .qj-input:not([aria-invalid="true"]):not(.is-invalid):not(:focus),
.qj-body .qj-field input.form-control:not([aria-invalid="true"]):not(.is-invalid):not(:focus),
.qj-body .qj-field textarea.form-control:not([aria-invalid="true"]):not(.is-invalid):not(:focus),
.qj-body .qj-field select.form-control:not([aria-invalid="true"]):not(.is-invalid):not(:focus) {
    border-color: var(--qj-seam) !important;
    border-bottom-color: var(--qj-line-strong) !important;
    border-radius: var(--qj-control-radius);
}
.qj-body :focus-visible { outline-color: var(--qj-accent); }
.qj-body .qj-input[aria-invalid="true"],
.qj-body input[aria-invalid="true"],
.qj-body textarea[aria-invalid="true"] { border-color: var(--qj-bad) !important; }
@media (forced-colors: active) {
    .qj-body .qj-btn, .qj-body .qj-chip, .qj-body .qj-option, .qj-body .qj-input { border: 1px solid ButtonText !important; }
    .qj-body :focus-visible { outline: 2px solid Highlight !important; }
}

/* 会员中心：不压低表格可读性，减少外壳和内层统计块的重复包边。 */
html[data-qj-surface="member"] .qj-member .mf-topbar-inner,
html[data-qj-surface="member"] .qj-member .mf-sidebar-inner,
html[data-qj-surface="member"] .qj-member .mf-sidebar-profile,
html[data-qj-surface="member"] .qj-member .mf-panel,
html[data-qj-surface="member"] .qj-member .mf-kpi-card,
html[data-qj-surface="member"] .qj-member .mf-dashboard-welcome,
html[data-qj-surface="member"] .qj-member .mf-page-intro { border-color: var(--qj-seam); }
html[data-qj-surface="member"] .qj-member .mf-consume-grid > div,
html[data-qj-surface="member"] .qj-member .mf-operation-strip a { border-color: transparent; }
html[data-qj-surface="member"] .qj-member .mf-panel .table-search { border-color: transparent !important; box-shadow: none !important; }
html[data-qj-surface="member"] .qj-member .mf-button,
html[data-qj-surface="member"] .qj-member .btn { border-radius: var(--qj-control-radius); }
/* 内容本身仍有充分的实底，对比与原表格线保留，不全局覆盖 --mf-line。 */

/* 仅跳过屏幕外封面“内部”的绘制。外层尺寸/布局/阴影不 containment，
 * 不暂停动画时间、不压图、不裁掉外部光环；靠近视口即恢复同一套视觉。 */
@supports (content-visibility: auto) {
    .qj-grid .qj-card__media > .qj-cover { content-visibility: auto; }
}

/* 原业务可能使用 Bootstrap 验证类而不是 ARIA，错误不能被弱描边覆盖。 */
.qj-body .is-invalid, .qj-body .was-validated .form-control:invalid { border-color: var(--qj-bad) !important; }

html[data-qj-surface] .qj-body .qj-field .form-control:is([aria-invalid="true"], .is-invalid),
html[data-qj-surface] .qj-body .was-validated .qj-field .form-control:invalid { border-color: var(--qj-bad) !important; }
