/* ============================================================
   mod-m02.css — CHEFSMART 编辑器 v7.202 · M02 营养师说模块样式
   命名空间：.mod-m02（容器 .cv-mod.mod-m02 内生效）
   自 canvas-modules.css 拆分（v7.202），样式值未做任何修改
   说明：含 Nike Style 与 Wired Magazine Style（M02 部分）
   ============================================================ */

/* ── Nike Style：M02 营养师说（S2-S7 + 推荐人群卡片） ── */
/* S2: Persona + Quote */
.mod-m02 .nike-persona-quote { display: flex; gap: 20px; padding: 16px 20px; border-bottom: 2px solid var(--cv-primary); }
.mod-m02 .nike-persona-img { width: 120px; flex-shrink: 0; position: relative; background: #F5F5F5; overflow: hidden; }
.mod-m02 .nike-persona-img.v6-img { max-height: none !important; min-height: 0; align-self: stretch; cursor: pointer; }
.mod-m02 .nike-persona-img .v6-img-placeholder { width: 100%; height: 100%; position: absolute; inset: 0; }
.mod-m02 .nike-persona-img.v6-img img.v6-photo { width: 100%; height: 100%; object-fit: contain !important; position: absolute; inset: 0; }
.mod-m02 .nike-persona-img img { width: 100%; height: 100%; object-fit: contain; position: absolute; inset: 0; }
.mod-m02 .nike-persona-content { flex: 1; min-width: 0; }
.mod-m02 .nike-persona-name { font-size: 26px; font-weight: 900; line-height: 1.1; text-transform: uppercase; letter-spacing: 0.02em; }
.mod-m02 .nike-persona-title { font-size: 9px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--cv-text-muted); margin-top: 4px; }
.mod-m02 .nike-persona-divider { display: none; }
.mod-m02 .nike-quote-zh { font-family: Georgia, "Noto Serif SC", "Songti SC", serif; font-size: 15px; font-style: italic; line-height: 1.7; color: #222; font-weight: 400; }
.mod-m02 .nike-quote-en { font-family: Georgia, "Times New Roman", serif; font-size: 11px; font-style: italic; line-height: 1.6; color: var(--cv-text-muted); margin-top: 10px; font-weight: 400; padding-left: 12px; border-left: 3px solid var(--cv-primary); }


/* S3: Core Nutrition (2×2 Grid) */
.mod-m02 .nike-core-nutrition { padding: 16px 20px; border-bottom: 2px solid var(--cv-primary); }
.mod-m02 .nike-section-label { font-size: 11px; font-weight: 800; letter-spacing: 0.2em; text-transform: uppercase; color: var(--cv-text-muted); margin-bottom: 20px; }
.mod-m02 .nike-core-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.mod-m02 .nike-core-item { padding: 20px 0; border-bottom: 1px solid #e5e5e5; }
.mod-m02 .nike-core-item:nth-child(odd) { padding-right: 20px; border-right: 1px solid var(--cv-primary); }
.mod-m02 .nike-core-item:nth-child(even) { padding-left: 20px; }
.mod-m02 .nike-core-item:nth-last-child(-n+2) { border-bottom: none; }
.mod-m02 .nike-core-num { font-size: 80px; font-weight: 900; line-height: 1; letter-spacing: -0.04em; }
.mod-m02 .nike-core-unit { font-size: 18px; font-weight: 800; letter-spacing: 0.02em; margin-left: 2px; }
.mod-m02 .nike-core-name { font-size: 13px; font-weight: 800; letter-spacing: 0.15em; text-transform: uppercase; color: #666; margin-top: 6px; }


/* S4: Basic Nutrition (1×4) */
.mod-m02 .nike-basic-nutrition { padding: 16px 20px; border-bottom: 2px solid var(--cv-primary); }
.mod-m02 .nike-basic-grid { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 0; }
.mod-m02 .nike-basic-item { text-align: center; padding: 16px 0; border-right: 1px solid #e5e5e5; }
.mod-m02 .nike-basic-item:last-child { border-right: none; }
.mod-m02 .nike-basic-num { font-size: 48px; font-weight: 900; line-height: 1; letter-spacing: -0.03em; }
.mod-m02 .nike-basic-unit { font-size: 14px; font-weight: 800; margin-left: 1px; }
.mod-m02 .nike-basic-name { font-size: 12px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: #666; margin-top: 6px; }


/* S5: Nutrition Facts Table */
.mod-m02 .nike-nutrition-table { padding: 16px 0; border-bottom: 2px solid var(--cv-primary); }
.mod-m02 .nike-nutrition-table .nike-section-label { padding: 0 16px; }
.mod-m02 .nike-nft { width: 100%; border-collapse: collapse; font-size: 13px; font-weight: 700; }
.mod-m02 .nike-nft thead th { color: #fff; background: #000; font-size: 11px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; padding: 10px 16px; text-align: center; border-radius: 0; width: 33.33%; }
.mod-m02 .nike-nft thead th:nth-child(2), .mod-m02 .nike-nft thead th:nth-child(3) { text-align: center; }
.mod-m02 .nike-nft tbody td { padding: 10px 16px; border-bottom: 1px solid #e5e5e5; vertical-align: middle; text-align: center; width: 33.33%; }
.mod-m02 .nike-nft tbody td:first-child { text-align: left; }
.mod-m02 .nike-nft tbody td:nth-child(2), .mod-m02 .nike-nft tbody td:nth-child(3) { font-variant-numeric: tabular-nums; }
.mod-m02 .nike-nft .nike-sub-row td { color: var(--cv-text-muted); }
.mod-m02 .nike-nft .nike-sub-row td:first-child { padding-left: 32px; font-weight: 700; }
.mod-m02 .nike-nft .nike-main-row td { font-weight: 800; }
.mod-m02 .nike-nft .nike-main-row { border-bottom: 1px solid var(--cv-primary); }
.mod-m02 .nike-nft .nike-main-row td { padding-bottom: 12px; }
.mod-m02 .nike-nft-footnote { font-size: 10px; font-weight: 600; color: var(--cv-text-muted); margin-top: 12px; letter-spacing: 0.02em; padding: 0 16px; }
.mod-m02 .nike-table-en { font-size: 9px; font-weight: 600; color: #ccc; letter-spacing: 0.1em; text-transform: uppercase; margin-left: 6px; pointer-events: none; }


/* S6: Recommended Groups */
.mod-m02 .nike-rec-groups { padding: 24px 0; border-bottom: 2px solid var(--cv-primary); }


/* S7: Disclaimer */
.mod-m02 .nike-disclaimer { padding: 16px 20px 24px; }
.mod-m02 .nike-disclaimer p { font-size: 10px; font-weight: 500; line-height: 1.2; color: var(--cv-text-muted); letter-spacing: 0.01em; }
.mod-m02 .nike-disclaimer strong { font-size: 14px; font-weight: 800; color: #1D1D1F; }
.mod-m02 .nike-disclaimer p + p { margin-top: 6px; }
.mod-m02 .nike-disclaimer .nike-warn { font-weight: 700; color: var(--cv-text-muted); }


/* Nike Rec Grid */
.mod-m02 .nike-rec-grid { display: flex; margin: 12px 0; width: 100%; gap: 8px; }
.mod-m02 .nike-rec-card { flex: 1 1 0; min-width: 0; background: rgba(var(--cv-primary-rgb), 0.10); border: 1px solid #e5e5e5; padding: 16px; }
.mod-m02 .nike-rec-cn { font-size: 18px; font-weight: 900; color: #000; letter-spacing: 2px; }
.mod-m02 .nike-rec-en { font-size: 10px; font-weight: 700; color: #888; letter-spacing: 3px; text-transform: uppercase; margin-top: 4px; }
.mod-m02 .nike-rec-desc { font-size: 11px; color: var(--cv-text-muted); margin-top: 8px; line-height: 1.4; }


/* ── Wired Magazine Style：M02 部分 ── */
/* Wired 杂志风格 — 通用排版（M02/M03 共享基元，各模块文件内独立副本） */

.mod-m02 .wired-title { font-family: Georgia, "Times New Roman", "Noto Serif SC", "Source Han Serif SC", serif; font-size: 38px; font-weight: 700; letter-spacing: -0.5px; color: #000000; line-height: 1.1; margin-bottom: 12px; }
.mod-m02 .wired-subtitle { font-family: system-ui, -apple-system, "SF Pro Display", "Helvetica Neue", sans-serif; font-size: 11px; font-weight: 500; letter-spacing: 2.5px; color: var(--cv-text-sub); text-transform: uppercase; margin-top: 2px; }
.mod-m02 .wired-num { font-family: system-ui, -apple-system, "SF Pro Display", "Helvetica Neue", sans-serif; font-size: 13px; font-weight: 700; letter-spacing: 3px; color: var(--cv-text-sub); text-transform: uppercase; margin-bottom: 6px; }
.mod-m02 .wired-body { font-family: Georgia, "Times New Roman", "Noto Serif SC", "Source Han Serif SC", serif; font-size: 15px; font-weight: 400; letter-spacing: 0.1px; color: #000000; line-height: 1.35; }
.mod-m02 .wired-body-gray { font-family: Georgia, "Times New Roman", "Noto Serif SC", "Source Han Serif SC", serif; font-size: 15px; font-weight: 400; letter-spacing: 0.1px; color: var(--cv-text-sub); line-height: 1.35; }
.mod-m02 .wired-meta { font-family: system-ui, -apple-system, "SF Pro Display", "Helvetica Neue", sans-serif; font-size: 11px; font-weight: 500; letter-spacing: 2px; color: var(--cv-text-sub); text-transform: uppercase; }
.mod-m02 .wired-data { font-family: "SF Mono", "Fira Code", "JetBrains Mono", "Consolas", monospace; font-variant-numeric: tabular-nums; font-size: 16px; font-weight: 700; color: #000000; }
.mod-m02 .wired-data-sm { font-family: "SF Mono", "Fira Code", "JetBrains Mono", "Consolas", monospace; font-variant-numeric: tabular-nums; font-size: 14px; font-weight: 400; color: #000000; }
.mod-m02 .wired-hairline { border: none; border-top: 1px solid #e0e0e0; margin: 0; padding: 0; }
.mod-m02 .wired-hairline-dark { border: none; border-top: 2px solid #000000; margin: 0; padding: 0; }


/* Wired Person */
.mod-m02 .wired-person { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 0; }
.mod-m02 .wired-person-avatar { width: 48px; height: 48px; flex-shrink: 0; background: #f5f5f5; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.mod-m02 .wired-person-avatar svg { opacity: 0.3; width: 20px; height: 20px; }
.mod-m02 .wired-person-info { flex: 1; min-width: 0; }
.mod-m02 .wired-person-name { font-family: Georgia, "Times New Roman", "Noto Serif SC", "Source Han Serif SC", serif; font-size: 18px; font-weight: 700; color: #000000; letter-spacing: -0.3px; }
.mod-m02 .wired-person-tags { font-family: system-ui, -apple-system, "SF Pro Display", "Helvetica Neue", sans-serif; font-size: 10px; font-weight: 500; letter-spacing: 2px; color: var(--cv-text-sub); text-transform: uppercase; margin-top: 4px; }
.mod-m02 .wired-person-tags span { margin: 0; }
.mod-m02 .wired-person-tags .wired-tag-sep { margin: 0 8px; color: #e0e0e0; }
.mod-m02 .wired-quote { font-family: Georgia, "Times New Roman", "Noto Serif SC", "Source Han Serif SC", serif; font-size: 15px; font-weight: 400; letter-spacing: 0.1px; color: #000000; line-height: 1.35; border-left: 2px solid #000000; padding-left: 12px; margin-top: 10px; }
.mod-m02 .wired-en { font-family: Georgia, "Times New Roman", serif; font-size: 10px; font-weight: 300; font-style: italic; color: var(--cv-text-sub); line-height: 1.6; margin-top: 6px; letter-spacing: 0.2px; }
.mod-m02 .wired-section-title { font-family: Georgia, "Times New Roman", "Noto Serif SC", "Source Han Serif SC", serif; font-size: 18px; font-weight: 700; color: #000000; letter-spacing: -0.3px; margin-bottom: 10px; }


/* Wired Table */
.mod-m02 .wired-table-row { display: flex; justify-content: space-between; align-items: baseline; padding: 6px 0; border-bottom: 1px solid #e0e0e0; }
.mod-m02 .wired-table-row:last-child { border-bottom: none; }
.mod-m02 .wired-table-row .wired-table-label { font-family: Georgia, "Times New Roman", "Noto Serif SC", "Source Han Serif SC", serif; font-size: 12px; font-weight: 400; color: #000000; }
.mod-m02 .wired-table-row .wired-table-label-sub { font-family: Georgia, "Times New Roman", "Noto Serif SC", "Source Han Serif SC", serif; font-size: 11px; font-weight: 400; color: var(--cv-text-sub); padding-left: 16px; }
.mod-m02 .wired-table-row .wired-table-value { font-family: "SF Mono", "Fira Code", "JetBrains Mono", "Consolas", monospace; font-variant-numeric: tabular-nums; font-size: 11px; font-weight: 700; color: #000000; text-align: right; }
.mod-m02 .wired-table-row .wired-table-nrv { font-family: "SF Mono", "Fira Code", "JetBrains Mono", "Consolas", monospace; font-variant-numeric: tabular-nums; font-size: 11px; font-weight: 400; color: var(--cv-text-sub); text-align: right; min-width: 36px; }


/* Wired Nutrient Header */
.mod-m02 .wired-nutrient-header { display: flex; justify-content: space-between; align-items: baseline; padding: 0 0 6px 0; border-bottom: 2px solid #000000; margin-bottom: 0; }
.mod-m02 .wired-nutrient-header span { font-family: system-ui, -apple-system, "SF Pro Display", "Helvetica Neue", sans-serif; font-size: 10px; font-weight: 600; letter-spacing: 2px; color: var(--cv-text-sub); text-transform: uppercase; }


/* Wired Warning */
.mod-m02 .wired-warning { border-left: 2px solid #000000; padding: 4px 0 4px 12px; font-family: system-ui, -apple-system, "SF Pro Display", "Helvetica Neue", sans-serif; font-size: 10px; font-weight: 500; color: var(--cv-text-sub); letter-spacing: 0.3px; line-height: 1.6; }
