* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
  background: linear-gradient(160deg, #f0f4ff, #e8f0fe); min-height: 100vh; color: #1f2a44; }
header { text-align: center; padding: 2.5rem 1rem 1rem; }
header h1 { font-size: 1.9rem; } header .sub { color: #5a6a8a; margin-top: .4rem; }
main { width: min(720px, 92vw); margin: 0 auto; padding-bottom: 2rem; }
.input-area { background: #fff; border-radius: 16px; padding: 1.5rem; box-shadow: 0 8px 30px rgba(31,42,68,.1); }
#urlInput { width: 100%; padding: .8rem 1rem; border: 1px solid #c9d4ea; border-radius: 10px; font-size: 1rem; }
.actions { display: flex; align-items: center; gap: .8rem; margin-top: 1rem; }
.actions button, .file-btn { padding: .6rem 1.4rem; border: none; border-radius: 8px;
  background: #3b82f6; color: #fff; font-size: 1rem; cursor: pointer; }
.file-btn { display: inline-block; background: #6b7280; }
.or { color: #8a97b5; }
.hint { color: #8a97b5; font-size: .85rem; margin-top: .8rem; }
.progress { margin-top: 1.2rem; } .progress.hidden, .result.hidden { display: none; }
.bar { height: 8px; background: #3b82f6; border-radius: 4px; width: 0; transition: width .3s; }
.progress span { display: block; margin-top: .4rem; color: #5a6a8a; font-size: .9rem; }
.result { background: #fff; border-radius: 16px; padding: 1.5rem; margin-top: 1.2rem; box-shadow: 0 8px 30px rgba(31,42,68,.1); }
.summary { line-height: 1.8; } .summary h2, .summary h3 { margin: .8rem 0 .4rem; }
pre { white-space: pre-wrap; background: #f5f8ff; border-radius: 8px; padding: 1rem; font-size: .9rem; }
#downloadBtn { margin-top: 1rem; padding: .6rem 1.4rem; border: none; border-radius: 8px;
  background: #10b981; color: #fff; font-size: 1rem; cursor: pointer; }
footer { text-align: center; padding: 1.5rem 1rem; color: #7a87a5; font-size: .85rem; }
