body{font-family:Arial;background:#f4f6f8;margin:0;color:#1f2937}
.wrap{max-width:1100px;margin:30px auto;padding:20px}
.card{background:#fff;border-radius:18px;padding:30px;box-shadow:0 12px 35px #0001}
a{color:#2563eb}.button,button{background:#111827;color:#fff;border:0;border-radius:10px;padding:12px 18px;text-decoration:none;display:inline-block;cursor:pointer}
.upload-grid,.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:16px 0}
.metric-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.box,.panel{margin-top:16px;padding:16px;border-radius:12px}
.panel{background:#f8fafc;border:1px solid #e2e8f0}
.ok{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}
.warn{background:#fff7ed;border:1px solid #fdba74;color:#9a3412}
.err{background:#fee2e2;border:1px solid #fecaca;color:#991b1b}
.metric{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:14px}
.metric strong{display:block;font-size:24px;margin-top:5px}
.changed{color:#b45309}.same{color:#047857}.bad{color:#b91c1c}
table{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px}
th,td{border:1px solid #e2e8f0;padding:8px;text-align:left;vertical-align:top}
th{background:#f1f5f9}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}
.badge-moved{background:#ffedd5;color:#9a3412}
.badge-added{background:#dcfce7;color:#166534}
.badge-removed{background:#fee2e2;color:#991b1b}
.badge-same{background:#e2e8f0;color:#475569}
.canvas-wrap{background:#111827;border-radius:14px;padding:14px;margin-top:14px}
#compareCanvas{width:100%;height:500px;display:block;background:#0b1220;border-radius:10px}
.legend{display:flex;gap:20px;margin:10px 0;font-size:13px}
.dot{width:12px;height:12px;border-radius:50%;display:inline-block;margin-right:5px}
.old{background:#60a5fa}.new{background:#f59e0b}
.small{font-size:12px;color:#64748b}
.section{margin-top:25px;padding-top:18px;border-top:1px solid #e5e7eb}
.semantic-list{display:grid;gap:10px;margin-top:12px}
.semantic-item{border-radius:10px;padding:12px 14px;border:1px solid #dbe4ef;background:#fff}
.semantic-item.warning{background:#fff7ed;border-color:#fdba74;color:#9a3412}
.semantic-item.info{background:#eff6ff;border-color:#bfdbfe;color:#1e3a8a}
.muted{color:#64748b}
@media(max-width:700px){.upload-grid{grid-template-columns:1fr}}
