*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a2e;background:#f0f2f5;min-height:100vh;padding:0 16px 40px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.navbar{z-index:100;background-color:#dc2626;border-bottom:3px solid #dc2626;margin:0 -16px 40px;position:sticky;top:0;box-shadow:0 2px 8px #dc26261a}.navbar-inner{align-items:center;max-width:1200px;height:100px;margin:0 auto;padding:0 16px;display:flex}.navbar-brand{align-items:center;gap:30px;text-decoration:none;display:flex}.navbar-logo{object-fit:contain;width:auto;height:80px}.navbar-title{color:#fff;letter-spacing:.02em;white-space:nowrap;font-size:2rem;font-weight:700}main{max-width:1200px;margin:0 auto;padding:0 16px}header{text-align:center;margin-bottom:40px}header h1{color:#1a1a2e;font-size:1.9rem;font-weight:700}header p{color:#6b7280;margin-top:6px;font-size:.95rem}.search-wrap{max-width:600px;margin:0 auto 40px;position:relative}.search-wrap label{color:#374151;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:.85rem;font-weight:600;display:block}#search-input{background:#fff;border:2px solid #d1d5db;border-radius:12px;outline:none;width:100%;padding:14px 130px 14px 18px;font-size:1rem;transition:border-color .2s}#search-input:focus{border-color:#dc2626;box-shadow:0 0 0 4px #dc26261a}.search-icon{color:#9ca3af;pointer-events:none;position:absolute;top:calc(50% + 10px);right:102px;transform:translateY(-50%)}#search-btn{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:8px;padding:8px 12px;font-size:.84rem;font-weight:600;position:absolute;top:calc(50% + 10px);right:10px;transform:translateY(-50%)}#search-btn:hover{background:#b91c1c}#autocomplete-list{z-index:1000;background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;max-height:320px;display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 10px 30px #0000001f}#autocomplete-list.open{display:block}.ac-item{cursor:pointer;border-bottom:1px solid #f3f4f6;justify-content:space-between;align-items:center;padding:12px 16px;transition:background .1s;display:flex}.ac-item:last-child{border-bottom:none}.ac-item:hover,.ac-item.selected{background:#fef2f2}.ac-left{flex:1}.ac-ein{color:#ef4444;letter-spacing:.05em;font-family:SF Mono,Fira Mono,monospace;font-size:.8rem;font-weight:600}.ac-name{color:#1f2937;margin-top:2px;font-size:.95rem}.ac-meta{color:#9ca3af;margin-top:1px;font-size:.75rem}.ac-score{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;margin-left:12px;font-size:.85rem;font-weight:700;display:flex}.no-results{text-align:center;color:#9ca3af;padding:16px;font-size:.9rem}#result-card{max-width:750px;margin:0 auto;display:none}#result-card.visible{display:block}.org-header{color:#fff;background:linear-gradient(135deg,#dc2626 0%,#b91c1c 100%);border-radius:16px 16px 0 0;padding:28px 32px}.org-header .return-type{letter-spacing:.08em;background:#fff3;border-radius:6px;margin-bottom:10px;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-block}.org-header h2{font-size:1.5rem;font-weight:700;line-height:1.3}.org-header .ein-badge{opacity:.85;margin-top:8px;font-family:SF Mono,Fira Mono,monospace;font-size:.85rem}.metrics-grid{background:#fff;border:1.5px solid #e5e7eb;border-top:none;grid-template-columns:1fr 1fr;gap:0;display:grid}.metric{border-bottom:1px solid #f0f0f5;border-right:1px solid #f0f0f5;padding:24px 28px}.metric:nth-child(2){border-right:none}.metric:nth-child(3){border-bottom:none}.metric:nth-child(4){border-bottom:none;border-right:none}.metric-label{text-transform:uppercase;letter-spacing:.08em;color:#6b7280;margin-bottom:6px;font-size:.75rem;font-weight:700}.metric-value{color:#1a1a2e;font-size:1.6rem;font-weight:700;line-height:1.2}.metric-value.na{color:#d1d5db;font-size:1.2rem}.metric-sub{color:#9ca3af;margin-top:4px;font-size:.8rem}.ceo-section{background:#fff;border:1.5px solid #e5e7eb;border-top:none;align-items:center;gap:16px;padding:24px 28px;display:flex}.ceo-avatar{color:#dc2626;background:linear-gradient(135deg,#fee2e2,#fecaca);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1rem;font-weight:700;display:flex}.ceo-info{flex:1}.ceo-label{text-transform:uppercase;letter-spacing:.08em;color:#6b7280;margin-bottom:2px;font-size:.7rem;font-weight:700}.ceo-name{color:#1a1a2e;font-size:1rem;font-weight:600}.ceo-title-text{color:#6b7280;margin-top:1px;font-size:.82rem}.ceo-salary{text-align:right}.ceo-salary-label{text-transform:uppercase;letter-spacing:.08em;color:#6b7280;margin-bottom:2px;font-size:.7rem;font-weight:700}.ceo-salary-value{color:#059669;font-size:1.25rem;font-weight:700}.ceo-salary-value.zero{color:#9ca3af}.scores-section{background:#fff;border:1.5px solid #e5e7eb;border-top:none;padding:28px 32px}.scores-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.scores-title{text-transform:uppercase;letter-spacing:.08em;color:#6b7280;font-size:.75rem;font-weight:700}.composite-badge{align-items:center;gap:8px;display:flex}.composite-label{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.composite-value{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.4rem;font-weight:800;display:flex}.score-bars{flex-direction:column;gap:14px;display:flex}.score-row{align-items:center;gap:12px;display:flex}.score-row-label{color:#374151;flex-shrink:0;width:90px;font-size:.82rem;font-weight:600}.score-bar-wrap{background:#f3f4f6;border-radius:14px;flex:1;height:28px;position:relative;overflow:hidden}.score-bar-fill{cursor:pointer;border-radius:14px;justify-content:flex-end;align-items:center;min-width:40px;height:100%;padding-right:10px;transition:width .6s;display:flex}.score-bar-num{color:#fff;font-size:.75rem;font-weight:700}.score-bar-num.dark{color:#374151;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.score-row{cursor:pointer;position:relative}.score-detail{color:#e5e7eb;background:#1f2937;border-radius:10px;margin-top:6px;margin-left:102px;padding:12px 16px;font-size:.78rem;line-height:1.6}.score-detail.open{display:block}[x-cloak]{display:none!important}.score-detail strong{color:#fff}.hint{text-align:center;color:#9ca3af;max-width:500px;margin:0 auto;font-size:.9rem}.charity-dist-section{background:#fff;border:1.5px solid #e5e7eb;border-top:none;border-radius:0 0 16px 16px;padding:20px 24px}.charity-dist-title{text-transform:uppercase;letter-spacing:.07em;color:#6b7280;margin-bottom:14px;font-size:.75rem;font-weight:700}.charity-dist-grid{grid-template-columns:1fr;gap:12px;display:grid}.charity-dist-card{border:1px solid #eef0f4;border-radius:10px;padding:10px 12px}.charity-dist-head{color:#6b7280;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.76rem;display:flex}.charity-dist-name{color:#374151;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.charity-dist-bars{grid-template-columns:repeat(8,minmax(0,1fr));align-items:end;gap:5px;min-height:88px;display:grid}.charity-dist-bar{opacity:.85;background:#fecaca;border-radius:6px 6px 0 0;width:100%;min-height:3px}.charity-dist-bar.active{opacity:1;outline-offset:-1px;background:#dc2626;outline:2px solid #7f1d1d}.charity-dist-label-row{grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;margin-top:6px;display:grid}.charity-dist-label{text-align:center;color:#9ca3af;font-size:.62rem;line-height:1.2}.historical-section{background:#fff;border:1.5px solid #e5e7eb;border-top:none;padding:20px 24px}.historical-title{text-transform:uppercase;letter-spacing:.07em;color:#6b7280;margin-bottom:14px;font-size:.75rem;font-weight:700}.historical-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.historical-chart{background:#fafbfc;border:1px solid #eef0f4;border-radius:10px;padding:12px}.chart-header{color:#6b7280;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:.76rem;display:flex}.chart-name{color:#374151;text-transform:uppercase;letter-spacing:.05em;font-weight:700}.chart-bars{align-items:flex-end;gap:8px;min-height:100px;margin-bottom:4px;display:flex}.chart-bar-col{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.chart-bar{background:#fecaca;border-radius:4px 4px 0 0;width:100%;min-height:3px}.chart-bar.revenue{background:#dc2626}.chart-bar.assets{background:#b91c1c}.chart-bar.ceo{background:#059669}.chart-value{color:#374151;font-size:.68rem;font-weight:600}.chart-year{color:#9ca3af;font-size:.64rem}.bar-group .bar-tip{opacity:0;pointer-events:none;transition:opacity .1s}.bar-group:hover .bar-tip{opacity:1}.bar-group:hover .bar-fill{opacity:.75}.hint svg{opacity:.4;margin-bottom:12px}.graphs-wrap{max-width:1000px;margin:36px auto 0}.graphs-title{color:#1a1a2e;margin-bottom:14px;font-size:1rem;font-weight:700}.graphs-subtitle{color:#6b7280;margin-bottom:18px;font-size:.82rem}.graphs-grid{grid-template-columns:1fr;gap:12px;display:grid}.graph-card{background:#fff;border:1.5px solid #e5e7eb;border-radius:14px;padding:16px 18px}.graph-card-header{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.graph-name{text-transform:uppercase;letter-spacing:.05em;color:#4b5563;font-size:.84rem;font-weight:700}.graph-meta{color:#9ca3af;font-size:.75rem}.dist-chart{grid-template-columns:repeat(8,minmax(0,1fr));align-items:end;gap:8px;min-height:170px;display:grid}.dist-bar-wrap{flex-direction:column;align-items:center;gap:6px;display:flex}.dist-count{color:#6b7280;font-size:.7rem}.dist-bar{background:#dc2626;border-radius:8px 8px 0 0;width:100%;min-height:4px}.dist-label{color:#6b7280;text-align:center;font-size:.66rem;line-height:1.25}.methodology-link{text-align:center;margin-top:16px}.methodology-link button{color:#ef4444;cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:.85rem;text-decoration:underline}.modal-overlay{z-index:2000;background:#00000080;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-overlay.open{display:flex}.modal-content{background:#fff;border-radius:16px;width:100%;max-width:700px;max-height:85vh;padding:32px;position:relative;overflow-y:auto}.modal-close{cursor:pointer;color:#6b7280;background:#f3f4f6;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.1rem;display:flex;position:absolute;top:16px;right:16px}.modal-content h3{color:#1a1a2e;margin-bottom:16px;font-size:1.3rem}.modal-content h4{color:#dc2626;margin:18px 0 8px;font-size:1rem}.modal-content p,.modal-content li{color:#374151;font-size:.88rem;line-height:1.7}.modal-content ul{margin-bottom:8px;padding-left:20px}.modal-content table{border-collapse:collapse;width:100%;margin:8px 0 16px;font-size:.82rem}.modal-content th,.modal-content td{text-align:left;border-bottom:1px solid #e5e7eb;padding:6px 10px}.modal-content th{color:#6b7280;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}#back-btn-wrap{max-width:750px;margin:0 auto 12px}#back-btn{color:#ef4444;cursor:pointer;background:0 0;border:none;align-items:center;gap:5px;padding:0;font-family:inherit;font-size:.88rem;font-weight:600;display:inline-flex}#back-btn:hover{color:#b91c1c}.view-controls{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.reset-scores-btn{color:#6b7280;cursor:pointer;background:#f9fafb;border:1.5px solid #e5e7eb;border-radius:10px;align-items:center;gap:6px;padding:7px 13px;font-size:.82rem;font-weight:600;transition:all .15s;display:inline-flex}.reset-scores-btn:hover:not(:disabled){color:#dc2626;background:#fef2f2;border-color:#fecaca}.reset-scores-btn:disabled{opacity:.45;cursor:not-allowed}.list-wrap{background:#fff;border:1.5px solid #e5e7eb;border-radius:14px;overflow-x:auto;box-shadow:0 2px 12px #0000000d}.charity-list{border-collapse:collapse;width:100%;min-width:1060px}.charity-list thead{background:linear-gradient(135deg,#dc2626 0%,#b91c1c 100%)}.charity-list thead th{text-transform:uppercase;letter-spacing:.08em;color:#ffffffe6;text-align:left;white-space:nowrap;padding:13px 8px;font-size:.65rem;font-weight:700}.charity-list thead th:first-child{padding-left:18px}.charity-list thead th:last-child{padding-right:18px}.charity-list thead th.col-score,.charity-list thead th.col-composite{text-align:center;padding-left:4px;padding-right:4px}.charity-list thead th.col-history{text-align:center}.list-row{cursor:pointer;border-bottom:1px solid #f0f0f5;transition:background .1s}.list-row:last-child{border-bottom:none}.list-row:hover{background:#fef2f2}.list-row:hover .list-name{color:#dc2626}.charity-list tbody td{vertical-align:middle;padding:10px 8px}.charity-list tbody td:first-child{padding-left:18px}.charity-list tbody td:last-child{padding-right:18px}.col-name{min-width:170px;max-width:240px}.col-num{white-space:nowrap;min-width:82px}.col-score{text-align:center;width:58px;padding-left:4px!important;padding-right:4px!important}.col-composite{text-align:center;width:72px;padding-left:4px!important;padding-right:4px!important}.col-history{width:82px}.col-ceo{min-width:128px}.list-name{color:#1a1a2e;font-size:.84rem;font-weight:700;line-height:1.3;transition:color .1s}.list-ein{color:#9ca3af;margin-top:2px;font-family:SF Mono,Fira Mono,monospace;font-size:.67rem}.list-value{color:#1a1a2e;font-size:.84rem;font-weight:700}.list-score-badge{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:.75rem;font-weight:800;display:inline-flex}.list-composite{color:#fff;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;font-size:.88rem;font-weight:800;display:inline-flex;box-shadow:0 2px 6px #0000002e}.mini-spark{align-items:flex-end;gap:5px;height:40px;display:flex}.mini-spark-col{flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.mini-spark-bar{border-radius:2px 2px 0 0;width:100%;min-height:2px}.mini-spark-bar.revenue{background:#dc2626}.mini-spark-bar.assets{background:#b91c1c}.mini-spark-yr{color:#9ca3af;white-space:nowrap;font-size:.57rem;line-height:1}.list-ceo-comp{margin-top:2px;font-size:.77rem;font-weight:700}.empty-state{text-align:center;color:#9ca3af;padding:48px 24px;font-size:.95rem}@media (width<=480px){.metrics-grid{grid-template-columns:1fr}.metric{border-right:none}.metric:nth-child(3){border-bottom:1px solid #f0f0f5}.ceo-section{flex-direction:column;align-items:flex-start}.ceo-salary{text-align:left}.score-row-label{width:70px;font-size:.75rem}.score-detail{margin-left:0}.dist-chart,.charity-dist-bars,.charity-dist-label-row{grid-template-columns:repeat(4,minmax(0,1fr))}}[data-score-key][data-ein]{cursor:pointer}.list-score-badge{position:relative}.list-score-badge.score-modified:after{content:"";pointer-events:none;background:#dc2626;border:1.5px solid #fff;border-radius:50%;width:9px;height:9px;position:absolute;top:-3px;right:-3px}[data-score-key][data-ein]:hover{opacity:.82}.score-edit-popover{z-index:9999;background:#fff;border:1.5px solid #e5e7eb;border-radius:12px;min-width:210px;padding:14px 16px 12px;font-size:.82rem;position:absolute;box-shadow:0 8px 28px #00000024}.sep-label{text-transform:uppercase;letter-spacing:.07em;color:#6b7280;margin-bottom:10px;font-size:.72rem;font-weight:700}.sep-range-row{align-items:center;gap:10px;margin-bottom:12px;display:flex}.sep-range{accent-color:#dc2626;cursor:pointer;flex:1}.sep-value{color:#1a1a2e;text-align:right;min-width:28px;font-size:1.05rem;font-weight:800}.sep-actions{gap:6px;display:flex}.sep-btn{cursor:pointer;border:none;border-radius:8px;flex:1;padding:6px 0;font-size:.77rem;font-weight:600;transition:background .15s}.sep-save{color:#fff;background:#dc2626}.sep-save:hover{background:#b91c1c}.sep-reset,.sep-cancel{color:#6b7280;background:#f3f4f6}.sep-reset:hover,.sep-cancel:hover{background:#e5e7eb}.charity-list .weight-row,.charity-list .weight-row td{background:#fafafa}.charity-list .weight-row td{border-bottom:1.5px solid #dc26261f;padding:6px 8px}.charity-list .weight-row td:first-child{padding-left:18px}.weight-row-label{text-transform:uppercase;letter-spacing:.07em;color:#9ca3af;font-size:.62rem;font-weight:600}.weight-badge{color:#374151;cursor:pointer;-webkit-user-select:none;user-select:none;background:#f3f4f6;border:1.5px solid #e5e7eb;border-radius:6px;justify-content:center;align-items:center;padding:2px 7px;font-size:.68rem;font-weight:700;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.weight-badge:hover{color:#dc2626;background:#fef2f2;border-color:#fca5a5}.weight-badge.weight-modified{color:#dc2626;background:#fef2f2;border-color:#dc2626}.sep-weight-preview{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px;padding:8px 10px}.sep-wp-row{justify-content:space-between;align-items:center;padding:2px 0;display:flex}.sep-wp-label{color:#6b7280;font-size:.72rem}.sep-wp-val{color:#374151;text-align:right;min-width:32px;font-size:.72rem;font-weight:700}.back-btn-wrap{max-width:820px;margin:0 auto 16px}.back-btn{color:#374151;background:#fff;border:1.5px solid #e5e7eb;border-radius:20px;align-items:center;gap:7px;padding:8px 16px 8px 12px;font-size:.84rem;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s,color .15s,box-shadow .15s;display:inline-flex;box-shadow:0 1px 3px #0000000f}.back-btn:hover{color:#dc2626;background:#fff5f5;border-color:#dc2626;box-shadow:0 2px 8px #dc26261f}.back-btn svg{transition:transform .15s}.back-btn:hover svg{transform:translate(-2px)}.detail-card{background:#fff;border:1.5px solid #e5e7eb;border-radius:16px;max-width:820px;margin:0 auto;overflow:hidden}.detail-card>*{border-bottom:1.5px solid #f3f4f6;padding:24px 28px}.detail-card>:last-child{border-bottom:none}.score-chevron{color:#9ca3af;flex-shrink:0;margin-left:4px;font-size:1.3rem;line-height:1;transition:transform .2s,color .15s}.score-chevron.open{color:#4f46e5;transform:rotate(90deg)}.scores-hint{text-transform:none;letter-spacing:0;color:#9ca3af;font-size:.8rem;font-weight:400}.religious-note{color:#9ca3af;margin-top:14px;font-size:.75rem}.methodology-link{margin-top:12px}.methodology-link button{color:#4f46e5;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:0;font-family:inherit;font-size:.8rem;font-weight:600;text-decoration:underline}.methodology-link button:hover{color:#4338ca}.ceo-empty{color:#9ca3af;font-size:.9rem}.programs-section{flex-direction:column;gap:18px;display:flex}.program-block-title{text-transform:uppercase;letter-spacing:.07em;color:#9ca3af;margin-bottom:6px;font-size:.75rem;font-weight:700}.program-text{color:#374151;font-size:.9rem;line-height:1.65}.governance-title{text-transform:uppercase;letter-spacing:.07em;color:#9ca3af;margin-bottom:16px;font-size:.75rem;font-weight:700}.governance-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-bottom:20px;display:grid}.governance-item{color:#374151;align-items:center;gap:8px;font-size:.84rem;display:flex}.gov-check{text-align:center;flex-shrink:0;width:20px;font-size:.95rem;font-weight:800}.gov-check.yes{color:#059669}.gov-check.no{color:#d1d5db}.gov-label{color:#4b5563}.org-stats-grid{border-top:1px solid #f3f4f6;flex-wrap:wrap;gap:24px;margin-top:4px;padding-top:16px;display:flex}.org-stat{text-align:center;min-width:60px}.org-stat-val{color:#1f2937;font-size:1.35rem;font-weight:700;line-height:1.1}.org-stat-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;margin-top:3px;font-size:.7rem;font-weight:600}.detail-card .org-header{padding:28px 32px 40px}.detail-card .score-bars{margin-top:18px}.score-weight-row{border-bottom:1px solid #f0f0f2;align-items:flex-start;gap:12px;margin-bottom:2px;padding-bottom:16px;display:flex}.score-weight-badges{flex-wrap:wrap;gap:8px;display:flex}.score-weight-item{flex-direction:column;align-items:center;gap:3px;display:flex}.score-weight-item-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.05em;font-size:.62rem;font-weight:700}.detail-card .score-bar-wrap:has(.score-bar-fill.score-modified){overflow:visible}.detail-card .score-bar-wrap:has(.score-bar-fill.score-modified):after{content:"";pointer-events:none;z-index:2;background:#dc2626;border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;top:-4px;right:-4px}
