/* 全站框体统一圆角；只覆盖形状，不改变主题、排版或交互。 */
:root {
  --radius-frame: 16px;
}

/* 显式列举框体，覆盖主题及移动端规则，也适用于动态生成的内容。 */
html[data-theme] body :is(
  .glass-group, .glass-panel, .card-group, .capability-card,
  .company-card, .scene-group, .scene-grid, .scene-grid button, .scene-panel,
  .architecture, .arch-layer, .agent-panel, .skill-list, .skill-item,
  .experience-choice, .experience-detail,
  .ecosystem-grid, .ecosystem-grid > div, .value-grid, .value-grid article,
  .download-cards, .download-card, .page-hero .download-cards > .download-card,
  .hardware-grid, .hardware-card, .hpc-entry,
  .note-card, .fact-grid, .fact-grid > div, .company-project,
  .company-credential-list > div, .company-diagram a,
  .compute-topology, .gateway-content, .gateway-media-caption,
  .home-cta, .case-grid, .case-card, .case-cta, .contact-brief,
  .token-disclaimer, .model-table-wrap, .capacity-explainer, .capacity-status,
  .tech-list span, .token-points span,
  .consult-form, .consult-form fieldset, .consult-process, .consult-process li,
  .aie-architecture, .aie-layers li, .aie-step-panel,
  .solver-grid, .solver-grid > article, .aie-stages, .aie-stages li, .aie-boundary,
  .product-showcase, .platform-carousel, .platform-window,
  .application-card, .shot-grid, .shot, .split-media, .gateway-media,
  .nv-product-panel, .nv-product-media, .nv-ecosystem-figure, .nv-stack, .nv-stack li,
  .modal-panel, .toast
) {
  border-radius: var(--radius-frame);
}

/* 文字按钮与输入框统一；不选择圆形关闭按钮、菜单图标或原生勾选控件。 */
html[data-theme] body :is(
  .button, .main-nav .nav-download, .main-nav .nav-consult, .main-nav .theme-switch,
  .agent-tabs button, .aie-step-tabs button, .device-filters button,
  .gateway-tabs button, .nv-tabs button, .showcase-controls button,
  .platform-controls button, .rail-controls button,
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="hidden"]),
  textarea, select, #token-search
) {
  border-radius: var(--radius-frame);
}

/* 文件输入框的原生选择按钮单独覆盖，不改禁用状态或附件行为。 */
html[data-theme] body input[type="file"]::file-selector-button {
  border-radius: var(--radius-frame);
}

/* 图片与 figure 仅命中内容媒体，品牌标志、白鸟和小图标不参与裁边。 */
html[data-theme] body :is(
  .split-media img, .gateway-media img, .hardware-media, .hardware-media img,
  .company-figure, .company-figure img, .nv-ecosystem-figure img,
  .lightbox img, .platform-slide, .platform-slide img
) {
  border-radius: var(--radius-frame);
}

/* 紧贴色块卡片的媒体只圆顶部，底边与说明/工具栏无缝相接。 */
html[data-theme] body :is(
  .product-window, .product-slide, .product-zoom, .product-slide img,
  .shot img, .application-media, .application-media > img, .application-media > svg,
  .company-project .company-figure, .company-project .company-figure img,
  .nv-product-media img
) {
  border-radius: var(--radius-frame) var(--radius-frame) 0 0;
}

html[data-theme] body :is(.showcase-toolbar, .nv-product-media figcaption) {
  border-radius: 0 0 var(--radius-frame) var(--radius-frame);
}

/* 深色基础层未声明大图 fit，保留完整 UI，不裁切源截图。 */
html[data-theme] body .lightbox img {
  object-fit: contain;
}

/* 保留输入框键盘焦点，避免旧的 :focus outline:none 压过可见焦点。 */
html[data-theme] body #token-search:focus-visible,
html[data-theme] body .consult-form :is(input, textarea, select):focus-visible {
  outline: 3px solid var(--brand);
  outline-offset: 4px;
}

/* 卡片外框不裁焦点圈；媒体内框独立裁边，避免图片越过 16px 圆角。 */
html[data-theme] body :is(
  .product-showcase, .company-project, .application-card, .shot,
  .skill-item, .solver-grid
) {
  overflow: visible;
}

html[data-theme] body :is(.product-window, .platform-window, .application-media) {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  overflow: hidden;
}

html[data-theme] body .application-media {
  border-radius: var(--radius-frame) var(--radius-frame) 0 0;
  isolation: isolate;
}

html[data-theme] body .application-media > :is(img, svg) {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  border-radius: inherit;
}
