/* 绿色工厂自测评系统 —— 页面专属样式（作用域隔离，复用网站配色，不影响其他模块） */
:root{
  --gf-navy:#1B2A4A; --gf-gold:#C9A96E; --gf-cream:#F7F5F0;
  --gf-blue:#2E7DD1; --gf-teal:#3FA796; --gf-purple:#8A6FB0;
  --gf-line:#E7E2D8; --gf-muted:#7a788c; --gf-ink:#2a2a33;
}
.gf-page{ background:linear-gradient(180deg,#fbfaf7 0%, #f4f1ea 100%); padding:100px 0 56px; }
.gf-wrap{ max-width:1040px; margin:0 auto; padding:0 18px; }
.gf-hero{ text-align:center; margin-bottom:26px; }
.gf-hero__eyebrow{ letter-spacing:3px; color:var(--gf-gold); font-size:13px; font-weight:700; }
.gf-hero__title{ font-size:30px; color:var(--gf-navy); margin:8px 0 6px; font-weight:800; }
.gf-hero__sub{ color:var(--gf-muted); font-size:14px; max-width:720px; margin:0 auto; line-height:1.7; }
.gf-hero__std{ display:inline-block; margin-top:12px; padding:5px 14px; border:1px solid var(--gf-line); border-radius:999px; font-size:12px; color:var(--gf-navy); background:#fff; }

/* 步骤条 */
.gf-steps{ display:flex; gap:0; margin:0 auto 26px; max-width:760px; }
.gf-step{ flex:1; text-align:center; position:relative; color:var(--gf-muted); font-size:13px; }
.gf-step__dot{ width:34px; height:34px; line-height:34px; border-radius:50%; margin:0 auto 7px; background:#fff; border:2px solid var(--gf-line); color:var(--gf-muted); font-weight:700; position:relative; z-index:2; transition:.25s; }
.gf-step__bar{ position:absolute; top:17px; left:50%; width:100%; height:2px; background:var(--gf-line); z-index:1; }
.gf-step:last-child .gf-step__bar{ display:none; }
.gf-step.is-active .gf-step__dot{ background:var(--gf-navy); border-color:var(--gf-navy); color:#fff; }
.gf-step.is-done .gf-step__dot{ background:var(--gf-gold); border-color:var(--gf-gold); color:#fff; }
.gf-step.is-active, .gf-step.is-done{ color:var(--gf-navy); font-weight:700; }

/* 卡片 */
.gf-card{ background:#fff; border:1px solid var(--gf-line); border-radius:16px; padding:24px 26px; box-shadow:0 8px 30px rgba(27,42,74,.06); margin-bottom:18px; }
.gf-card__title{ font-size:18px; color:var(--gf-navy); font-weight:800; margin:0 0 4px; display:flex; align-items:center; gap:9px; }
.gf-card__title::before{ content:""; width:5px; height:18px; border-radius:3px; background:var(--gf-gold); display:inline-block; }
.gf-card__desc{ color:var(--gf-muted); font-size:13px; margin:0 0 18px; line-height:1.6; }

/* 表单 */
.gf-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px 20px; }
.gf-field{ margin-bottom:6px; }
.gf-field--full{ grid-column:1 / -1; }
.gf-label{ display:block; font-size:13px; color:var(--gf-ink); font-weight:600; margin-bottom:6px; }
.gf-label small{ color:var(--gf-muted); font-weight:400; }
.gf-input, .gf-select{ width:100%; padding:10px 12px; border:1px solid var(--gf-line); border-radius:9px; font-size:14px; color:var(--gf-ink); background:#fff; transition:.2s; box-sizing:border-box; }
.gf-input:focus, .gf-select:focus{ outline:none; border-color:var(--gf-navy); box-shadow:0 0 0 3px rgba(27,42,74,.08); }
.gf-radio-group{ display:flex; flex-wrap:wrap; gap:10px; }
.gf-radio{ display:flex; align-items:center; gap:7px; padding:9px 14px; border:1px solid var(--gf-line); border-radius:9px; cursor:pointer; font-size:13px; background:#fff; transition:.2s; }
.gf-radio input{ accent-color:var(--gf-navy); }
.gf-radio.is-checked{ border-color:var(--gf-navy); background:rgba(27,42,74,.05); }

/* 三态切换 */
.gf-tri{ display:inline-flex; border:1px solid var(--gf-line); border-radius:8px; overflow:hidden; }
.gf-tri button{ border:0; background:#fff; padding:6px 11px; font-size:12px; color:var(--gf-muted); cursor:pointer; }
.gf-tri button+button{ border-left:1px solid var(--gf-line); }
.gf-tri button.is-on{ background:var(--gf-navy); color:#fff; }

/* 指标块 */
.gf-ind{ border:1px solid var(--gf-line); border-radius:12px; padding:14px 16px; margin-bottom:12px; background:#fff; }
.gf-ind__head{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; flex-wrap:wrap; }
.gf-ind__name{ font-weight:700; color:var(--gf-navy); font-size:14px; }
.gf-ind__tag{ font-size:11px; color:#fff; background:var(--gf-muted); border-radius:6px; padding:2px 7px; }
.gf-ind__tag.inv{ background:#c0584f; } .gf-ind__tag.pos{ background:var(--gf-teal); } .gf-ind__tag.qual{ background:var(--gf-purple); }
.gf-ind__hint{ color:var(--gf-muted); font-size:12px; margin:5px 0 10px; line-height:1.6; }
.gf-ind__bench{ display:flex; gap:14px; flex-wrap:wrap; font-size:12px; color:var(--gf-muted); margin-bottom:10px; }
.gf-ind__bench b{ color:var(--gf-ink); }
.gf-ind__row{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.gf-ind__row .gf-input{ max-width:200px; }
.gf-funcs{ display:grid; grid-template-columns:repeat(2,1fr); gap:6px 14px; margin-top:8px; }
.gf-funcs label{ font-size:12px; display:flex; align-items:center; gap:7px; color:var(--gf-ink); }

/* 资格表 */
.gf-qual{ border:1px solid var(--gf-line); border-radius:12px; padding:12px 16px; margin-bottom:10px; display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap; }
.gf-qual__txt{ font-size:13px; color:var(--gf-ink); flex:1; min-width:260px; }
.gf-qual__txt small{ color:var(--gf-muted); display:block; margin-top:2px; }
.gf-qual__btns{ display:flex; gap:6px; }
.gf-qual__btns button{ border:1px solid var(--gf-line); background:#fff; border-radius:7px; padding:6px 12px; font-size:12px; cursor:pointer; color:var(--gf-muted); }
.gf-qual__btns button.is-yes{ background:#c0584f; border-color:#c0584f; color:#fff; }
.gf-qual__btns button.is-no{ background:#3FA796; border-color:#3FA796; color:#fff; }
.gf-qual__btns button.is-unk{ background:var(--gf-gold); border-color:var(--gf-gold); color:#fff; }

/* 按钮 */
.gf-btn{ display:inline-flex; align-items:center; gap:8px; padding:11px 22px; border-radius:10px; font-size:14px; font-weight:700; cursor:pointer; border:1px solid transparent; transition:.2s; }
.gf-btn--gold{ background:var(--gf-gold); color:#fff; }
.gf-btn--gold:hover{ background:#b9965c; }
.gf-btn--navy{ background:var(--gf-navy); color:#fff; }
.gf-btn--navy:hover{ background:#15203a; }
.gf-btn--ghost{ background:#fff; border-color:var(--gf-line); color:var(--gf-navy); }
.gf-btn--ghost:hover{ border-color:var(--gf-navy); }
.gf-btn:disabled{ opacity:.45; cursor:not-allowed; }
.gf-actions{ display:flex; justify-content:space-between; margin-top:20px; gap:10px; flex-wrap:wrap; }

/* 结果 */
.gf-result__level{ display:inline-block; padding:8px 20px; border-radius:999px; font-size:16px; font-weight:800; }
.gf-level-ok{ background:rgba(63,167,150,.14); color:#2c7d6e; }
.gf-level-mid{ background:rgba(201,169,110,.16); color:#9a7b3f; }
.gf-level-bad{ background:rgba(192,88,79,.14); color:#a8443b; }
.gf-score-big{ font-size:46px; font-weight:800; color:var(--gf-navy); line-height:1; }
.gf-score-big small{ font-size:16px; color:var(--gf-muted); font-weight:500; }
.gf-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }
.gf-table{ width:100%; border-collapse:collapse; font-size:12.5px; }
.gf-table th, .gf-table td{ border-bottom:1px solid var(--gf-line); padding:8px 9px; text-align:left; }
.gf-table th{ color:var(--gf-muted); font-weight:600; background:#faf8f3; }
.gf-table td b{ color:var(--gf-navy); }
.gf-status{ font-size:11px; padding:2px 7px; border-radius:5px; }
.gf-status.verified{ background:rgba(63,167,150,.14); color:#2c7d6e; }
.gf-status.estimate{ background:rgba(201,169,110,.16); color:#9a7b3f; }
.gf-status.missing{ background:rgba(122,120,140,.14); color:var(--gf-muted); }
.gf-short li{ margin-bottom:8px; font-size:13px; line-height:1.6; }
.gf-disclaimer{ background:#faf8f3; border:1px dashed var(--gf-line); border-radius:12px; padding:14px 16px; font-size:12px; color:var(--gf-muted); line-height:1.7; margin-top:18px; }
.gf-note{ font-size:12px; color:var(--gf-muted); margin-top:8px; line-height:1.6; }
.gf-ind__live{ font-size:12.5px; color:var(--gf-ink); margin-top:8px; line-height:1.6; background:rgba(63,167,150,.08); border:1px solid rgba(63,167,150,.25); border-radius:9px; padding:8px 12px; }
.gf-ind__live b{ color:var(--gf-navy); font-size:14px; }
.gf-ind__live--warn{ background:#fff; border-style:dashed; color:var(--gf-muted); }
.gf-ind__cmp{ font-weight:700; margin-left:2px; }
.gf-cmp-ok{ color:#2c7d6e; } .gf-cmp-mid{ color:#9a7b3f; } .gf-cmp-bad{ color:#a8443b; }
.gf-note--tip{ background:#faf8f3; border:1px dashed var(--gf-line); padding:9px 12px; border-radius:9px; }
.gf-card--base{ background:#fff; }
.gf-card--base .gf-row{ margin-top:4px; }
.gf-card--base .gf-field{ background:#faf8f3; padding:10px 12px; border-radius:10px; border:1px solid var(--gf-line); }
.gf-calc{ background:#faf8f3; border:1px solid var(--gf-line); border-radius:10px; padding:12px 14px; margin-top:10px; }
.gf-calc summary{ cursor:pointer; font-size:13px; font-weight:700; color:var(--gf-navy); }
.gf-calc .gf-row{ margin-top:10px; }

/* 诊断报告表头 */
.gf-report-head{ background:var(--gf-navy); color:#fff; border-radius:14px; padding:18px 22px; margin-bottom:18px; }
.gf-report-head__brand{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; border-bottom:1px solid rgba(255,255,255,.18); padding-bottom:10px; margin-bottom:12px; }
.gf-report-head__logo{ font-size:13px; color:var(--gf-gold); font-weight:700; letter-spacing:1px; }
.gf-report-head__title{ font-size:18px; font-weight:800; }
.gf-report-meta{ width:100%; border-collapse:collapse; font-size:13px; }
.gf-report-meta th{ text-align:left; color:var(--gf-gold); font-weight:600; padding:5px 10px 5px 0; white-space:nowrap; width:88px; vertical-align:top; }
.gf-report-meta td{ padding:5px 16px 5px 0; color:#F7F5F0; vertical-align:top; }

@media (max-width:720px){
  .gf-row, .gf-grid2{ grid-template-columns:1fr; }
  .gf-funcs{ grid-template-columns:1fr; }
  .gf-hero__title{ font-size:24px; }
  .gf-card{ padding:18px 16px; }
  .gf-report-head{ padding:14px 16px; }
}
@media print{
  .nav-top, .footer, .gf-steps, .gf-actions, .ios-install-bar, .gf-calc{ display:none !important; }
  .gf-page{ background:#fff !important; padding:0; }
  .gf-card{ box-shadow:none; break-inside:avoid; }
  .gf-report-head{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .gf-result__level, .gf-status{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .gf-table{ font-size:11px; }
  .gf-table th{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .gf-table, .gf-table tr{ break-inside:avoid; }
}
