/* 主题变量：默认白天模式；html[data-theme="dark"] 覆盖为黑夜模式 */
:root{
  --bg:#f5f7fa; --panel:#ffffff; --panel2:#ffffff; --line:#d9dee5; --line2:#eaeef3;
  --fg:#1b1f24; --muted:#5b6672;
  --accent:#0b6bcb; --accent-fg:#ffffff; --btn:#f1f4f8; --btn-line:#d0d7e0;
  --ok:#1a7f37; --warn:#9a6700; --bad:#c62828;
  --hero:linear-gradient(135deg,#ffffff,#eef3f9);
  --in-bg:#ffffff; --in-fg:#1b1f24;
  --tag-orig-bg:#e6f6ec; --tag-orig-fg:#14663a; --tag-orig-bd:#b7e0c6;
  --tag-copy-bg:#eaf0fa; --tag-copy-fg:#2b4a80; --tag-copy-bd:#c3d4ee;
  --tag-opt-bg:#fdf5e3; --tag-opt-fg:#8a6100; --tag-opt-bd:#ecd9a3;
  --tag-low-bg:#fdecec; --tag-low-fg:#a02020; --tag-low-bd:#f0b9b9;
  --dis-bg:#fff8e6; --dis-bd:#f0dca8; --dis-fg:#6b5216;
  --code:#f4f6f9;
}
html[data-theme="dark"]{
  --bg:#0e1116; --panel:#161b22; --panel2:#1c232c; --line:#2a333f; --line2:#232b36;
  --fg:#e6edf3; --muted:#98a6b5;
  --accent:#3b82f6; --accent-fg:#ffffff; --btn:#21262d; --btn-line:#2a333f;
  --ok:#22c55e; --warn:#f59e0b; --bad:#ef4444;
  --hero:linear-gradient(135deg,#111827,#0b1220);
  --in-bg:#0d1218; --in-fg:#e6edf3;
  --tag-orig-bg:#132b1c; --tag-orig-fg:#7ee2a8; --tag-orig-bd:#1f4d33;
  --tag-copy-bg:#1d2433; --tag-copy-fg:#9db6e0; --tag-copy-bd:#2c3a55;
  --tag-opt-bg:#2a230f; --tag-opt-fg:#f0c674; --tag-opt-bd:#4a3c14;
  --tag-low-bg:#331717; --tag-low-fg:#f2a2a2; --tag-low-bd:#4a1f1f;
  --dis-bg:#1a1410; --dis-bd:#47331a; --dis-fg:#e8d6bb;
  --code:#11161d;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.6 -apple-system,"PingFang SC","Microsoft YaHei",Segoe UI,sans-serif;transition:background .15s,color .15s}
.wrap{max-width:1080px;margin:0 auto;padding:0 18px}
.top{background:var(--hero);border-bottom:1px solid var(--line);padding:18px 0}
.top-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.brand{font-size:20px;font-weight:700}
.badge{font-size:12px;font-weight:500;background:var(--tag-copy-bg);color:var(--tag-copy-fg);border:1px solid var(--tag-copy-bd);border-radius:999px;padding:2px 10px;margin-left:8px;vertical-align:middle}
.sub{color:var(--muted);font-size:13px;margin-top:4px}
.theme-toggle{background:var(--panel);color:var(--fg);border:1px solid var(--line);border-radius:999px;padding:8px 15px;font-size:14px;cursor:pointer;white-space:nowrap}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}
.tabs{display:flex;gap:8px;flex-wrap:wrap;padding:14px 18px 0}
.tab{background:var(--panel);color:var(--muted);border:1px solid var(--line);border-bottom:none;border-radius:10px 10px 0 0;padding:9px 14px;cursor:pointer;font-size:14px}
.tab.active{background:var(--panel2);color:var(--fg);font-weight:600;border-color:var(--line)}
.panel{display:none;background:var(--panel2);border:1px solid var(--line);border-radius:0 12px 12px 12px;padding:20px;margin-bottom:24px}
.panel.active{display:block}
h2{margin:0 0 6px;font-size:18px}
h3{margin:0 0 10px;font-size:15px;color:var(--fg);opacity:.85}
.hint{color:var(--muted);font-size:13px;margin:0 0 14px}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin:12px 0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px}
label{display:block;font-size:13px;color:var(--muted);margin-bottom:10px}
label.inline{margin:0}
label.ck{display:flex;gap:8px;align-items:flex-start;color:var(--fg);font-size:13px}
input,select,textarea{width:100%;margin-top:5px;background:var(--in-bg);color:var(--in-fg);border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-size:14px;font-family:inherit}
input[type=checkbox],input[type=radio]{width:auto;margin-top:3px;accent-color:var(--accent);flex:0 0 auto}
label.ck span{flex:1;min-width:0}
.btn{background:var(--btn);color:var(--fg);border:1px solid var(--btn-line);border-radius:8px;padding:9px 14px;cursor:pointer;font-size:14px}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600}
.btn.primary:hover{color:var(--accent-fg);opacity:.92}
.btn.ghost{background:transparent}
.btn.sm{padding:4px 9px;font-size:12px;text-decoration:none;display:inline-block}
.result{margin-top:14px}
.mini{margin-top:8px;font-size:13px}
.rowline{display:flex;gap:10px;align-items:flex-end;margin-bottom:10px;flex-wrap:wrap}
.rowline select{min-width:180px}
.card-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;margin:10px 0}
.tag{display:inline-block;font-size:11px;border-radius:6px;padding:1px 7px;margin-left:6px;border:1px solid}
.tag.orig{background:var(--tag-orig-bg);color:var(--tag-orig-fg);border-color:var(--tag-orig-bd)}
.tag.copy{background:var(--tag-copy-bg);color:var(--tag-copy-fg);border-color:var(--tag-copy-bd)}
.tag.opt{background:var(--tag-opt-bg);color:var(--tag-opt-fg);border-color:var(--tag-opt-bd)}
.tag.hi{background:var(--tag-orig-bg);color:var(--tag-orig-fg);border-color:var(--tag-orig-bd)}
.tag.mid{background:var(--tag-opt-bg);color:var(--tag-opt-fg);border-color:var(--tag-opt-bd)}
.tag.low{background:var(--tag-low-bg);color:var(--tag-low-fg);border-color:var(--tag-low-bd)}
.ok{color:var(--ok)} .warn{color:var(--warn)} .bad{color:var(--bad)}
ul.clean{list-style:none;padding:0;margin:6px 0}
ul.clean li{padding:8px 0;border-bottom:1px dashed var(--line2)}
.src{font-size:12px;color:var(--muted)}
a{color:var(--accent)}
.disclaimer{background:var(--dis-bg);border:1px solid var(--dis-bd);border-radius:10px;padding:14px;font-size:13px;color:var(--dis-fg);margin-top:16px}
.verdict{font-weight:700;margin-bottom:6px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line2)}
th{color:var(--muted);font-weight:500;font-size:13px}
.foot{color:var(--muted);font-size:12px;padding:20px 18px 40px}
.kpi{display:flex;gap:18px;flex-wrap:wrap;margin:8px 0}
.kpi div b{display:block;font-size:18px}
.scorebar{height:10px;background:var(--line2);border-radius:999px;overflow:hidden;margin:8px 0}
.scorebar i{display:block;height:100%;border-radius:999px}
.shared-mark{color:var(--muted);font-size:11px;margin-left:5px;cursor:help}
.dimrow{padding:9px 0;border-bottom:1px dashed var(--line2)}
.dimrow:last-child{border-bottom:none}
.dimhead{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:5px}
.dimhead .tag{margin-left:0}
details#healthDetails>summary{cursor:pointer;color:var(--accent);font-size:14px;padding:6px 0;user-select:none}
details#healthDetails>summary:hover{text-decoration:underline}
.flash{animation:flashbg 1.6s ease-out}
@keyframes flashbg{0%{background:rgba(59,130,246,.25)}100%{background:transparent}}
#print-root{display:none}
.segctrl{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 6px}
.btn.seg{background:var(--panel);border:1px solid var(--btn-line)}
.btn.seg.active{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:600}
.np-hint{color:var(--muted);font-size:12px;margin:4px 0 0}
.v43grp{margin-bottom:12px}
.v43grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px 16px}
.v43lb{display:block;color:var(--muted);font-size:13px;margin-bottom:5px}
.v43grid input,.v43grid select{margin-top:0}
.phstage{display:flex;justify-content:center;margin:10px 0}
#phCanvas{width:280px;height:360px;max-width:100%;border:1px solid var(--line);border-radius:6px;background:#fff;touch-action:none;cursor:grab}
input[type=file]{padding:6px 8px;font-size:13px}
input[type=range]{padding:0;margin-top:8px}

/* ===== 打印（行程单存 PDF）===== */
@media print{
  body{background:#fff!important;color:#000!important}
  .top,.tabs,.foot{display:none!important}
  .no-print{display:none!important}
  .panel{display:block!important;border:none!important;padding:0!important;margin:0!important;background:#fff!important}
  .panel:not(#panel-itinerary){display:none!important}
  .card-box{border:none!important;padding:0!important;margin:0!important;background:#fff!important;color:#000!important}
  h2,h3{color:#000!important}
  th,td{border-bottom:1px solid #999!important}
  .src,.hint{color:#444!important}
  a{color:#000!important;text-decoration:none}
}

/* 通用打印：把要打印的 HTML 临时放进 #print-root，其余全部隐藏 */
@media print{
  body.printing>*:not(#print-root){display:none!important}
  body.printing #print-root{display:block!important}
  body.printing{background:#fff!important;color:#000!important}
  body.printing .card-box{border:none!important;padding:0!important;margin:0!important;background:#fff!important;color:#000!important}
  body.printing h2,body.printing h3,body.printing b{color:#000!important}
  body.printing th,body.printing td{border-bottom:1px solid #999!important}
  body.printing .src,body.printing .hint{color:#444!important}
  body.printing .warn,body.printing .bad,body.printing .ok{color:#000!important}
  body.printing table{width:100%}
}

/* ===== 排版与首页（2026-10-08） ===== */
body{font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}
.panel{padding:22px}
.hint{margin:0 0 16px;line-height:1.7}
.tabs{position:sticky;top:0;z-index:20;background:var(--bg)}
.tab{top:1px;position:relative}
.hero{background:var(--hero);border:1px solid var(--line);border-radius:16px;padding:30px 26px;margin-bottom:20px}
.hero h1{margin:0 0 10px;font-size:30px;line-height:1.25;letter-spacing:-.3px}
.hero-sub{margin:0 0 18px;color:var(--muted);font-size:15px;line-height:1.8}
.hero-cta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.btn.lg{padding:11px 20px;font-size:15px;border-radius:10px}
.hero-meta{color:var(--muted);font-size:12.5px}
h2.sec{font-size:16px;margin:26px 0 12px;padding-left:11px;border-left:3px solid var(--accent);line-height:1.2}
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.feat-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}
.feat-card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 6px 18px rgba(0,0,0,.07)}
.feat-ico{font-size:24px;line-height:1;margin-bottom:10px}
.feat-card h3{margin:0 0 8px;font-size:15.5px;opacity:1}
.feat-card p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.7}
.feat-mini{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.mini-card{display:flex;flex-direction:column;gap:3px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:13px 15px;cursor:pointer;font:inherit;color:var(--fg)}
.mini-card:hover{border-color:var(--accent)}
.mini-card span{color:var(--muted);font-size:12.5px}
.steps{display:grid;gap:10px}
.steps>div{display:flex;gap:12px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:13px 15px;font-size:13.5px}
.steps>div>b{flex:0 0 auto;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--accent-fg);display:flex;align-items:center;justify-content:center;font-size:13px}
.steps>div span{color:var(--muted)}
@media (max-width:640px){
  .hero{padding:22px 18px;border-radius:12px}
  .hero h1{font-size:23px}
  .panel{padding:16px}
}

/* ===== 页脚 ===== */
.foot{display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center}
.foot-line{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:center}
.foot-social:empty{display:none}
.foot-social a{color:var(--muted);text-decoration:none;display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:12.5px}
.foot-social a:hover{color:var(--accent);border-color:var(--accent)}
.foot-name{color:var(--accent);text-decoration:none;border-bottom:1px dotted currentColor;padding-bottom:1px}
.foot-name:hover{border-bottom-style:solid}
