:root{
  --blue:#002868; --blueDark:#001845; --blueRoyal:#003494;
  --red:#BF0A30; --redDark:#9B0826; --white:#FFFFFF;
  --gold:#DAA520; --goldLight:#F0C75E; --cream:#FFFCF5;
  --lightBlue:#E8F0FE; --slate:#1A1A2E; --gray:#444455;
  --border:#C8D0DC; --shadow:0 3px 15px rgba(0,40,104,0.13);
  --serif:'Times New Roman', Georgia, serif;
  --sans:Arial, 'Helvetica Neue', sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  min-height:100vh;
  font-family:var(--sans);
  background-image:linear-gradient(rgba(0,20,60,0.55),rgba(0,20,60,0.55)), url('/assets/flag-bg.jpg');
  background-size:cover; background-position:center; background-attachment:fixed;
  display:flex; flex-direction:column;
}
a{color:inherit;}

/* ---- Banner / RedStripe ---- */
.red-stripe{background:var(--red); padding:3px 0;}

/* ---- Nav ---- */
.nav{background:var(--blue); position:sticky; top:0; z-index:100;}
.nav-row{max-width:1100px; margin:0 auto; padding:0 20px; display:flex; align-items:center; justify-content:space-between; position:relative;}
.nav-home-btn{background:none; border:none; cursor:pointer; color:var(--white); font-family:var(--sans); font-size:14px; font-weight:700; padding:16px 0; letter-spacing:0.03em; text-decoration:none;}
.nav-title{position:absolute; left:50%; transform:translateX(-50%); pointer-events:none; font-family:var(--serif); font-size:22px; font-weight:700; color:var(--gold); white-space:nowrap;}
.nav-toggle{background:none; border:none; cursor:pointer; color:var(--gold); font-size:26px; padding:10px;}
.nav-menu{background:var(--blueDark); padding:8px 20px 16px; display:none;}
.nav-menu.open{display:block;}
.nav-menu a, .nav-menu button.nav-item{display:block; width:100%; text-align:left; background:none; border:none; cursor:pointer; color:var(--white); font-family:var(--sans); font-size:15px; font-weight:400; padding:12px 14px; border-radius:4px; text-decoration:none;}
.nav-menu a.active, .nav-menu button.nav-item.active{background:rgba(255,255,255,0.1); font-weight:700;}
.nav-submenu{padding-left:20px; display:none;}
.nav-submenu.open{display:block;}
.nav-submenu a{color:var(--goldLight); font-size:14px; padding:10px 14px;}
.nav-issues-toggle{display:flex; width:100%; justify-content:space-between; align-items:center;}

/* ---- Issue hero ---- */
.issue-hero{position:relative; overflow:hidden; padding:44px 20px 36px;}
.issue-hero::before{content:""; position:absolute; inset:0; background-image:url('/assets/flag-bg.jpg'); background-size:cover; background-position:center;}
.issue-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(170deg, rgba(0,40,104,0.82) 0%, rgba(0,24,69,0.9) 100%);}
.issue-hero-inner{max-width:780px; margin:0 auto; position:relative; z-index:1; color:var(--white);}
.back-btn{background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.3); color:var(--white); font-family:var(--sans); font-size:13px; padding:7px 18px; border-radius:4px; cursor:pointer; margin-bottom:18px; display:inline-block; text-decoration:none;}
.issue-icon{font-size:38px; margin-bottom:10px;}
.issue-title{font-family:var(--serif); font-size:clamp(1.6rem, 5vw, 2.5rem); font-weight:700; line-height:1.2; text-shadow:0 2px 6px rgba(0,0,0,0.25); margin:0;}

/* ---- Content ---- */
main{flex:1;}
.content-wrap{max-width:780px; margin:0 auto; padding:40px 20px 60px; background:rgba(255,252,245,0.68);}
.content-wrap.plain{background:none;}
section.block{margin-bottom:32px;}
h2.section-head{font-family:var(--serif); font-size:22px; color:var(--blue); margin-bottom:14px; padding-bottom:8px; border-bottom:3px solid var(--red);}
h2.section-head.gold{border-bottom-color:var(--gold);}
h2.section-head.blue{border-bottom-color:var(--blue);}
.body-p{font-family:var(--sans); font-size:16px; line-height:1.75; color:var(--slate); margin-bottom:14px;}

.research-btn-wrap{text-align:center; margin-top:18px;}
.research-btn{display:inline-block; background:var(--red); color:var(--white); font-family:var(--sans); font-size:15px; font-weight:700; padding:11px 30px; border-radius:4px; text-decoration:none; letter-spacing:0.04em; box-shadow:0 3px 10px rgba(191,10,48,0.35);}
.research-btn:hover{background:var(--redDark);}
.coming-soon-inline{display:inline-block; font-family:var(--sans); font-size:14px; font-weight:700; color:#6b6b6b;}

.refs-block{margin-top:18px; margin-bottom:18px;}
h3.refs-head{font-family:var(--serif); font-size:16px; color:var(--blue); margin-bottom:10px; padding-bottom:5px; border-bottom:2px solid var(--blue);}
.ref-line{font-family:var(--sans); font-size:13px; color:var(--slate); line-height:1.6; margin-bottom:8px;}
.ref-line:last-child{margin-bottom:0;}
.ref-line a{color:var(--blue); text-decoration:underline;}
.ref-caveat{font-family:var(--sans); font-size:11px; color:var(--gray); font-style:italic; margin-top:12px;}

.proposal-link{display:inline-block; margin-top:4px; font-family:var(--sans); font-size:14px; font-weight:700; color:var(--red); text-decoration:none;}
.prototype-btn-wrap{text-align:center; margin:28px 0 8px;}
.prototype-btn{background:var(--red); color:var(--white); font-family:var(--sans); font-size:16px; font-weight:700; padding:14px 36px; border:none; border-radius:4px; cursor:pointer; letter-spacing:0.03em; box-shadow:0 4px 12px rgba(191,10,48,0.3); text-decoration:none; display:inline-block;}

/* ---- Metrics (Goals/Metrics/Review/Severability/Sunset) ---- */
.metrics-list{display:flex; flex-direction:column; gap:14px;}
.metric-box{background:rgba(0,0,0,0.03); border:1px solid #ddd; border-left:4px solid #ccc; border-radius:4px; padding:14px 18px;}
.metric-box.filled{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-left:4px solid var(--blue);}
.metric-label{font-family:var(--sans); font-size:12.5px; font-weight:700; color:#6b6b6b; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:6px;}
.metric-box.filled .metric-label{color:var(--blue);}
.metric-value{font-family:var(--sans); font-size:14px; line-height:1.6; color:#6b6b6b; margin:0; font-style:italic;}
.metric-box.filled .metric-value{font-size:15px; color:var(--slate); font-style:normal;}

/* ---- Comment form ---- */
.comment-form{background:rgba(232,240,254,0.75); border:2px solid var(--border); border-top:4px solid var(--blue); border-radius:6px; padding:28px 24px; margin-top:36px;}
.comment-form h3{font-family:var(--serif); font-size:22px; color:var(--blue); margin:0 0 6px;}
.comment-form .cf-sub{font-family:var(--sans); font-size:14px; color:var(--gray); margin-bottom:20px; line-height:1.5;}
.cf-success{background:#d4edda; border:1px solid #a8d5b5; border-radius:4px; padding:12px 16px; margin-bottom:16px; font-family:var(--sans); font-size:14px; color:#155724; display:none;}
.cf-success.show{display:block;}
.cf-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:14px;}
.cf-field{display:flex; flex-direction:column; gap:14px; margin-top:14px;}
label.cf-label{font-family:var(--sans); font-size:13px; font-weight:600; color:var(--blue); margin-bottom:5px; display:block;}
label.cf-label .opt{font-weight:400; color:#888;}
.cf-input, .cf-select, .cf-textarea{font-family:var(--sans); font-size:15px; padding:10px 14px; border:1px solid var(--border); border-radius:4px; width:100%; box-sizing:border-box; color:var(--slate); background:var(--white);}
.cf-textarea{resize:vertical; min-height:100px;}
.cf-yesno{display:flex; align-items:center; gap:12px; font-family:var(--sans); font-size:14px; color:var(--slate); margin-top:14px;}
.cf-yesno span.q{font-weight:600; color:var(--blue);}
.cf-yesno-btns{display:flex; gap:6px;}
.cf-yn-btn{padding:5px 16px; border-radius:4px; border:2px solid var(--border); background:var(--white); color:var(--slate); font-weight:600; cursor:pointer; font-size:13px;}
.cf-yn-btn.selected{border-color:var(--blue); background:var(--blue); color:var(--white);}
.cf-notify{display:none; align-items:center; gap:8px; font-family:var(--sans); font-size:13.5px; color:var(--slate); margin-top:14px;}
.cf-notify.show{display:flex;}
.cf-submit{background:var(--blue); color:var(--white); font-family:var(--sans); font-size:15px; font-weight:700; padding:12px 36px; border:none; border-radius:4px; cursor:pointer; margin-top:14px;}
.cf-submit:hover{background:var(--blueRoyal);}
.cf-submit:disabled{background:#6688aa; cursor:default; opacity:0.7;}
.cf-error{font-family:var(--sans); font-size:13px; color:var(--red); margin:10px 0 0; font-weight:600;}

/* ---- Contact button / footer ---- */
.contact-btn-wrap{text-align:center; padding:28px 20px 8px;}
.contact-btn{background:var(--gold); color:var(--blueDark); font-family:var(--sans); font-size:15px; font-weight:700; padding:12px 32px; border:none; border-radius:4px; cursor:pointer; letter-spacing:0.03em; box-shadow:0 3px 10px rgba(0,0,0,0.15); text-decoration:none; display:inline-block;}
footer.site-footer{background:var(--blueDark); color:rgba(255,255,255,0.7); font-family:var(--sans); font-size:13px; text-align:center; padding:24px 20px; line-height:1.6; border-top:3px solid var(--gold);}
footer.site-footer .inner{max-width:780px; margin:0 auto;}
footer.site-footer .paid-for{margin-bottom:4px; color:var(--gold); font-weight:700; font-size:14px;}
footer.site-footer .copyright{margin-bottom:0;}

/* ---- Homepage hero ---- */
.hero{position:relative; overflow:hidden; min-height:420px; display:flex; align-items:center; justify-content:center;}
.hero::before{content:""; position:absolute; inset:0; background-image:url('/assets/flag-bg.jpg'); background-size:cover; background-position:center;}
.hero::after{content:""; position:absolute; inset:0; background:linear-gradient(170deg, rgba(0,40,104,0.72) 0%, rgba(0,24,69,0.82) 100%);}
.hero-inner{position:relative; z-index:1; text-align:center; color:var(--white); padding:64px 24px 56px; max-width:800px; margin:0 auto;}
.hero-title{font-family:var(--serif); font-size:clamp(2.4rem, 7vw, 4.2rem); font-weight:700; margin:0 0 8px; line-height:1.1; text-shadow:0 3px 12px rgba(0,0,0,0.4);}
.hero-subtitle{font-family:var(--sans); font-size:clamp(0.9rem, 2.5vw, 1.1rem); font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--white); margin:0 0 14px; opacity:0.9;}
.hero-tagline{font-family:var(--serif); font-size:clamp(1.4rem, 4vw, 2rem); font-weight:700; margin:0 0 10px; line-height:1.45; color:var(--goldLight); text-shadow:0 1px 6px rgba(0,0,0,0.3);}
.hero-rule{width:60px; height:3px; background:var(--red); margin:0 auto 32px; border-radius:2px;}
.hero-cta{background:var(--red); color:var(--white); font-family:var(--sans); font-size:17px; font-weight:700; padding:15px 42px; border:none; border-radius:4px; cursor:pointer; letter-spacing:0.04em; box-shadow:0 4px 16px rgba(191,10,48,0.4); text-decoration:none; display:inline-block;}
.hero-cta:hover{background:var(--redDark);}

/* ---- Mission ---- */
.mission{background:rgba(255,255,255,0.70); padding:56px 20px;}
.mission-inner{max-width:780px; margin:0 auto;}
.mission-head{font-family:var(--serif); font-size:clamp(1.5rem, 4vw, 2.1rem); color:var(--blue); margin:0 0 8px; text-align:center;}
.mission-rule{width:50px; height:3px; background:var(--red); margin:0 auto 24px; border-radius:2px;}
.mission-note{font-family:var(--sans); font-size:15px; line-height:1.75; color:var(--slate); margin-top:20px; padding:16px 20px; background:rgba(0,40,104,0.06); border-left:4px solid var(--blue); border-radius:4px;}
.mission-note strong{color:var(--blue);}

/* ---- Liberty Bell section ---- */
.bell-section{background:var(--blue); overflow:hidden;}
.bell-inner{max-width:1100px; margin:0 auto; display:flex; flex-wrap:wrap; align-items:center;}
.bell-img-wrap{flex:1 1 340px; min-width:280px; padding:36px 28px; display:flex; flex-direction:column; align-items:center;}
.bell-img{width:100%; max-width:420px; border-radius:6px; box-shadow:0 8px 32px rgba(0,0,0,0.4); border:3px solid var(--gold);}
.bell-caption{font-family:var(--sans); font-size:11px; color:rgba(255,255,255,0.5); margin-top:8px; font-style:italic;}
.bell-text{flex:1 1 340px; padding:40px 28px; color:var(--white);}
.bell-head{font-family:var(--serif); font-size:clamp(1.4rem, 4vw, 2rem); margin-bottom:16px; color:var(--goldLight);}
.bell-p{font-family:var(--sans); font-size:16px; line-height:1.75; color:rgba(255,255,255,0.68); margin-bottom:14px;}

/* ---- Category page ---- */
.category-hero{position:relative; overflow:hidden; padding:44px 20px 36px;}
.category-hero::before{content:""; position:absolute; inset:0; background-image:url('/assets/flag-bg.jpg'); background-size:cover; background-position:center; filter:brightness(0.3);}
.category-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(170deg, rgba(0,40,104,0.82) 0%, rgba(0,24,69,0.9) 100%);}
.category-hero-inner{max-width:780px; margin:0 auto; position:relative; z-index:1; color:var(--white);}
.category-summary{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-radius:6px; padding:28px 24px; margin-bottom:28px;}
.issue-card-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:18px;}
.issue-card{background:rgba(255,255,255,0.75); border:2px solid var(--border); border-left:5px solid var(--red); border-radius:5px; padding:22px 20px; text-align:left; cursor:pointer; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:8px; text-decoration:none; color:inherit;}
.issue-card:hover{border-left-color:var(--blue); transform:translateY(-2px);}
.issue-card-icon{font-size:28px;}
.issue-card-title{font-family:var(--serif); font-size:17px; font-weight:700; color:var(--blue); margin:0;}
.issue-card-short{font-family:var(--sans); font-size:14px; color:var(--gray); line-height:1.55; margin:0; flex:1;}
.issue-card-link{font-family:var(--sans); font-size:13px; font-weight:700; color:var(--red); margin-top:4px;}

/* ---- Sitemap page ---- */
.sitemap-list{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:2px;}
.sitemap-list li{padding:6px 0;}
.sitemap-list a{font-family:var(--sans); font-size:15px; color:var(--blue); text-decoration:none;}
.sitemap-list a:hover{text-decoration:underline;}

/* ---- Simple content page (bio, accountability, thinking-aloud, tax-dollars) ---- */
.simple-hero{position:relative; overflow:hidden; padding:44px 20px 36px;}
.simple-hero::before{content:""; position:absolute; inset:0; background-image:url('/assets/flag-bg.jpg'); background-size:cover; background-position:center; filter:brightness(0.3);}
.simple-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(170deg, rgba(0,40,104,0.82) 0%, rgba(0,24,69,0.9) 100%);}
.simple-hero-inner{max-width:780px; margin:0 auto; position:relative; z-index:1; color:var(--white);}
.simple-subtitle{font-family:var(--sans); font-size:15px; color:var(--goldLight); margin-top:8px;}
.bio-body{font-family:var(--sans); font-size:16.5px; line-height:1.75; color:var(--slate);}
.bio-body p{margin-bottom:16px;}
.bio-closer{font-family:var(--sans); font-size:17px; line-height:1.75; color:var(--blue); font-weight:700; font-style:italic; margin-top:8px;}

/* Contact page */
.contact-card{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-radius:8px; padding:36px 32px; text-align:center;}
.contact-card p{font-family:var(--serif); font-size:18px; font-style:italic; color:var(--slate); line-height:1.8; margin-bottom:20px;}
.contact-card .email-main{color:var(--gold); font-weight:700; font-size:20px;}
.contact-pills{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:24px;}
.contact-pill{font-family:var(--sans); font-size:14px; font-weight:600; color:var(--blue); background:rgba(0,40,104,0.08); padding:6px 14px; border-radius:20px;}
.contact-note{font-family:var(--serif); font-size:16px; font-style:italic; color:var(--gray); line-height:1.8;}

/* Accountability framework cards */
.framework-card{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-left:4px solid var(--blue); border-radius:4px; padding:18px 22px;}
.framework-card h3{font-family:var(--serif); font-size:19px; font-weight:700; color:var(--blue); margin:0 0 8px 0;}
.framework-card p{font-family:var(--sans); font-size:15.5px; line-height:1.7; color:var(--slate); margin:0;}
.framework-list{display:flex; flex-direction:column; gap:18px;}

/* Thinking Aloud entries */
.entry-card{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-left:4px solid var(--blue); border-radius:4px; padding:24px 28px; margin-bottom:20px;}
.entry-head{display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px; margin-bottom:14px;}
.entry-head h2{font-family:var(--serif); font-size:20px; font-weight:700; color:var(--blue); margin:0;}
.entry-date{font-family:var(--sans); font-size:13px; color:var(--gray); font-style:italic;}
.entry-card p{font-family:var(--sans); font-size:16px; line-height:1.75; color:var(--slate); margin-bottom:14px;}
.entry-card p:last-child{margin-bottom:0;}

/* Tax Dollars page */
.did-you-know{background:#1B8C3A; color:var(--white); border-radius:8px; padding:20px 24px; margin-bottom:28px; box-shadow:0 3px 12px rgba(27,140,58,0.3);}
.did-you-know h3{font-family:var(--serif); font-size:20px; font-weight:700; margin-bottom:10px; color:#fff;}
.did-you-know p{font-family:var(--sans); font-size:15px; line-height:1.7; margin:0;}
.tax-item-list{display:flex; flex-direction:column; gap:12px;}
.tax-item{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-radius:4px; padding:16px 20px;}
.tax-item.c0{border-left:4px solid var(--blue);}
.tax-item.c1{border-left:4px solid var(--red);}
.tax-item.c2{border-left:4px solid var(--gold);}
.tax-item-head{display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px; margin-bottom:6px;}
.tax-item-head h3{font-family:var(--serif); font-size:17px; font-weight:700; color:var(--blue); margin:0;}
.tax-item-year{font-family:var(--sans); font-size:12px; font-weight:600; color:var(--gray); background:rgba(0,40,104,0.08); padding:2px 10px; border-radius:3px;}
.tax-item p{font-family:var(--sans); font-size:14px; color:var(--slate); line-height:1.6; margin:0;}
.tax-footnote{font-family:var(--sans); font-size:14px; color:var(--gray); text-align:center; margin-top:28px; font-style:italic;}

/* ---- Humor page ---- */
.quote-wrap{display:flex; flex-wrap:wrap; gap:16px; justify-content:center; align-items:flex-start;}
.quote-card{background:rgba(255,255,255,0.85); border-radius:20px; box-shadow:0 3px 12px rgba(0,0,0,0.1); flex:0 1 auto;}
.quote-card p.quote-text{font-family:var(--serif); font-style:italic; color:var(--slate); line-height:1.5; margin:0;}
.quote-card p.quote-attr{font-family:var(--sans); font-size:12px; font-weight:700; margin:10px 0 0 0;}
.quote-footnote{font-family:var(--sans); font-size:14px; color:var(--gray); text-align:center; margin-top:32px; font-style:italic;}

/* ---- Endorsements page ---- */
.endorse-tabs{display:flex; gap:8px; margin-bottom:28px;}
.endorse-tab-btn{flex:1; padding:12px; font-family:var(--sans); font-size:15px; font-weight:700; border:none; border-radius:4px; cursor:pointer; background:rgba(0,40,104,0.1); color:var(--blue);}
.endorse-tab-btn.active{background:var(--blue); color:var(--white);}
.endorse-panel{display:none;}
.endorse-panel.active{display:block;}
.endorse-list{display:flex; flex-direction:column; gap:12px;}
.endorse-card{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-left:4px solid var(--gold); border-radius:4px; padding:16px 20px;}
.endorse-card h3{font-family:var(--serif); font-size:17px; font-weight:700; color:var(--blue); margin:0 0 6px 0;}
.endorse-card p{font-family:var(--sans); font-size:14px; color:var(--slate); line-height:1.5; margin:0;}
.endorse-empty{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-radius:6px; padding:40px 24px; text-align:center;}
.endorse-empty p.headline{font-family:var(--serif); font-size:20px; color:var(--blue); margin-bottom:12px;}
.endorse-empty p.body{font-family:var(--sans); font-size:15px; color:var(--gray); line-height:1.6; margin:0;}

/* ---- Seeing the Budget page ---- */
.prototype-banner{background:var(--red); color:var(--white); font-family:var(--sans); font-size:13px; font-weight:700; text-align:center; padding:10px; border-radius:4px; margin-bottom:32px;}
.budget-section-head{font-family:var(--serif); font-size:clamp(1.3rem,3.5vw,1.8rem); color:var(--blue); margin-bottom:8px;}
.budget-source-note{font-family:var(--sans); font-size:13px; color:var(--gray); margin-bottom:20px; font-style:italic;}
.budget-lead{font-family:var(--sans); font-size:14px; color:var(--slate); margin-bottom:20px;}
.stat-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); gap:14px; margin-bottom:28px;}
.stat-card{background:rgba(255,255,255,0.75); padding:16px; border-radius:6px; text-align:center; border:2px solid var(--border);}
.stat-label{font-family:var(--sans); font-size:11px; font-weight:600; color:var(--gray); text-transform:uppercase; letter-spacing:0.08em;}
.stat-value{font-family:var(--serif); font-size:28px; font-weight:700; margin:6px 0;}
.budget-sub-head{font-family:var(--serif); font-size:18px; color:var(--blue); margin-bottom:14px; padding-bottom:6px; border-bottom:3px solid;}
.budget-sub-head.red-underline{border-bottom-color:var(--red);}
.budget-sub-head.gold-underline{border-bottom-color:var(--gold);}
.chart-card{background:rgba(255,255,255,0.75); padding:24px; border-radius:6px; border:1px solid var(--border); margin-bottom:28px;}
.budget-footnote{font-family:var(--sans); font-size:13px; color:var(--gray); font-style:italic; text-align:center; margin-bottom:48px;}
.budget-divider{border-top:3px solid var(--blue); padding-top:32px; margin-bottom:8px;}

.pie-wrap{display:flex; flex-wrap:wrap; gap:24px; align-items:center; justify-content:center;}
.pie-svg{max-width:100%;}
.pie-legend{display:flex; flex-direction:column; gap:6px; min-width:200px;}
.pie-legend-row{display:flex; align-items:center; gap:8px; font-family:Arial,sans-serif; font-size:13px; color:#1A1A2E;}
.pie-swatch{width:14px; height:14px; border-radius:3px; flex-shrink:0;}
.pie-legend-label{font-weight:600;}
.pie-legend-value{color:#666; margin-left:auto; white-space:nowrap;}

.bar-chart{display:flex; flex-direction:column; gap:8px;}
.bar-label-row{display:flex; justify-content:space-between; font-family:var(--sans); font-size:13px; color:var(--slate); margin-bottom:3px;}
.bar-label{font-weight:600;}
.bar-track{background:rgba(0,0,0,0.08); border-radius:3px; height:22px; overflow:hidden;}
.bar-fill{height:100%; border-radius:3px;}
