:root{--ink:#111;--ink-soft:#444;--ink-muted:#777;--ink-faint:#b3b3b3;--paper:#fff;--paper-warm:#fafafa;--line:#e8e8e8;--accent:#fb651e;--accent-deep:#c2410c;--accent-wash:#fff1ea;--danger:#dc2626;--radius:14px;--radius-pill:999px;--font:"Helvetica Neue", Helvetica, Arial, "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;line-height:1.6}a{color:inherit}button{cursor:pointer;font-family:inherit}.shell{flex-direction:column;min-height:100dvh;display:flex}.container{width:100%;max-width:1040px;margin:0 auto;padding:0 20px}.site-header{border-bottom:1px solid var(--line);background:var(--paper)}.site-header .container{justify-content:space-between;align-items:center;height:64px;display:flex}.logo-badge{background:var(--ink);color:#fff;letter-spacing:-.01em;border-radius:8px;padding:4px 12px 6px;font-size:17px;font-weight:800;text-decoration:none;display:inline-block}.site-nav{align-items:center;gap:22px;display:flex}.site-nav a{color:var(--ink-soft);font-size:14px;font-weight:600;text-decoration:none}.site-nav a:hover{color:var(--ink)}.site-nav a.cta{background:var(--accent);color:#fff;border-radius:10px;padding:8px 16px}main{flex:1}.site-footer{border-top:1px solid var(--line);margin-top:64px;padding:28px 0}.site-footer .container{color:var(--ink-faint);flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:12.5px;display:flex}.kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;font-size:12px;font-weight:800}h1.display{letter-spacing:-.02em;font-size:clamp(34px,6vw,56px);font-weight:800;line-height:1.12}.lede{color:var(--ink-muted);max-width:620px;margin-top:18px;font-size:clamp(16px,2.4vw,20px)}.card{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius);padding:24px}.deadline-badge{background:var(--accent-wash);color:var(--accent-deep);border-radius:var(--radius-pill);padding:5px 12px;font-size:12.5px;font-weight:700;display:inline-block}.tag-pill{color:var(--ink-soft);border-radius:var(--radius-pill);background:#f4f4f4;padding:4px 11px;font-size:12px;font-weight:600;display:inline-block}.btn{text-align:center;border:none;border-radius:10px;padding:12px 20px;font-size:14px;font-weight:700;text-decoration:none;display:inline-block}.btn-primary{background:var(--ink);color:#fff}.btn-accent{background:var(--accent);color:#fff}.btn-ghost{border:1.5px solid var(--line);color:var(--ink-soft);background:0 0}.hero{padding:72px 0 40px}.section{padding:40px 0}.grid-3{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}@media (width<=720px){.grid-3{grid-template-columns:1fr}.site-nav{gap:14px}.site-nav a:not(.cta){display:none}}.form-stack{flex-direction:column;gap:14px;display:flex}.form-stack label{color:var(--ink-soft);flex-direction:column;gap:6px;font-size:13px;font-weight:700;display:flex}.form-stack input,.form-stack select,.form-stack textarea{font-family:var(--font);color:var(--ink);border:1.5px solid var(--line);background:var(--paper);border-radius:10px;padding:10px 12px;font-size:14.5px;font-weight:400}.form-stack input:focus,.form-stack select:focus,.form-stack textarea:focus{border-color:var(--accent);outline:none}.form-row{gap:12px;display:flex}.form-row label{flex:1}.form-error{color:var(--danger);font-size:13.5px;font-weight:600}.form-success{color:#15803d;font-size:13.5px;font-weight:600}.form-warning{border-left:3px solid var(--accent);background:var(--accent-wash);border-radius:0 8px 8px 0;flex-direction:column;gap:10px;padding:12px 16px;font-size:13.5px;display:flex}.form-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:10px;padding-top:6px;display:flex}.btn.danger{color:var(--danger);border-color:var(--danger)}.check-inline{align-items:center;flex-direction:row!important;gap:8px!important}.tag-picker{border:1.5px solid var(--line);border-radius:10px;padding:12px 14px}.tag-picker legend{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);padding:0 6px;font-size:12px;font-weight:800}.tag-picker-pills{flex-wrap:wrap;gap:8px;display:flex}.filter-pill{border:1.5px solid var(--line);background:var(--paper);cursor:pointer}.filter-pill.active{background:var(--ink);color:#fff;border-color:var(--ink)}.admin-toolbar{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.filter-row{gap:8px;margin-bottom:18px;display:flex}.admin-table{border-collapse:collapse;width:100%}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);border-bottom:2px solid var(--ink);padding:10px 12px 10px 0;font-size:11px;font-weight:800}.admin-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:12px 12px 12px 0;font-size:14px}.row-link{text-decoration:none}.row-link:hover strong{color:var(--accent)}.row-sub{color:var(--ink-muted);font-size:12.5px}.status-chip{border-radius:var(--radius-pill);padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.status-draft{color:var(--ink-soft);background:#f4f4f4}.status-published{color:#15803d;background:#dcfce7}.status-expired{color:var(--danger);background:#fee2e2}.form-preview-grid{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:36px;display:grid}.preview-pane{position:sticky;top:20px}@media (width<=900px){.form-preview-grid{grid-template-columns:1fr}}.opp-card{box-shadow:0 14px 40px #00000014}.opp-card-badges{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.opp-card-title{letter-spacing:-.015em;margin-bottom:4px;font-size:21px;font-weight:800;line-height:1.25}.opp-card-org{color:var(--ink-muted);margin-bottom:12px;font-size:14px}.opp-card-desc{color:var(--ink-soft);margin-bottom:10px;font-size:14px}.opp-card-why{color:var(--ink-soft);background:var(--paper-warm);border-radius:8px;margin-bottom:10px;padding:8px 12px;font-size:13px}.opp-card-elig{color:var(--ink-muted);margin-bottom:10px;font-size:12.5px}.opp-card-tags{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.opp-card-actions{flex-wrap:wrap;gap:8px;display:flex}.opp-card-actions .btn{padding:9px 14px;font-size:12.5px}.opp-card-source{color:var(--accent);margin-top:12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-block}.analytics-grid{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.analytics-grid-2{grid-template-columns:1fr 1.4fr;gap:18px;display:grid}@media (width<=860px){.analytics-grid,.analytics-grid-2{grid-template-columns:1fr}}.chart-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.legend{color:var(--ink-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.legend-swatch{border-radius:2px;width:18px;height:3px;display:inline-block}.legend-swatch.dashed{background:repeating-linear-gradient(90deg,#111 0 4px,#0000 4px 7px)}.bar-rows{flex-direction:column;gap:8px;display:flex}.bar-row{grid-template-columns:130px 1fr 34px;align-items:center;gap:10px;display:grid}.bar-label{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:600;overflow:hidden}.bar-track{border-radius:var(--radius-pill);background:#f4f4f4;height:14px;overflow:hidden}.bar-fill{background:var(--accent);border-radius:var(--radius-pill);min-width:2px;height:100%;transition:width .3s;display:block}.bar-n{text-align:right;color:var(--ink);font-size:12px;font-weight:700}.date-input{font-family:var(--font);border:1.5px solid var(--line);color:var(--ink);border-radius:8px;padding:5px 8px;font-size:12.5px}.range-slider{height:26px;position:relative}.range-slider input[type=range]{appearance:none;pointer-events:none;background:0 0;width:100%;height:4px;margin:0;position:absolute;top:6px;left:0;right:0}.range-slider input[type=range]:first-child{background:#eee;border-radius:2px}.range-slider input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);cursor:pointer;pointer-events:auto;border:2.5px solid #fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 4px #00000040}.range-slider input[type=range]::-moz-range-thumb{background:var(--accent);cursor:pointer;pointer-events:auto;border:2.5px solid #fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 4px #00000040}
