/**
 * Chromium 字体/布局兜底（针对 nw.js / 低版本内核内 SVG <text> 与下拉控件继承缺失）：
 * - SVG <text>、foreignObject 内的 XHTML 默认不会从外部 CSS 继承到 body 的无衬线字体，
 *   会回退到浏览器默认 serif；下拉 <select> 的弹出层也常见同样问题。
 * - 这里以 !important 兜底所有相关元素，避免因继承失败回退到衬线体。
 * - 兼容旧版 (不支持 flex gap) 用 @supports not (gap: 1px) 补 margin，新版浏览器不影响。
 */

/* 通用：html / body / 表单控件 */
html,
body,
button,
input,
select,
textarea,
option,
optgroup {
    font-family: Arial, "Microsoft YaHei", "微软雅黑", SimHei, "黑体", Tahoma, "Segoe UI", "Helvetica Neue", sans-serif !important;
}

html body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* 顶栏自定义下拉列表项 */
.example-combobox-list,
.example-combobox-option {
    font-family: Arial, "Microsoft YaHei", "微软雅黑", SimHei, Tahoma, "Segoe UI", sans-serif !important;
}

/* 所有 SVG 内 <text>（含主控、外设、PS2 手柄、气象站等）—— 一律强制无衬线 */
svg text,
svg tspan {
    font-family: Arial, "Microsoft YaHei", "微软雅黑", SimHei, Tahoma, "Segoe UI", "Helvetica Neue", sans-serif !important;
}

/* foreignObject 内的 XHTML 内容 —— 一律强制无衬线 */
svg foreignObject,
svg foreignObject *,
.dht11-slider-fo,
.dht11-slider-fo *,
.dht11-sliders-wrap,
.dht11-sliders-wrap *,
.dht11-slider-row,
.dht11-slider-row *,
.pir-motion-row,
.pir-motion-row * {
    font-family: Arial, "Microsoft YaHei", "微软雅黑", SimHei, Tahoma, "Segoe UI", "Helvetica Neue", sans-serif !important;
}

/* HZK12 点阵字体例外保留（Matrix 中文显示用） */
.hzk12,
.hzk12 *,
[class*="hzk12"],
[class*="HZK12"],
[data-font="hzk12"] {
    font-family: 'HZK12', Arial, "Microsoft YaHei", sans-serif !important;
}

/* monospace 类样式保留 */
.console-output,
.console-output *,
.serial-send-row input,
.log-line.serial {
    font-family: Consolas, Monaco, "Courier New", monospace !important;
}

/* 外设输入区域：避免字体宽度变化导致换行/重叠 */
.dht11-slider-row {
    flex-wrap: nowrap !important;
}
.dht11-slider-row .dht11-label,
.dht11-slider-row [class$="-val"],
.dht11-slider-row [class*=" "][class*="-val"] {
    white-space: nowrap !important;
}
.dht11-slider-row input[type="range"] {
    min-width: 24px;
}

/* foreignObject 内滑条区：与其它外设输入统一 10px；勿用 * 命中 input[type=range] */
svg foreignObject .dht11-sliders-wrap {
    font-size: 10px !important;
    line-height: 1.25 !important;
}
svg foreignObject .dht11-sliders-wrap .dht11-slider-row {
    font-size: 10px !important;
}
svg foreignObject .dht11-sliders-wrap .dht11-slider-row span,
svg foreignObject .dht11-sliders-wrap .dht11-slider-row label {
    font-size: 10px !important;
    line-height: 1.25 !important;
}
svg foreignObject .dht11-sliders-wrap select,
svg foreignObject .dht11-sliders-wrap button,
svg foreignObject .dht11-sliders-wrap input:not([type="range"]) {
    font-size: 10px !important;
}

/* 顶栏 native <select>：略收紧字号、略增行高（option 的 padding 在 Windows 上常无效，仅作无害提示） */
#board-selector.example-select,
#mixvm-lang-select.example-select {
    font-size: 12px !important;
    line-height: 1.35 !important;
    padding: 5px 28px 5px 10px !important;
    color-scheme: dark !important;
    background-color: transparent !important;
    color: var(--text-primary, #eaeaea) !important;
}
#board-selector option,
#mixvm-lang-select option {
    font-size: 12px !important;
    line-height: 1.45 !important;
    background-color: var(--bg-panel, #1e2746) !important;
    color: var(--text-primary, #eaeaea) !important;
}
#board-selector option:checked,
#mixvm-lang-select option:checked {
    background-color: var(--accent-primary, #e94560) !important;
    color: #fff !important;
}

/* 旧核兜底：不支持 flex gap 时用 margin 模拟（新核 @supports 不生效） */
@supports not (gap: 1px) {
    .dht11-sliders-wrap > * + * {
        margin-top: 6px;
    }
    svg foreignObject .dht11-sliders-wrap > * + * {
        margin-top: 8px;
    }
    .dht11-slider-row > * + * {
        margin-left: 4px;
    }
    .dht11-slider-row {
        min-height: 22px;
    }

    .design-device[data-device-type="ws_solo_typec"] .ws-solo-typec-fo .dht11-sliders-wrap > * + * {
        margin-top: 2px;
    }

    .library-header-filter-slot > * + * {
        margin-left: 4px;
    }

    .device-icons > * + * {
        margin-top: 6px;
    }
    .device-icon .device-icon-label--twoline > * + * {
        margin-top: 2px;
    }
    .mixgo-library-drag-ghost .device-icon-label--twoline > * + * {
        margin-top: 1px;
    }

    .toolbar-left > * + *,
    .toolbar-center > * + * {
        margin-left: 15px;
    }
    .toolbar-right > * + * {
        margin-left: 10px;
    }
    .btn > * + * {
        margin-left: 6px;
    }
    .arduino-toolbar-group > * + * {
        margin-left: 6px;
    }
    .panel-title > * + *,
    .panel-title-group > * + * {
        margin-left: 8px;
    }
    .header-buttons > * + * {
        margin-left: 8px;
    }
    .serial-send-row > * + * {
        margin-left: 8px;
    }
}
