:root{
  --fg:#1a1a1a;
  --muted:#666;
  --bg:#f4f5f7;
  --card:#fff;
  --accent:#185fa5;
  --line:#e2e2e6;
  --red:#a32d2d;
}
*{box-sizing:border-box}
[hidden]{display:none!important;}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Noto Sans CJK SC","PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--fg);
  background:var(--bg);
  line-height:1.75;
  -webkit-text-size-adjust:100%;
}
.wrap{max-width:620px;margin:40px auto;padding:0 18px;}
h1{font-size:22px;margin:0 0 6px;}
.sub{color:var(--muted);font-size:14px;margin:0 0 20px;}
.error{
  background:#fcebeb;color:var(--red);
  border:1px solid #f7c1c1;border-radius:8px;
  padding:10px 14px;margin:14px 0;font-size:14px;
}
.pick-btn{
  display:block;position:relative;width:100%;overflow:hidden;
  border:0;border-radius:8px;padding:12px 20px;
  background:var(--accent);color:#fff;font-size:16px;
  text-align:center;cursor:pointer;margin-bottom:14px;
  -webkit-appearance:none;-webkit-tap-highlight-color:transparent;
}
.pick-btn input{
  position:absolute;left:0;top:0;width:100%;height:100%;
  opacity:0;cursor:pointer;font-size:0;
}
.pick-btn:active{background:#144d8a;}
.count{
  text-align:center;color:var(--accent);font-size:15px;
  font-weight:600;margin-bottom:10px;
}
button{
  font:inherit;cursor:pointer;border:0;border-radius:8px;
  padding:12px 20px;background:var(--accent);color:#fff;width:100%;
  -webkit-appearance:none;
}
button:disabled{background:#9bb6d6;cursor:not-allowed;}
.loading{
  margin-top:14px;color:var(--muted);font-size:14px;
  display:flex;align-items:center;justify-content:center;gap:10px;
}
.spinner{
  width:18px;height:18px;border-radius:50%;
  border:2.5px solid #d0d0d6;border-top-color:var(--accent);
  animation:spin .7s linear infinite;flex-shrink:0;
}
@keyframes spin{to{transform:rotate(360deg);}}
.tip{margin-top:18px;font-size:12px;color:var(--muted);line-height:1.6;}
.toolbar{
  max-width:780px;margin:16px auto;padding:10px 14px;
  background:var(--card);border:1px solid var(--line);border-radius:8px;
  display:flex;justify-content:space-between;align-items:center;
}
.pdf-form{margin:0;}
.pdf-btn{width:auto;background:#0f6e56;padding:8px 16px;}
a{color:var(--accent);text-decoration:none;font-size:14px;}
.report{
  max-width:780px;margin:16px auto;background:var(--card);
  border:1px solid var(--line);border-radius:8px;padding:30px 34px;
}
.text{margin:0 0 14px;word-break:break-word;}
.chart{max-width:100%;height:auto;border:1px solid var(--line);border-radius:4px;}
figure{margin:16px 0;text-align:center;}
figcaption{color:var(--muted);font-size:13px;margin-top:6px;}
figure.missing{
  border:1px dashed #f0997b;background:#faece7;border-radius:6px;padding:10px;
}
figure.missing figcaption{color:#993c1d;}
.page-note{color:var(--muted);font-size:13px;font-style:italic;margin-bottom:8px;}
.page-break{border:0;border-top:1px dashed var(--line);margin:26px 0;}
@media print{
  .toolbar{display:none;}
  .report{border:0;max-width:100%;padding:0;}
  body{background:#fff;}
}
