*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#f8fafc,#e2e8f0);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh;padding:20px}code{font-family:Fira Code,Courier New,monospace}.App{margin:0 auto;max-width:1400px}.container{background:#fff;border-radius:16px;box-shadow:0 4px 16px #00000014;margin-top:20px;padding:40px}.error-message{background:#fef2f2;border:2px solid #fecaca;border-radius:12px;padding:30px;text-align:center}.error-message h3{color:#dc2626;font-size:24px;margin-bottom:15px}.error-message p{color:#64748b;font-size:16px;margin-bottom:20px}.btn{border:none;border-radius:10px;cursor:pointer;font-size:15px;font-weight:700;letter-spacing:.5px;padding:12px 24px;text-transform:uppercase;transition:all .3s ease}.btn-primary{background:#3b82f6;box-shadow:0 4px 12px #3b82f64d;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb;box-shadow:0 6px 16px #3b82f666;transform:translateY(-2px)}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.btn-secondary{background:#f1f5f9;color:#1a1a2e}.btn-secondary:hover{background:#e2e8f0}.btn-success{background:#10b981;color:#fff}.btn-success:hover{background:#059669}.btn-danger{background:#dc2626;box-shadow:0 4px 12px #dc262640;color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.stop-scan-btn{margin:8px 0 20px;min-width:180px}@media (max-width:768px){.container{padding:24px}}.header{background:#fff;border-radius:16px;box-shadow:0 4px 16px #00000014;padding:24px 32px}.header-content{justify-content:flex-start}.header-content,.logo-section{align-items:center;display:flex;gap:20px}.logo-icon{align-items:center;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:12px;box-shadow:0 4px 12px #3b82f64d;display:flex;font-size:32px;height:56px;justify-content:center;width:56px}.logo-text h1{color:#1a1a2e;font-size:28px;font-weight:900;margin-bottom:4px}.logo-text p{color:#64748b;font-size:13px;font-weight:500}@media (max-width:768px){.header{padding:20px 24px}.logo-icon{font-size:28px;height:48px;width:48px}.logo-text h1{font-size:22px}.logo-text p{font-size:12px}}.header-content .logo-section{text-decoration:none}.header-nav{align-items:center;display:flex;gap:20px;margin-left:auto}.header-nav a{color:#3b82f6;font-size:14px;font-weight:700;text-decoration:none}.header-user{color:#64748b;font-size:13px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-small{font-size:12px;padding:8px 14px}@media (max-width:768px){.header-content,.header-nav{flex-wrap:wrap}.header-nav{gap:12px;margin-left:0;width:100%}.header-user{display:none}}.auth-form{margin:0 auto;max-width:420px}.auth-form h2{color:#1a1a2e;font-size:24px;margin-bottom:8px}.auth-form .subtitle{color:#64748b;font-size:14px;margin-bottom:28px}.form-field{margin-bottom:18px;text-align:left}.form-field label{color:#1a1a2e;display:block;font-size:13px;font-weight:700;margin-bottom:6px}.form-field input{border:2px solid #e2e8f0;border-radius:10px;font-family:inherit;font-size:15px;padding:12px 14px;width:100%}.form-field input:focus{border-color:#3b82f6;outline:none}.form-hint{color:#94a3b8;font-size:12px;margin-top:4px}.auth-form .btn{margin-top:8px;width:100%}.auth-switch{color:#64748b;font-size:14px;margin-top:20px}.auth-switch button{background:none;border:none;color:#3b82f6;cursor:pointer;font-size:14px;font-weight:700;padding:0}.auth-notice{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;color:#1e3a8a;font-size:14px;margin-bottom:18px;padding:12px 14px}.learn{color:#334155;line-height:1.7;max-width:860px}.learn h2{color:#1a1a2e;font-size:26px;margin-bottom:12px}.learn section{margin-top:36px;scroll-margin-top:20px}.learn h3{color:#1a1a2e;font-size:20px;margin-bottom:10px}.learn h4{color:#1a1a2e;font-size:15px;margin:18px 0 4px}.learn ol,.learn p,.learn ul{margin-bottom:12px}.learn ol,.learn ul{padding-left:22px}.learn li+li{margin-top:6px}.learn pre{background:#0f172a;border-radius:10px;color:#e2e8f0;font-size:13px;margin-bottom:12px;overflow-x:auto;padding:14px 16px;white-space:pre-wrap;word-break:break-word}.learn-toc{background:#f8fafc;border-radius:10px;display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px 16px}.learn-toc a{color:#1d4ed8;font-size:14px;font-weight:600;text-decoration:none}.learn-table{border-collapse:collapse;font-size:14px;width:100%}.learn-table td{border-bottom:1px solid #f1f5f9;padding:8px 10px;vertical-align:top}.learn-table td:first-child{white-space:nowrap;width:1%}.learn-table tr{scroll-margin-top:20px}.learn-table tr:target{background:#fef9c3}.references{border-top:1px solid #e2e8f0;padding-top:12px}.references a{color:#1d4ed8}.policy-tester form{align-items:flex-start;display:flex;flex-direction:column;gap:10px}.policy-tester textarea{border:1px solid #cbd5e1;border-radius:8px;font-family:Fira Code,Courier New,monospace;font-size:13px;padding:12px;width:100%}.tester-result{margin-top:16px}@media (max-width:600px){.learn-table td:first-child{white-space:normal}}.muted{color:#64748b}.small{font-size:13px}a.btn{display:inline-block;text-decoration:none}.page-head{align-items:flex-end;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.empty-state h2,.narrow h2,.page-head h2{color:#1a1a2e;font-size:24px}.back-link{color:#64748b;font-size:13px;font-weight:600;margin-bottom:6px;text-decoration:none}.back-link,.pill{display:inline-block}.pill{background:#f1f5f9;border-radius:999px;color:#475569;font-size:12px;font-weight:700;padding:2px 10px;vertical-align:middle;white-space:nowrap}.env-prod{background:#dbeafe;color:#1d4ed8}.env-staging{background:#fef3c7;color:#92400e}.env-dev{background:#f1f5f9;color:#475569}.pill-revoked{margin-left:6px}.class-suspicious,.pill-revoked{background:#fee2e2;color:#b91c1c}.class-regression{background:#fef3c7;color:#92400e}.class-uncategorized{background:#e0e7ff;color:#3730a3}.class-noise{background:#f1f5f9;color:#64748b}.app-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.app-card{border:1px solid #e2e8f0;border-radius:12px;color:inherit;display:block;padding:20px;text-decoration:none;transition:border-color .2s,box-shadow .2s}.app-card:hover{border-color:#93c5fd;box-shadow:0 4px 12px #3b82f61f}.app-card-top{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.app-card h3{color:#1a1a2e;font-size:18px}.empty-state{margin:20px auto;max-width:560px;text-align:center}.empty-state p{line-height:1.6;margin:12px 0 20px}.steps{color:#334155;line-height:2;margin:0 auto 24px;max-width:420px;padding-left:20px;text-align:left}.narrow{max-width:720px}.form{gap:16px;max-width:420px}.form,.form label{display:flex;flex-direction:column}.form label{color:#334155;font-size:14px;font-weight:600;gap:6px}.filters input,.filters select,.form input,.form select{background:#fff;border:1px solid #cbd5e1;border-radius:8px;font-family:inherit;font-size:14px;padding:10px 12px}.form-actions{display:flex;gap:12px}.form-error{color:#dc2626;font-size:14px}.form-success{color:#059669;font-size:14px}.notice{align-items:flex-start;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;display:flex;flex-direction:column;gap:10px;margin-top:20px;padding:16px 20px}.notice a{color:#3b82f6;font-weight:600}.notice-error{background:#fef2f2;border-color:#fecaca}.notice-success{background:#ecfdf5;border-color:#a7f3d0}.pulse{animation:pulse 1.4s ease-in-out infinite;background:#3b82f6;border-radius:50%;display:inline-block;height:10px;margin-right:6px;width:10px}@keyframes pulse{50%{opacity:.25}}.setup{display:flex;flex-direction:column;gap:16px;line-height:1.6;margin-top:12px}.copy-block{position:relative}.copy-block-label{color:#64748b;font-size:12px;font-weight:700;margin-bottom:6px;text-transform:uppercase}.copy-block pre{background:#0f172a;border-radius:10px;color:#e2e8f0;font-size:13px;line-height:1.6;overflow-x:auto;padding:16px 90px 16px 16px;white-space:pre-wrap;word-break:break-all}.copy-button{background:#334155;border:none;border-radius:6px;bottom:10px;color:#fff;cursor:pointer;font-size:12px;font-weight:700;padding:6px 12px;position:absolute;right:10px}.copy-button:hover{background:#475569}.tabs{border-bottom:1px solid #e2e8f0;display:flex;gap:4px;margin-bottom:24px;overflow-x:auto}.tabs a{border-bottom:2px solid #0000;color:#64748b;font-size:14px;font-weight:600;margin-bottom:-1px;padding:10px 16px;text-decoration:none;white-space:nowrap}.tabs a.active{border-bottom-color:#3b82f6;color:#1d4ed8}.window-picker{background:#f1f5f9;border-radius:10px;display:inline-flex;margin-bottom:20px;padding:4px}.window-picker button{background:#0000;border:none;border-radius:8px;color:#475569;cursor:pointer;font-size:13px;font-weight:600;padding:6px 14px}.window-picker button.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#1a1a2e}.stat-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:20px}.stat{border:1px solid #e2e8f0;border-radius:12px;color:inherit;padding:18px 20px;text-decoration:none}.stat-value{color:#1a1a2e;font-size:28px;font-weight:800}.stat-label{color:#64748b;font-size:13px;font-weight:600;margin-top:4px}.stat.warn{background:#fffbeb;border-color:#fcd34d}.stat.danger{background:#fef2f2;border-color:#fca5a5}.stat.danger .stat-value{color:#b91c1c}.panel{border:1px solid #e2e8f0;border-radius:12px;margin-bottom:20px;padding:20px}.panel h3{color:#1a1a2e;font-size:15px;margin-bottom:14px}.panel h3:not(:first-child){margin-top:20px}.panel h4{font-size:14px;margin-bottom:10px}.panel>a{color:#3b82f6;font-size:14px;font-weight:600;text-decoration:none}.two-col{grid-gap:20px;display:grid;gap:20px;grid-template-columns:3fr 2fr}.trend-chart svg{display:block;height:180px;width:100%}.trend-axis{color:#64748b;justify-content:space-between;margin-top:6px}.legend,.trend-axis{display:flex;font-size:12px}.legend{color:#475569;flex-wrap:wrap;gap:14px;list-style:none;margin-top:12px}.swatch{border-radius:2px;display:inline-block;height:10px;margin-right:6px;vertical-align:middle;width:10px}.breakdown,.top-list{list-style:none}.top-list li{grid-gap:4px 12px;border-bottom:1px solid #f1f5f9;display:grid;gap:4px 12px;grid-template-columns:1fr auto;padding:10px 0}.top-list li a{color:#1a1a2e;overflow-wrap:anywhere;text-decoration:none}.top-list li a:hover{color:#1d4ed8}.top-list li .pill{align-self:center;grid-column:2;grid-row:1/span 2}.top-list{margin-bottom:12px}.breakdown li{align-items:center;display:flex;font-size:14px;justify-content:space-between;padding:6px 0}.breakdown a{text-decoration:none}.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.filters input{flex:1 1;min-width:180px}.table-wrap{overflow-x:auto}.violations-table{border-collapse:collapse;font-size:14px;width:100%}.violations-table th{border-bottom:1px solid #e2e8f0;color:#64748b;font-size:12px;padding:10px 12px;text-align:left;text-transform:uppercase;white-space:nowrap}.violations-table td{border-bottom:1px solid #f1f5f9;padding:12px;vertical-align:top}.violations-table td a{color:#1d4ed8;font-weight:600;overflow-wrap:anywhere;text-decoration:none}.violations-table .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.table-wrap+.muted,.table-wrap~.btn{margin-top:16px}.detail h3{font-size:20px;margin:4px 0 10px;overflow-wrap:anywhere}.detail>.muted{margin:10px 0 20px}.facts{grid-gap:8px 24px;display:grid;font-size:14px;gap:8px 24px;grid-template-columns:max-content 1fr;margin-bottom:24px}.facts dt{color:#64748b;font-weight:600}.facts dd{overflow-wrap:anywhere}.advice{font-size:14px;line-height:1.7;padding-left:20px}.advice li+li{margin-top:8px}.danger-zone{border:1px solid #fecaca;border-radius:12px;margin-top:36px;padding:20px}.danger-zone h3{color:#b91c1c;font-size:15px;margin-bottom:12px}.danger-action{align-items:center;display:flex;gap:16px;justify-content:space-between;padding:12px 0}.danger-action+.danger-action{border-top:1px solid #fee2e2}.confirm{display:flex;flex-shrink:0;gap:8px}code{font-size:.92em}@media (max-width:900px){.two-col{grid-template-columns:1fr}}@media (max-width:600px){.danger-action,.page-head{align-items:flex-start;flex-direction:column}}.hero{margin:20px auto;max-width:640px;text-align:center}.hero h2{color:#1a1a2e;font-size:26px}.hero>p{line-height:1.6;margin:10px 0 20px}.hero>a{color:#3b82f6;font-weight:600;text-decoration:none}.journey{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);list-style:none;margin:28px 0 20px;text-align:left}.journey li{border:1px solid #e2e8f0;border-radius:10px;color:#475569;font-size:14px;padding:14px}.journey strong{color:#1a1a2e;display:block}.site-url-form{flex-direction:column;text-align:left}.site-url-form,.site-url-row{display:flex;gap:10px}.site-url-row input{border:1px solid #cbd5e1;border-radius:10px;flex:1 1;font-family:inherit;font-size:16px;min-width:0;padding:12px 14px}.site-url-details{display:flex;flex-wrap:wrap;gap:12px}.site-url-details label{color:#334155;display:flex;flex:1 1;flex-direction:column;font-size:14px;font-weight:600;gap:6px;min-width:180px}.site-url-details input,.site-url-details select{background:#fff;border:1px solid #cbd5e1;border-radius:8px;font-family:inherit;font-size:14px;padding:10px 12px}.app-card-bottom{margin-top:12px}.grade-good{background:#d1fae5;color:#065f46}.grade-warn{background:#fef3c7;color:#92400e}.grade-bad{background:#fee2e2;color:#b91c1c}.grade-muted{background:#f1f5f9;color:#64748b}.stepper{list-style:none;margin:0 0 20px;overflow-x:auto}.step,.stepper{display:flex;gap:8px}.step{background:#f8fafc;border-radius:10px;color:#94a3b8;flex:1 1;font-size:14px;font-weight:600;min-width:110px;padding:10px 12px}.step,.step-dot{align-items:center}.step-dot{background:#e2e8f0;border-radius:50%;display:inline-flex;flex-shrink:0;font-size:12px;height:24px;justify-content:center;width:24px}.step-done{color:#065f46}.step-done .step-dot{background:#10b981;color:#fff}.step-current{background:#eff6ff;box-shadow:inset 0 0 0 1px #93c5fd;color:#1d4ed8}.step-current .step-dot{background:#3b82f6;color:#fff}.step-soon{opacity:.6}.step-label small{display:block;font-size:11px;font-weight:500}.next-step{align-items:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:12px;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px;padding:18px 20px}.next-step p{font-size:14px;line-height:1.5;margin-top:4px}.next-step-eyebrow{color:#3b82f6;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}.next-step .btn{flex-shrink:0}.grade-banner{align-items:center;border-radius:12px;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px;padding:18px 20px}.grade-banner .grade-label{font-size:22px;font-weight:800}.section-title{color:#1a1a2e;font-size:15px;margin:24px 0 12px}.findings{list-style:none}.finding{border-bottom:1px solid #f1f5f9;display:flex;gap:12px;padding:14px 0}.finding .pill{flex-shrink:0;height:fit-content;min-width:64px;text-align:center}.finding p{font-size:14px;line-height:1.55;margin-top:4px}.finding .fix span{color:#1a1a2e;font-weight:700}.learn-link{color:#3b82f6;font-size:13px;font-weight:600;text-decoration:none}.sev-pill-high{background:#fee2e2;color:#b91c1c}.sev-pill-medium{background:#fef3c7;color:#92400e}.sev-pill-low{background:#e0e7ff;color:#3730a3}.sev-pill-info{background:#f1f5f9;color:#475569}.policy-text{background:#0f172a;border-radius:8px;color:#e2e8f0;font-size:13px;margin-bottom:14px;padding:12px 14px;white-space:pre-wrap;word-break:break-all}.directive-table{border-collapse:collapse;font-size:14px;width:100%}.directive-table td{border-bottom:1px solid #f1f5f9;padding:8px 10px;vertical-align:top}.directive-table td:first-child{white-space:nowrap;width:1%}.directive-table a{color:#1d4ed8;text-decoration:none}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}.chip{background:#f1f5f9;border-radius:6px;font-size:12px;overflow-wrap:anywhere;padding:2px 8px}@media (max-width:600px){.grade-banner,.next-step,.site-url-row{align-items:stretch;flex-direction:column}.journey{grid-template-columns:1fr}.directive-table td:first-child{white-space:normal}}.coming-soon-page{padding:40px 0;text-align:center}.coming-soon-page h2{color:#1a1a2e;font-size:36px;margin-bottom:12px}.coming-soon-page .subtitle{color:#64748b;font-size:16px;margin-bottom:32px}.coming-soon-page .actions{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}.coming-soon-page .btn{display:inline-block;text-decoration:none}.home-page h2{color:#1a1a2e;font-size:26px;margin-bottom:8px}.home-page .subtitle{color:#64748b;font-size:15px;margin-bottom:28px}.home-page .btn-secondary{width:auto}.home-page nav{margin-bottom:24px}.home-page nav a{color:#3b82f6;font-size:14px;font-weight:700;margin-right:20px;text-decoration:none}.home-page nav a:hover{text-decoration:underline}