:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1f2937;background:#f8fafc}body{margin:0}main{max-width:1100px;margin:0 auto;padding:2rem 1rem 4rem}.hero,.summary,.results{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:1.5rem;box-shadow:0 1px 8px #0f172a0f;margin-bottom:1rem}h1{margin-top:0;font-size:1.8rem}.upload{display:inline-flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:10px;border:1px solid #cbd5e1;background:#f1f5f9;cursor:pointer}.upload input{max-width:18rem}.hidden{display:none}.counts{display:flex;gap:.75rem;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:.25rem .65rem;font-weight:600;border:1px solid #e5e7eb}.badge.error{background:#fef2f2}.badge.warning{background:#fffbeb}.badge.info{background:#eff6ff}.badge.ok{background:#f0fdf4;border-color:#bbf7d0}.finding{border-top:1px solid #e5e7eb;padding:1rem 0}.finding:first-child{border-top:0}.more-findings>summary{cursor:pointer;color:#475569;font-size:.9rem;padding:.5rem 0;-webkit-user-select:none;user-select:none}.more-findings>summary:hover{color:#1e293b}.more-findings .finding{padding-left:1rem;border-top:1px solid #f1f5f9}.finding-header{display:flex;gap:.5rem;flex-wrap:wrap;align-items:baseline}.severity{font-weight:700;text-transform:uppercase}.severity.error{color:#991b1b}.severity.warning{color:#92400e}.severity.info{color:#1d4ed8}.rule{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:#475569}.location{color:#64748b;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.9rem}.message{margin:.35rem 0}pre{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;padding:.75rem;overflow-x:auto;white-space:pre-wrap}.suggestion{color:#334155}.upload-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.notice{margin:.75rem 0 0;color:#92400e;font-size:.9rem}.rules-link{margin-left:auto;padding-left:1rem;border-left:1px solid #e5e7eb;color:#64748b;font-size:.9rem;text-decoration:none}.rules-link:hover{color:#334155;text-decoration:underline}.rule-category{margin-top:1.5rem}.rule-category h2{margin-bottom:.25rem}.category-desc{color:#64748b;margin-top:0}.findings-header{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;margin-bottom:.25rem}.findings-header h2{margin:0}.fix-launch{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e5e7eb;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.btn-start-fix{flex-shrink:0;padding:.45rem 1.1rem;background:#1d4ed8;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer}.btn-start-fix:hover{background:#1e40af}.fix-experimental{margin:0;font-size:.82rem;color:#64748b;font-style:italic}.fix-progress{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;font-size:.9rem;color:#475569}.fix-progress-bar{flex:1;height:6px;background:#e5e7eb;border-radius:3px;overflow:hidden}.fix-progress-fill{height:100%;background:#1d4ed8;border-radius:3px;transition:width .2s}.hard-stops-panel{background:#fef9c3;border:1px solid #fde047;border-radius:10px;padding:1rem 1.25rem;margin-bottom:1.25rem}.hard-stops-panel h3{margin:0 0 .75rem;font-size:.95rem;color:#713f12}.hard-stop-item{display:flex;gap:.5rem;align-items:baseline;padding:.35rem 0;border-top:1px solid #fde047;font-size:.9rem;flex-wrap:wrap}.hard-stop-item:first-of-type{border-top:none}.fix-card{border:1px solid #e5e7eb;border-radius:12px;overflow:hidden;margin-bottom:1rem}.fix-card-header{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap;padding:.75rem 1rem;background:#f8fafc;border-bottom:1px solid #e5e7eb}.fix-card-body{padding:.75rem 1rem 0}.fix-card-message{margin:0 0 .75rem}.diff-block{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85rem;margin-bottom:.75rem}.diff-del{background:#fef2f2;color:#991b1b;padding:.3rem .75rem;white-space:pre-wrap;word-break:break-all}.diff-add{background:#f0fdf4;color:#166534;padding:.3rem .75rem;white-space:pre-wrap;word-break:break-all}.diff-file-action{background:#f1f5f9;color:#334155;padding:.3rem .75rem;font-size:.85rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.interactive-notice{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:.6rem .9rem;font-size:.875rem;color:#9a3412;margin-bottom:.75rem}.fix-actions{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;border-top:1px solid #f1f5f9;flex-wrap:wrap}.btn-accept{padding:.45rem 1.1rem;background:#16a34a;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer}.btn-accept:hover{background:#15803d}.btn-reject{padding:.45rem 1.1rem;background:#fff;color:#374151;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer}.btn-reject:hover{background:#f9fafb}.btn-accept-all{padding:.45rem 1.1rem;background:#dcfce7;color:#166534;border:1px solid #bbf7d0;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer}.btn-accept-all:hover{background:#bbf7d0}.btn-skip-rule{margin-left:auto;background:none;border:none;color:#64748b;font-size:.85rem;cursor:pointer;padding:.45rem .5rem;text-decoration:underline;text-decoration-style:dotted}.btn-skip-rule:hover{color:#334155}.btn-continue{padding:.45rem 1.1rem;background:#f1f5f9;color:#374151;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;cursor:pointer}.btn-continue:hover{background:#e2e8f0}.fix-complete h2{margin-top:0}.fix-complete-stats{display:flex;gap:.75rem;flex-wrap:wrap;margin:1rem 0}.btn-download{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.4rem;background:#1d4ed8;color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;margin-top:.5rem}.btn-download:hover{background:#1e40af}.btn-restart{display:inline-flex;padding:.65rem 1.2rem;background:#fff;color:#374151;border:1px solid #d1d5db;border-radius:10px;font-size:1rem;cursor:pointer;margin-top:.5rem;margin-left:.75rem}.btn-restart:hover{background:#f9fafb}.fix-complete-open-stops{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e5e7eb}.fix-complete-open-stops h3{margin:0 0 .5rem;font-size:.95rem;color:#374151}
