:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:light dark;--bg: #0f1115;--panel: #1a1d24;--panel-2: #12151b;--text: #e8eaed;--muted: #9aa0aa;--accent: #4f8cff;--border: #2a2f3a;--danger: #ef4444}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.muted{color:var(--muted)}.small{font-size:.85rem}.topnav{display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;background:var(--panel);border-bottom:1px solid var(--border)}.topnav .brand{font-weight:700;display:flex;align-items:baseline;gap:.4rem;flex:0 0 auto;white-space:nowrap}.topnav .app-version{font-weight:600;font-size:.72rem;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:.12rem .5rem;font-variant-numeric:tabular-nums;letter-spacing:.02em;align-self:center}.topnav nav{display:flex;gap:1rem}.topnav .spacer{flex:1}.content{padding:1.5rem;display:flex;justify-content:center}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1.75rem;box-shadow:0 8px 30px #00000059;width:100%;max-width:360px;display:flex;flex-direction:column;gap:.75rem}.card.wide{max-width:820px}.card.full{max-width:min(1600px,96vw)}.card h1{margin:0;font-size:1.25rem}label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}input,select,textarea{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem;font-size:.95rem;font-family:inherit;width:100%}textarea{resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0}input:disabled,textarea:disabled,select:disabled{opacity:.7;cursor:default}form{display:flex;flex-direction:column;gap:.75rem}.btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:.55rem .9rem;font-size:.95rem;font-weight:600;cursor:pointer;white-space:nowrap}.btn:disabled{opacity:.6;cursor:default}.btn.ghost{background:transparent;border:1px solid var(--border);color:var(--text);font-weight:500}.btn.small{padding:.3rem .6rem;font-size:.82rem}.btn.empty{opacity:.5;font-style:italic}.error{color:var(--danger);font-size:.88rem}.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.create-form input{flex:1;min-width:160px}.table{width:100%;border-collapse:collapse;margin-top:.5rem}.table th,.table td{text-align:left;padding:.55rem .5rem;border-bottom:1px solid var(--border);font-size:.9rem}.table th{color:var(--muted);font-weight:600}.table tr.inactive td{opacity:.5}.subcard{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:1rem;display:flex;flex-direction:column;gap:.6rem}.row.between{justify-content:space-between}.asset-list{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.field-row{display:flex;gap:.75rem;font-size:.9rem;margin:.1rem 0}.field-row .field-label{color:var(--muted);flex:0 0 130px}.field-row .field-value{flex:1;min-width:0;white-space:pre-wrap}.clamp-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem}.clamp{position:relative;max-height:8.4em;overflow:hidden;cursor:pointer}.clamp:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2.8em;background:linear-gradient(to bottom,transparent,var(--panel-2));pointer-events:none}.clamp-toggle{background:none;border:none;padding:0;color:var(--accent);font-size:.82rem;cursor:pointer}input.search{max-width:340px}.attrs{display:flex;flex-direction:column;gap:.4rem}.attrs-view{display:flex;flex-wrap:wrap;gap:.4rem}.chip{background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:.15rem .6rem;color:var(--muted)}.error.small{font-size:.8rem}.table-scroll{overflow-x:auto}.card.grants-page{height:calc(100vh - 120px);display:flex;flex-direction:column;overflow:hidden}.grants-page .grants-scroll{flex:1;min-height:0;overflow:auto}.grants-page .grants-panel{flex:0 0 auto;max-height:60vh;overflow-y:auto}.subcard.match-started{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;border-left:3px solid var(--accent)}.subcard.match-started>span{flex:1;min-width:220px}.match-progress-info{flex:1;min-width:240px}.progress-track{margin-top:.5rem;height:8px;border-radius:4px;background:var(--panel-2, rgba(127, 127, 127, .25));overflow:hidden}.progress-fill{height:100%;background:var(--accent);border-radius:4px;transition:width .4s ease}.progress-fill.done{background:#22c55e}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100}.modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1.25rem 1.5rem;width:100%;max-width:420px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #00000059}.modal h2{margin:0 0 .4rem}.modal dl.estimate{margin:.9rem 0;border-top:1px solid var(--border)}.modal dl.estimate>div{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.modal dl.estimate dt{color:var(--muted)}.modal dl.estimate dd{margin:0;text-align:right}.exclude-field{display:flex;flex-direction:column;gap:.3rem;margin:.9rem 0}.exclude-field>span:first-child{font-weight:600}.exclude-field input{width:100%}.check-field{display:flex;align-items:center;gap:.5rem;margin:.6rem 0;cursor:pointer}.check-field input{width:auto}.funder-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem;max-height:8rem;overflow-y:auto}.funder-chips .chip{border:1px solid var(--border);background:var(--panel-2, rgba(127, 127, 127, .12));color:inherit;border-radius:999px;padding:.15rem .6rem;font-size:.8rem;cursor:pointer}.funder-chips .chip.excluded{background:#3f1d1d;border-color:#a33;color:#f0b3b3}.funder-chips .chip:hover{border-color:var(--accent)}.grants-toolbar{display:flex;flex-direction:column;gap:.4rem;align-items:flex-end}.grants-toolbar .toolbar-row{gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.grants-toolbar .toolbar-row.match-row{flex-wrap:nowrap}.grants-toolbar .toolbar-row.match-row select{min-width:0}.count-badge{display:inline-block;min-width:1.6rem;padding:.05rem .5rem;border-radius:999px;background:var(--panel-2, rgba(127, 127, 127, .2));font-size:.85rem;font-weight:600;vertical-align:middle}.grid-edit{width:100%;min-width:60px;padding:.2rem .35rem;font-size:.85rem;box-sizing:border-box}.grid-edit-award{display:flex;gap:.25rem}.grid-edit-award .grid-edit{min-width:0}.col-info{margin-left:.3rem;color:var(--muted);cursor:help;font-weight:400;font-size:.8rem;position:relative}.col-info:hover,.col-info:focus{color:var(--accent);outline:none}.col-info-pop{position:fixed;z-index:200;width:290px;max-width:90vw;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 30px #0006;padding:.6rem .75rem;font-weight:400;white-space:normal;cursor:default}.col-info-desc{font-size:.82rem;line-height:1.35}.col-info-values{margin:.55rem 0 0;display:flex;flex-direction:column;gap:.3rem}.col-info-values>div{display:grid;grid-template-columns:8.5rem 1fr;gap:.5rem;align-items:start}.col-info-values dt{margin:0}.col-info-values dd{margin:0;font-size:.78rem;color:var(--muted);line-height:1.3}.col-filter{margin-left:.3rem;color:var(--muted);cursor:pointer;font-size:.72rem;-webkit-user-select:none;user-select:none}.col-filter:hover{color:var(--text)}.col-filter.active{color:var(--accent)}.col-filter-pop{position:fixed;z-index:250;width:240px;max-width:90vw;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 30px #00000073;padding:.5rem;font-weight:400;display:flex;flex-direction:column;gap:.35rem;cursor:default}.col-filter-search{width:100%;box-sizing:border-box}.col-filter-list{max-height:240px;overflow-y:auto;display:flex;flex-direction:column}.col-filter-item{display:flex;align-items:center;gap:.4rem;padding:.2rem .3rem;font-size:.82rem;border-radius:4px;cursor:pointer;white-space:nowrap}.col-filter-item:hover{background:var(--panel-2)}.col-filter-item input{width:auto;margin:0}.col-filter-item.all{border-bottom:1px solid var(--border);padding-bottom:.35rem;font-weight:600}.col-filter-val{overflow:hidden;text-overflow:ellipsis}.col-filter-foot{display:flex;justify-content:space-between;gap:.4rem;border-top:1px solid var(--border);padding-top:.4rem}.hier-label{position:relative;outline:none}.hier-tip{position:absolute;top:100%;left:0;z-index:200;display:none;width:max-content;min-width:220px;max-width:380px;max-height:45vh;overflow-y:auto;margin-top:5px;padding:.6rem .75rem;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 30px #0006;white-space:normal;text-align:left;cursor:default}.hier-label:hover>.hier-tip,.hier-label:focus-within>.hier-tip{display:block}.hier-tip-title{display:block;font-weight:600;font-size:.84rem;color:var(--text);margin-bottom:.35rem}.hier-tip-body{display:block;font-size:.82rem;line-height:1.4;color:var(--muted);white-space:pre-wrap}.hier-tip-body.empty{font-style:italic;opacity:.8}.rownum-col{text-align:right;padding-right:.5rem!important;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none}.row.end{display:flex;justify-content:flex-end;gap:.5rem}.grants-scroll .table.resizable thead th{position:sticky;top:0;z-index:2;background:var(--panel)}.table.resizable th:not(:last-child),.table.resizable td:not(:last-child):not(.match-grant-cell):not(.wrap){border-right:1px solid var(--border)}.tick{color:#34d399;font-weight:700}.tick-sub{color:var(--muted);font-weight:600}.table.resizable{table-layout:fixed;width:100%}.table.resizable th.expand-col{cursor:default}.expand-btn{padding:.1rem .35rem}.grant-detail-cell{padding:.4rem 0;background:var(--panel-2)}.grant-detail-inner{position:sticky;left:0;width:calc(min(1600px,96vw) - 7.5rem);max-width:calc(100vw - 8rem);margin:.35rem .75rem .6rem 2.25rem;padding:1rem 1.25rem;background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;box-shadow:0 6px 20px #00000040}.hier-tree{margin-top:.4rem;display:flex;flex-direction:column;gap:.15rem}.hier-node{font-size:.9rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.subcard.col-config{max-height:55vh;overflow-y:auto}.col-config-row{display:flex;align-items:center;gap:.5rem;padding:.15rem .3rem;border-radius:6px}.col-config-row+.col-config-row{border-top:1px solid transparent}.col-config-row.dragging{opacity:.5}.col-config-row:hover{background:var(--panel-2)}.drag-handle{cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none}.table.resizable th,.table.resizable td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table.resizable td.wrap,.table.resizable td.match-grant-cell{overflow:visible;text-overflow:clip;white-space:normal}.table.resizable th{position:relative;cursor:pointer;-webkit-user-select:none;user-select:none}.col-resizer{position:absolute;right:0;top:0;height:100%;width:7px;cursor:col-resize}.col-resizer:hover{background:var(--accent);opacity:.5}.match-grant-cell{background:var(--panel-2);padding:.5rem .75rem}.match-grant-list{display:flex;flex-direction:column;gap:.5rem}.match-family-header{display:flex;align-items:flex-start;gap:.25rem;padding:.25rem .1rem;font-weight:600}.match-family-title{flex:1 1 auto;min-width:0}.match-family-header.nested{font-weight:500}.match-node-row{display:flex;align-items:flex-start;gap:.25rem}.dossier-bar{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.6rem}.dossier-check{width:auto;margin-top:.35rem;flex:0 0 auto;cursor:pointer}.match-node-card{flex:1;min-width:0}.tree-toggle{background:none;border:none;color:var(--muted);cursor:pointer;padding:0 .15rem;font-size:.85rem;line-height:1.4;flex:0 0 auto}.tree-toggle:hover{color:var(--accent)}.tree-toggle-spacer{display:inline-block;width:1rem;flex:0 0 auto}.match-grant-card{display:flex;gap:.6rem;align-items:flex-start;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.6rem .75rem}.match-grant-body{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.match-grant-meta{display:flex;gap:1.25rem;flex-wrap:wrap}.match-grant-links,.match-grant-actions{gap:1rem;flex-wrap:wrap;align-items:center}.match-grant-card.rejected{opacity:.5}.notes-line{background:var(--panel-2);border-left:2px solid var(--accent);padding:.2rem .5rem;border-radius:4px}.add-match{margin-top:.75rem;padding-top:.6rem;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:.4rem}.badge.origin-ai{background:#1e293b;color:#93c5fd}.badge.origin-manual{background:#2e1065;color:#c4b5fd}.prereq-text{background:var(--panel-2);border-left:2px solid #fbbf24;padding:.2rem .5rem;border-radius:4px;color:var(--muted)}.prereq-select select{border-width:2px}.prereq-select.prereq-met select{border-color:#22c55e;color:#34d399}.prereq-select.prereq-in_progress select{border-color:#fbbf24;color:#fbbf24}.prereq-select.prereq-not_applicable select{border-color:var(--border);color:var(--muted)}.prereq-select.prereq-unknown select{border-color:#f87171;color:#f87171}.orgtype-nonprofit{background:#052e16;color:#34d399}.orgtype-for_profit{background:#172554;color:#60a5fa}.orgtype-other{background:#262626;color:#a3a3a3}.score-col{display:flex;flex-direction:column;align-items:center;gap:.15rem}.score-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.score-pill{display:inline-block;min-width:2.2rem;text-align:center;padding:.15rem .5rem;border-radius:999px;font-weight:700;font-size:.82rem;background:#14312a;color:#34d399;border:1px solid var(--border)}.match-list{display:flex;flex-direction:column;gap:.6rem;margin-top:.5rem}.match-row{display:flex;gap:.6rem;align-items:flex-start}.match-body{display:flex;flex-direction:column;gap:.15rem}label.inline{flex-direction:row;align-items:center;gap:.4rem;color:var(--muted);font-size:.85rem}label.inline select,label.inline input{width:auto}.filters{margin:.25rem 0 .5rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:.5rem 0}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid var(--border);text-transform:capitalize}.status-new{background:#1e293b;color:#93c5fd}.status-reviewing{background:#1e293b;color:#fbbf24}.status-shortlisted{background:#14312a;color:#34d399}.status-applying{background:#14312a;color:#6ee7b7}.status-submitted{background:#172554;color:#60a5fa}.status-awarded{background:#052e16;color:#22c55e}.status-rejected{background:#3f1d1d;color:#f87171}.status-ignored{background:#262626;color:#a3a3a3}.status-expired{background:#3a2a12;color:#d4a15a}.status-missed_deadline{background:#3f1d1d;color:#fca5a5}.funder-state{background:#172554;color:#60a5fa}.funder-federal{background:#1e1b4b;color:#a5b4fc}.funder-foundation{background:#14312a;color:#34d399}.funder-company{background:#3a2a12;color:#d4a15a}.funder-nonprofit{background:#2e1065;color:#c4b5fd}.funder-private_donor{background:#134e4a;color:#5eead4}.funder-other{background:#27272a;color:#a1a1aa}.scan-running{background:#1e293b;color:#fbbf24}.scan-success{background:#052e16;color:#22c55e}.scan-error{background:#3f1d1d;color:#f87171}.scan-cancelled{background:#2a2a2a;color:#a3a3a3}.rationale-line{border-left:2px solid var(--accent);padding-left:.5rem;margin:.15rem 0}.rationale-label{color:var(--muted);font-weight:600}.expired-badge{margin-left:.5rem;background:#3f1d1d;color:#f87171;font-size:.7rem}.expired-row td:not(:last-child){opacity:.55}.roadblock-badge{display:inline-block;padding:.15rem .5rem;border-radius:6px;background:#3a2a12;color:#f6b26b;border:1px solid #6b4a1f;font-size:.78rem;font-weight:600}.rb-cell-btn{padding:.15rem .35rem;font-size:.8rem;white-space:nowrap}.rb-cell-btn.has-rb{color:#f6b26b}.rb-pop{position:fixed;z-index:250;width:320px;max-width:92vw;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 30px #00000073;padding:.6rem;display:flex;flex-direction:column;gap:.5rem;font-weight:400;cursor:default}.rb-pop-head{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;color:var(--muted)}.rb-pop-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem;line-height:1;padding:0 .2rem}.rb-pop-empty{margin:0}.rb-pop-list{list-style:none;margin:0;padding:0;max-height:190px;overflow-y:auto;display:flex;flex-direction:column;gap:.45rem}.rb-pop-item{display:flex;align-items:center;gap:.3rem}.rb-pop-entity{flex:1;font-size:.85rem;overflow-wrap:anywhere}.rb-pop-del{background:none;border:none;color:var(--muted);cursor:pointer;padding:0 .2rem}.rb-pop-del:hover:not(:disabled){color:#ff6b6b}.rb-pop-add{display:flex;flex-direction:column;gap:.35rem;border-top:1px solid var(--border);padding-top:.5rem}.rb-pop-add select,.rb-pop-add textarea{font-size:.85rem;width:100%;box-sizing:border-box}.rb-pop-add .row{gap:.35rem}.rb-pop-add .row>select{flex:1;min-width:0}.rb-pickers{align-items:flex-end}.rb-field{flex:1 1 220px;min-width:200px;gap:.25rem}.rb-field-narrow{flex:0 0 160px;min-width:140px}.rb-field-label{color:var(--muted);font-size:.8rem}.combobox{position:relative;width:100%}.combobox-clear{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--muted);font-size:1.1rem;line-height:1;cursor:pointer;padding:0 .2rem}.combobox-clear:hover{color:var(--text)}.combobox-list{position:absolute;z-index:20;top:calc(100% + 2px);left:0;right:0;margin:0;padding:.25rem;list-style:none;max-height:260px;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 30px #00000059}.combobox-list li{padding:.4rem .6rem;border-radius:6px;cursor:pointer;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.combobox-list li:hover{background:var(--panel-2)}.combobox-list li.muted{cursor:default}.tabs{gap:.4rem;margin-bottom:.25rem}.link-rows{display:flex;flex-direction:column;gap:.4rem}.link-row{display:grid;grid-template-columns:1fr 1fr auto;gap:.5rem;align-items:center}.link-row-head{padding:0 .1rem}.json-example{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;font-size:.82rem;line-height:1.4;overflow-x:auto;max-height:260px;color:var(--muted);white-space:pre}textarea.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}code{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.05rem .3rem;font-size:.85em}.score-pill.zero{background:var(--panel-2, #262626);color:var(--muted)}.score-breakdown-list{display:flex;flex-direction:column;gap:.3rem;margin-top:.35rem}.score-breakdown-row{display:flex;align-items:center;gap:.5rem}.score-breakdown-row.kept{font-weight:600}.level-mark{flex:0 0 auto;align-self:center;color:var(--accent);letter-spacing:.12rem;font-size:1rem;line-height:1;-webkit-user-select:none;user-select:none}.application-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.1rem 0 .45rem}.application-reasons{margin:0 0 .5rem;padding:.45rem .65rem;background:var(--panel-2);border-radius:6px;border-left:2px solid var(--accent)}.app-reason-item{margin:.25rem 0}.app-dates{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:.6rem 0}.badge.app-in_progress{background:#1e293b;color:#fbbf24}.badge.app-submitted{background:#172554;color:#60a5fa}.badge.app-missed_deadline{background:#3f1d1d;color:#fca5a5}.badge.app-rejected{background:#3f1d1d;color:#f87171}.badge.app-won{background:#052e16;color:#22c55e}.app-name-input{font-size:1.15rem;font-weight:600;width:100%;box-sizing:border-box;margin:.2rem 0}.candidate-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.3rem}.candidate-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border:1px solid var(--border);border-radius:999px;background:var(--panel-2);font-size:.85rem}.candidate-chip .chip-x{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:.8rem;padding:0;line-height:1}.candidate-chip .chip-x:hover{color:var(--danger)}.phase-list{display:flex;flex-direction:column;gap:.6rem}.phase-card{border-left:3px solid var(--border)}.phase-card.phase-in_progress{border-left-color:#fbbf24}.phase-card.phase-complete{border-left-color:#22c55e}.phase-num{display:inline-block;min-width:1.5rem;height:1.5rem;line-height:1.5rem;text-align:center;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);font-size:.8rem;margin-right:.4rem}.badge.approval-gate{margin-left:.5rem;background:#2e1065;color:#c4b5fd;font-size:.7rem}.phase-checklist{display:flex;flex-direction:column;gap:.15rem;margin:.45rem 0}.phase-checklist .check-field span.done{text-decoration:line-through;color:var(--muted)}.phase-notes{width:100%;box-sizing:border-box;margin-top:.3rem}.phase-approval{margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--border)}.phase-approval .approved{color:#34d399;font-size:.85rem;display:inline-flex;align-items:center;gap:.5rem}.applied-count{display:inline-block;min-width:1.5rem;text-align:center;font-weight:600}
