* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; background: #0d1117; color: #c9d1d9; padding: 24px; }
h1 { font-size: 1.5rem; margin-bottom: 4px; color: #e6edf3; }
h2 { font-size: 1.2rem; margin: 24px 0 12px; color: #e6edf3; }
.subtitle { color: #8b949e; font-size: 0.85rem; margin-bottom: 24px; }
a { color: #58a6ff; text-decoration: none; }
a:hover { text-decoration: underline; }

/* Run button */
.actions { margin-bottom: 24px; display: flex; align-items: center; gap: 16px; }
.btn { padding: 8px 20px; border: 1px solid #30363d; border-radius: 6px; background: #21262d; color: #c9d1d9; cursor: pointer; font-size: 0.9rem; }
.btn:hover { background: #30363d; }
.btn-primary { background: #238636; border-color: #238636; color: #fff; }
.btn-primary:hover { background: #2ea043; }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }
#status { font-size: 0.85rem; color: #8b949e; }

/* Heatmap table */
table { border-collapse: collapse; width: 100%; margin-bottom: 24px; }
th, td { padding: 10px 14px; text-align: left; border: 1px solid #21262d; }
th { background: #161b22; color: #8b949e; font-weight: 600; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.05em; }
td { font-size: 0.9rem; }
td.slug { font-weight: 500; max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
td.score { text-align: center; font-weight: 600; font-size: 0.95rem; cursor: pointer; transition: filter 0.15s; }
td.score:hover { filter: brightness(1.2); }
.s-high { background: #0d4429; color: #3fb950; }
.s-mid { background: #3d2e00; color: #d29922; }
.s-low { background: #490202; color: #f85149; }
.s-na { background: #161b22; color: #484f58; }

/* Detail page */
.field-table td { font-size: 0.85rem; }
.v-captured { color: #3fb950; }
.v-partial { color: #d29922; }
.v-missing { color: #f85149; }
.gt-value { color: #8b949e; font-size: 0.8rem; display: block; margin-top: 2px; }
.back { margin-bottom: 16px; display: inline-block; }

/* Log area */
#log { background: #161b22; border: 1px solid #21262d; border-radius: 6px; padding: 12px; font-family: "SF Mono", Monaco, monospace; font-size: 0.8rem; max-height: 300px; overflow-y: auto; white-space: pre-wrap; display: none; margin-bottom: 24px; color: #8b949e; }

/* Header row */
.header-row { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 8px; }
.github-link { color: #8b949e; transition: color 0.15s; }
.github-link:hover { color: #e6edf3; text-decoration: none; }

/* File links */
.file-links { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.file-links a { padding: 6px 12px; background: #161b22; border: 1px solid #30363d; border-radius: 6px; font-family: "SF Mono", Monaco, monospace; font-size: 0.8rem; color: #58a6ff; }
.file-links a:hover { background: #21262d; text-decoration: none; }

/* URL textarea */
textarea#urls { width: 100%; background: #161b22; border: 1px solid #30363d; border-radius: 6px; padding: 12px; font-family: "SF Mono", Monaco, monospace; font-size: 0.85rem; color: #c9d1d9; resize: vertical; margin-bottom: 16px; line-height: 1.6; }
textarea#urls:focus { outline: none; border-color: #58a6ff; }

/* Summary bar */
.summary { display: flex; gap: 24px; margin-bottom: 16px; }
.summary .card { background: #161b22; border: 1px solid #21262d; border-radius: 6px; padding: 16px 20px; flex: 1; }
.summary .card .label { font-size: 0.75rem; color: #8b949e; text-transform: uppercase; letter-spacing: 0.05em; }
.summary .card .value { font-size: 1.4rem; font-weight: 600; margin-top: 4px; }
