*{box-sizing:border-box;margin:0;padding:0}
body{background:#f8f6f4;color:#241a1d;font-family:'Public Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:#5b001b;text-decoration:underline;text-underline-offset:2px}
a:hover{color:#8c3b50}

/* ---------- header ---------- */
.header{background:#41000f;color:#fff;padding:0 clamp(16px,4vw,40px)}
.header-inner{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:14px 0 0}
.header-brand{display:flex;align-items:center;gap:14px}
.header-logo{height:34px;width:34px;object-fit:contain;border-radius:3px}
.header-org{font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#e0b9c4}
.header-title{font-family:Newsreader,Georgia,serif;font-size:19px;font-weight:400;letter-spacing:-.01em;margin-top:1px}
.header-sync{display:flex;align-items:center;gap:8px;font-size:11px;color:#e0b9c4;letter-spacing:.06em}
.sync-dot{width:7px;height:7px;border-radius:50%;display:inline-block}

.tabs{max-width:1180px;margin:0 auto;display:flex;gap:2px;padding-top:12px;overflow-x:auto}
.tab-btn{background:rgba(255,255,255,.08);color:#e0b9c4;border:none;font-family:'Public Sans',sans-serif;font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;padding:12px 22px;cursor:pointer;border-radius:4px 4px 0 0;white-space:nowrap}
.tab-btn.active{background:#f8f6f4;color:#41000f}

/* ---------- shared ---------- */
.page{max-width:1180px;margin:0 auto;padding:clamp(20px,4vw,40px) clamp(16px,4vw,40px) 60px}
.page-title{font-family:Newsreader,Georgia,serif;font-size:clamp(30px,4.5vw,42px);font-weight:400;letter-spacing:-.02em;line-height:1.1}
.page-sub-eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#7d7169}
.page-sub{font-size:13px;color:#7d7169}

.card{background:#fff;border:1px solid #e7e1dd;border-radius:6px}
.card-title{font-family:Newsreader,Georgia,serif;font-weight:500;margin-bottom:4px}
.card-desc{font-size:12px;color:#7d7169;margin-bottom:20px}

.bar-track{background:#efe9e5;border-radius:3px;overflow:hidden}
.bar-fill{border-radius:3px;transition:width .6s ease}

/* ---------- meeting: header ---------- */
.meeting-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.headline{font-family:Newsreader,Georgia,serif;font-size:clamp(17px,2.2vw,21px);line-height:1.5;color:#4a3a3e;max-width:60ch;text-wrap:pretty;margin-bottom:28px}

/* ---------- kpis ---------- */
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:14px}
.kpi-card{padding:22px 22px 20px}
.kpi-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#7d7169;margin-bottom:12px}
.kpi-value{font-family:Newsreader,Georgia,serif;font-size:38px;line-height:1;font-weight:400;font-variant-numeric:tabular-nums}
.kpi-sub{font-size:12px;color:#7d7169;margin-top:8px}
.kpi-bar-track{margin-top:14px;height:5px}
.kpi-bar-fill{height:5px}

/* ---------- pacing ---------- */
.pacing-card{padding:20px 22px;margin-bottom:32px}
.pacing-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.pacing-verdict{font-size:12px;font-weight:600}
.pacing-wrap{position:relative;height:34px}
.pacing-track{position:absolute;inset:0;height:10px;border-radius:5px}
.pacing-track-fill{height:10px;background:#8c3b50;border-radius:5px}
.pacing-marker{position:absolute;top:-4px;width:2px;height:18px;background:#241a1d}
.pacing-marker-label{position:absolute;top:17px;font-size:11px;color:#241a1d;transform:translateX(-50%);white-space:nowrap}
.pacing-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:12px;color:#7d7169;margin-top:18px}
.legend-swatch-sq{display:inline-block;width:9px;height:9px;border-radius:2px;background:#8c3b50;margin-right:6px}
.legend-swatch-line{display:inline-block;width:9px;height:2px;background:#241a1d;margin-right:6px;vertical-align:middle}

/* ---------- meeting content grid ---------- */
.content-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;align-items:start}
.content-card{padding:24px}
.content-card h2{font-size:20px}

.row-block{margin-bottom:18px}
.row-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}
.row-label{font-size:13px;font-weight:500}
.row-amt{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.row-amt .muted{color:#9a8e88}
.row-bar-track{height:6px}
.row-bar-fill{height:6px}
.row-foot{display:flex;justify-content:space-between;font-size:11px;color:#9a8e88;margin-top:5px}
.row-foot-single{font-size:11px;color:#9a8e88;margin-top:5px}

/* ---------- expense categories ---------- */
.exp-row{border-bottom:1px solid #f0ebe8;padding:10px 0}
.exp-head{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;background:none;border:none;width:100%;font:inherit;text-align:left;padding:0}
.exp-head:hover{opacity:.72}
.exp-chevron{font-size:9px;color:#b08442;width:10px;transition:transform .15s ease;display:inline-block}
.exp-chevron.open{transform:rotate(90deg)}
.exp-label{flex:1;font-size:13px;font-weight:500;color:#241a1d}
.exp-amt{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.exp-bar-track{height:5px;margin:8px 0 0 20px}
.exp-bar-fill{height:5px}
.exp-detail{margin:12px 0 4px 20px;background:#faf8f6;border-radius:4px;padding:6px 12px}
.exp-line{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid #f0ebe8;font-size:12px}
.exp-line-label{flex:1;color:#4a3a3e}
.exp-line-actual{font-variant-numeric:tabular-nums;font-weight:600;min-width:62px;text-align:right}
.exp-line-budget{font-variant-numeric:tabular-nums;color:#9a8e88;min-width:62px;text-align:right}
.exp-hidden-note{font-size:11px;color:#9a8e88;padding:8px 0 4px}

/* ---------- donations ---------- */
.donation-row{display:flex;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px solid #f0ebe8;font-size:13px}
.donation-month{color:#9a8e88;min-width:84px}
.donation-recipient{flex:1;color:#4a3a3e}
.donation-amount{font-variant-numeric:tabular-nums;color:#5b001b}
.donation-total{display:flex;justify-content:space-between;padding-top:14px;margin-top:6px;border-top:2px solid #e7e1dd;font-size:13px}
.donation-total-label{color:#7d7169}
.donation-total-value{color:#5b001b;font-variant-numeric:tabular-nums}
.donation-empty{font-size:13px;color:#9a8e88;padding:18px 0}

/* ---------- board page ---------- */
.board-kpi-card{padding:24px}
.board-kpi-value{font-family:Newsreader,Georgia,serif;font-size:40px;line-height:1;font-variant-numeric:tabular-nums}

.two-col-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:24px}
.two-col-card{padding:24px}
.two-col-card h2{font-size:20px;margin-bottom:18px}

.mix-bar{display:flex;height:14px;border-radius:7px;overflow:hidden;margin-bottom:18px}
.mix-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid #f0ebe8;font-size:13px}
.mix-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0}
.mix-label{flex:1}
.mix-pct{color:#9a8e88;font-variant-numeric:tabular-nums}
.mix-goal{font-variant-numeric:tabular-nums;min-width:66px;text-align:right}

.plan-row{margin-bottom:13px}
.plan-row-head{display:flex;justify-content:space-between;font-size:13px;margin-bottom:5px}
.plan-bar-track{height:5px}
.plan-bar-fill{height:5px;background:#8c3b50}

.compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:24px}
.compare-card{padding:22px 24px}
.compare-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#7d7169;margin-bottom:12px}
.compare-value-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.compare-value{font-family:Newsreader,Georgia,serif;font-size:30px;font-variant-numeric:tabular-nums}
.compare-was{font-size:12px;color:#7d7169}
.compare-note{font-size:12px;color:#7d7169;margin-top:8px;line-height:1.5}

.note-card{border-left:3px solid #b08442;padding:22px 26px}
.note-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#b08442;margin-bottom:10px}
.note-text{font-family:Newsreader,Georgia,serif;font-size:17px;line-height:1.55;color:#4a3a3e;max-width:70ch;text-wrap:pretty}

/* ---------- events page ---------- */
.event-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.pill{background:#fff;color:#4a3a3e;border:1px solid #e7e1dd;font-family:'Public Sans',sans-serif;font-size:12px;font-weight:600;padding:9px 16px;border-radius:20px;cursor:pointer}
.pill.active{background:#5b001b;color:#fff;border-color:#5b001b}

.event-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}
.event-kpi-card{padding:20px}
.event-kpi-label{font-size:10px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:#7d7169;margin-bottom:10px}
.event-kpi-value{font-family:Newsreader,Georgia,serif;font-size:28px;line-height:1;font-variant-numeric:tabular-nums}
.event-kpi-sub{font-size:11px;color:#9a8e88;margin-top:6px}

.event-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.event-detail-card{padding:24px}
.event-detail-card h2{font-size:19px;font-weight:500;margin-bottom:16px}
.event-line{display:flex;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px solid #f0ebe8;font-size:13px}
.event-line-label{flex:1;color:#4a3a3e}
.event-line-goal{font-variant-numeric:tabular-nums;color:#9a8e88;min-width:70px;text-align:right}
.event-line-actual{font-variant-numeric:tabular-nums;min-width:70px;text-align:right}
.event-columns-note{font-size:12px;color:#9a8e88;margin-top:16px}

/* ---------- footer ---------- */
.footer{border-top:1px solid #e7e1dd;padding:26px 20px 40px;text-align:center;font-size:11px;color:#9a8e88;letter-spacing:.06em}
