/* politics.nw — Main Stylesheet

   R3: No inline CSS. R14: CSS variables only. R13: Fonts from S3. R4: GlyphForge only. */



:root {

  --pol-font-serif: 'Libre Baskerville', Georgia, 'Times New Roman', serif;

  --pol-font-sans:  'Barlow', 'Helvetica Neue', sans-serif;

  --pol-font-cond:  'Barlow Condensed', 'Impact', sans-serif;

  --pol-font-mono:  'JetBrains Mono', 'Courier New', monospace;

  --pol-gold:        #b8860b;

  --pol-gold-bright: #d4a017;

  --pol-gold-light:  rgba(184,134,11,0.12);

  --pol-gold-border: rgba(184,134,11,0.3);

  --pol-red:   #c0392b;

  --pol-green: #1a6b3c;

  --pol-blue:  #1a3a6b;

  --pol-amber: #e67e22;

  --pol-transition: 0.25s cubic-bezier(0.4,0,0.2,1);

}

[data-theme="light"] {

  --pol-bg: #f5f0e8; --pol-bg2: #ede8dc; --pol-bg3: #e4ddd0;

  --pol-bg-card: #faf8f4; --pol-text: #1a1812; --pol-text2: #3d3828;

  --pol-text-muted: #6b6350; --pol-text-dim: #9b9080;

  --pol-border: rgba(26,24,18,0.1); --pol-border2: rgba(26,24,18,0.06);

  --pol-shadow: 0 1px 3px rgba(26,24,18,0.08),0 4px 16px rgba(26,24,18,0.04);

  --pol-shadow-hover: 0 4px 12px rgba(26,24,18,0.14),0 8px 32px rgba(26,24,18,0.06);

  --pol-topbar-bg: rgba(245,240,232,0.95);

  --pol-invert-bg: #1a1812; --pol-invert-text: #f5f0e8;

  --pol-ticker-bg: #1a1812; --pol-ticker-text: #e8e0cc;

  --pol-empty-bg: rgba(26,24,18,0.03);

  --pol-icon-filter: none;

}

[data-theme="dark"] {

  --pol-bg: #0f0e0b; --pol-bg2: #161410; --pol-bg3: #1e1c16;

  --pol-bg-card: #1a1814; --pol-text: #f0ebe0; --pol-text2: #c8c0a8;

  --pol-text-muted: #8a8070; --pol-text-dim: #5a5448;

  --pol-border: rgba(240,235,224,0.08); --pol-border2: rgba(240,235,224,0.04);

  --pol-shadow: 0 1px 3px rgba(0,0,0,0.3),0 4px 16px rgba(0,0,0,0.2);

  --pol-shadow-hover: 0 4px 12px rgba(0,0,0,0.4),0 8px 32px rgba(0,0,0,0.25);

  --pol-topbar-bg: rgba(15,14,11,0.95);

  --pol-invert-bg: #f5f0e8; --pol-invert-text: #1a1812;

  --pol-ticker-bg: #0a0908; --pol-ticker-text: #e8e0cc;

  --pol-empty-bg: rgba(240,235,224,0.03);

  --pol-icon-filter: invert(1) brightness(0.8);

}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}

html{scroll-behavior:smooth}

body{background:var(--pol-bg);color:var(--pol-text);font-family:var(--pol-font-sans);font-size:1rem;line-height:1.6;width:100vw;overflow-x:hidden;transition:background var(--pol-transition),color var(--pol-transition)}

a{color:var(--pol-gold);text-decoration:none}

a:hover{opacity:0.8}



/* ICON SIZES */

.pol-icon-xs{width:12px;height:12px;flex-shrink:0}

.pol-icon-sm{width:16px;height:16px;flex-shrink:0}

.pol-icon-md{width:20px;height:20px;flex-shrink:0}

.pol-icon-lg{width:28px;height:28px;flex-shrink:0}

.pol-empty-icon-img{width:36px;height:36px;opacity:0.3;margin-bottom:12px;filter:var(--pol-icon-filter)}

.pol-rc-icon-img{width:20px;height:20px;flex-shrink:0;filter:var(--pol-icon-filter)}

.pol-rc-chevron-img{width:14px;height:14px;flex-shrink:0;filter:var(--pol-icon-filter);transition:transform 0.25s}

.pol-rc-item.pol-rc-open .pol-rc-chevron-img{transform:rotate(180deg)}

.pol-body-icon-img{width:28px;height:28px;flex-shrink:0;filter:var(--pol-icon-filter)}

.pol-pledge-icon{filter:none}

.pol-pledge-check-img{width:14px;height:14px;flex-shrink:0;filter:none}



/* THEME TOGGLE ICONS */

[data-theme="light"] .pol-theme-dark-icon{display:none}

[data-theme="dark"]  .pol-theme-light-icon{display:none}

[data-theme="dark"]  .pol-theme-dark-icon{display:block;filter:invert(1) brightness(0.9)}



/* TOPBAR */

.pol-topbar{position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--pol-topbar-bg);backdrop-filter:blur(20px);border-bottom:1px solid var(--pol-border);display:flex;align-items:center;justify-content:space-between;padding:0 32px;height:58px;transition:background var(--pol-transition)}

.pol-topbar-left{display:flex;align-items:center;gap:20px}

.pol-logo{font-family:var(--pol-font-serif);font-size:1.25rem;font-weight:700;color:var(--pol-text);letter-spacing:-0.03em}

.pol-logo-dot{color:var(--pol-gold-bright)}

.pol-logo-nw{color:var(--pol-gold);font-style:italic}

.pol-logo-tag{font-family:var(--pol-font-mono);font-size:0.5625rem;color:var(--pol-text-dim);border:1px solid var(--pol-border);padding:2px 7px;border-radius:3px;letter-spacing:0.1em;text-transform:uppercase}

.pol-nav{display:flex;gap:2px}

.pol-nav-link{color:var(--pol-text-muted);font-size:0.8125rem;font-weight:500;padding:7px 13px;border-radius:6px;transition:all 0.15s}

.pol-nav-link:hover,.pol-nav-link.active{color:var(--pol-text);background:var(--pol-bg3);opacity:1}

.pol-topbar-right{display:flex;align-items:center;gap:12px}

.pol-search-pill{display:flex;align-items:center;gap:8px;background:var(--pol-bg2);border:1px solid var(--pol-border);border-radius:50px;padding:7px 16px;font-size:0.75rem;color:var(--pol-text-muted);cursor:pointer;min-width:200px;transition:border-color 0.15s}

.pol-search-pill:hover{border-color:var(--pol-gold-border)}

.pol-search-pill img{filter:var(--pol-icon-filter)}

.pol-search-pill kbd{margin-left:auto;font-family:var(--pol-font-mono);font-size:0.625rem;border:1px solid var(--pol-border);padding:1px 5px;border-radius:3px}

.pol-theme-toggle{width:36px;height:36px;border-radius:8px;background:var(--pol-bg2);border:1px solid var(--pol-border);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.15s}

.pol-theme-toggle:hover{background:var(--pol-bg3)}

.pol-user-badge{font-family:var(--pol-font-mono);font-size:0.6875rem;color:var(--pol-gold);border:1px solid var(--pol-gold-border);padding:4px 10px;border-radius:4px}

.pol-btn-primary{background:var(--pol-text);color:var(--pol-bg);font-size:0.75rem;font-weight:600;padding:8px 16px;border-radius:6px;border:none;cursor:pointer;font-family:var(--pol-font-sans);transition:opacity 0.15s}

.pol-btn-primary:hover{opacity:0.85}



/* TICKER */

.pol-ticker{margin-top:58px;background:var(--pol-ticker-bg);display:flex;align-items:center;height:38px;overflow:hidden}

.pol-ticker-label{background:var(--pol-gold);color:#0f0e0b;font-family:var(--pol-font-cond);font-size:0.6875rem;font-weight:800;letter-spacing:0.12em;text-transform:uppercase;padding:0 18px;height:100%;display:flex;align-items:center;gap:6px;flex-shrink:0}

.pol-ticker-label img{filter:none}

.pol-ticker-scroll{flex:1;overflow:hidden}

.pol-ticker-track{display:flex;white-space:nowrap;animation:polTickerScroll 50s linear infinite}

.pol-ticker-item{display:inline-flex;align-items:center;gap:8px;padding:0 28px;font-size:0.75rem;color:var(--pol-ticker-text);border-right:1px solid rgba(255,255,255,0.1)}

.pol-ticker-item strong{color:var(--pol-gold);font-weight:600}

@keyframes polTickerScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}



/* HERO */

.pol-hero{border-bottom:1px solid var(--pol-border);display:grid;grid-template-columns:1fr 1fr;min-height:520px}

.pol-hero-editorial{padding:60px 64px 60px 48px;border-right:1px solid var(--pol-border);display:flex;flex-direction:column;justify-content:center}

.pol-hero-kicker{font-family:var(--pol-font-cond);font-size:0.6875rem;font-weight:700;letter-spacing:0.18em;text-transform:uppercase;color:var(--pol-gold);margin-bottom:20px;display:flex;align-items:center;gap:10px}

.pol-hero-kicker::before{content:'';width:32px;height:2px;background:var(--pol-gold);display:inline-block}

.pol-hero-h1{font-family:var(--pol-font-serif);font-size:3.25rem;font-weight:700;line-height:1.05;letter-spacing:-0.03em;color:var(--pol-text);margin-bottom:24px}

.pol-hero-h1 em{font-style:italic;color:var(--pol-gold)}

.pol-strike{text-decoration:line-through;color:var(--pol-text-muted);font-style:normal;font-size:2.375rem}

.pol-hero-deck{font-family:var(--pol-font-serif);font-size:1.0rem;color:var(--pol-text2);line-height:1.75;margin-bottom:32px;font-style:italic;border-left:3px solid var(--pol-gold);padding-left:18px}

.pol-hero-stats{display:flex;gap:0;border:1px solid var(--pol-border);border-radius:10px;overflow:hidden}

.pol-hero-stat{flex:1;padding:16px 20px;text-align:center;border-right:1px solid var(--pol-border);background:var(--pol-bg-card)}

.pol-hero-stat:last-child{border-right:none}

.pol-stat-val{font-family:var(--pol-font-cond);font-size:2.0rem;font-weight:800;color:var(--pol-text);line-height:1}

.pol-stat-val.pol-gold{color:var(--pol-gold)}

.pol-stat-lbl{font-family:var(--pol-font-mono);font-size:0.5625rem;color:var(--pol-text-muted);text-transform:uppercase;letter-spacing:0.08em;margin-top:4px}

.pol-hero-stat-div{width:1px;background:var(--pol-border)}

.pol-hero-reality{padding:48px;background:var(--pol-bg2);display:flex;flex-direction:column;justify-content:center}

.pol-reality-title{font-family:var(--pol-font-cond);font-size:0.8125rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--pol-text-muted);margin-bottom:20px;display:flex;align-items:center;gap:10px}

.pol-reality-title::after{content:'';flex:1;height:1px;background:var(--pol-border)}

.pol-reality-stat{padding:18px 0;border-bottom:1px solid var(--pol-border);display:flex;align-items:flex-start;gap:18px;cursor:pointer;transition:all 0.15s}

.pol-reality-stat:hover .pol-reality-num{color:var(--pol-gold)}

.pol-reality-stat:last-child{border-bottom:none}

.pol-reality-num{font-family:var(--pol-font-cond);font-size:2.625rem;font-weight:800;line-height:1;min-width:90px;color:var(--pol-red);transition:color 0.2s;letter-spacing:-0.03em}

.pol-reality-label{font-size:0.875rem;font-weight:600;color:var(--pol-text);margin-bottom:3px}

.pol-reality-sub{font-size:0.75rem;color:var(--pol-text-muted);line-height:1.5}



/* MANIFESTO */

.pol-manifesto{background:var(--pol-invert-bg);color:var(--pol-invert-text);padding:48px 64px;border-bottom:1px solid var(--pol-border)}

.pol-manifesto-kicker{font-family:var(--pol-font-mono);font-size:0.625rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--pol-gold);margin-bottom:24px}

.pol-manifesto-cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:48px}

.pol-manifesto-col h3{font-family:var(--pol-font-serif);font-size:1.25rem;font-weight:700;margin-bottom:12px;color:var(--pol-gold);line-height:1.2}

.pol-manifesto-col p{font-size:0.8125rem;line-height:1.8;color:rgba(240,235,224,0.65)}

.pol-manifesto-quote{font-family:var(--pol-font-serif);font-style:italic;font-size:0.875rem;color:var(--pol-gold-bright);margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,0.1);line-height:1.6}

[data-theme="dark"] .pol-manifesto-col p{color:rgba(240,235,224,0.5)}



/* MAIN GRID */

.pol-main-grid{display:grid;grid-template-columns:1fr 360px}

.pol-content-main{border-right:1px solid var(--pol-border)}

.pol-section{padding:36px 40px;border-bottom:1px solid var(--pol-border)}

.pol-sidebar-section{padding:28px;border-bottom:1px solid var(--pol-border)}

.pol-section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}

.pol-section-title{font-family:var(--pol-font-serif);font-size:1.375rem;font-weight:700;letter-spacing:-0.02em;color:var(--pol-text)}

.pol-section-meta{font-size:0.75rem;color:var(--pol-text-muted);font-style:italic}

.pol-section-link{font-size:0.75rem;color:var(--pol-gold);font-weight:600}

.pol-section-sub{font-size:0.8125rem;color:var(--pol-text-muted);margin-bottom:22px;line-height:1.6;font-style:italic;font-family:var(--pol-font-serif)}



/* COUNTRY CODE BADGE */

.pol-lc-country-code{font-family:var(--pol-font-mono);font-size:0.6875rem;font-weight:700;letter-spacing:0.1em;color:var(--pol-gold);background:var(--pol-gold-light);border:1px solid var(--pol-gold-border);padding:2px 7px;border-radius:3px;display:inline-block;margin-bottom:8px}

.pol-country-code-sm{font-family:var(--pol-font-mono);font-size:0.625rem;font-weight:700;color:var(--pol-text-dim);background:var(--pol-bg3);padding:1px 5px;border-radius:3px}



/* US ROW */

.pol-us-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}



/* LEADER CARDS */

.pol-leaders-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}

.pol-leader-card{background:var(--pol-bg-card);border:1px solid var(--pol-border);border-radius:10px;padding:16px;cursor:pointer;transition:all 0.2s;position:relative;overflow:hidden}

.pol-leader-card::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--pol-gold);opacity:0;transition:opacity 0.2s}

.pol-leader-card:hover{box-shadow:var(--pol-shadow-hover);transform:translateY(-2px);border-color:var(--pol-gold-border)}

.pol-leader-card:hover::after{opacity:1}

.pol-lc-country{font-family:var(--pol-font-mono);font-size:0.5625rem;color:var(--pol-text-dim);letter-spacing:0.1em;text-transform:uppercase;margin-bottom:4px}

.pol-lc-name{font-size:0.8125rem;font-weight:700;color:var(--pol-text);margin-bottom:2px;line-height:1.3}

.pol-lc-title{font-size:0.6875rem;color:var(--pol-text-muted);margin-bottom:8px}

.pol-lc-party{display:inline-flex;align-items:center;gap:5px;font-size:0.625rem;color:var(--pol-text-muted);background:var(--pol-bg2);padding:3px 9px;border-radius:20px;margin-bottom:4px}

.pol-party-dot{width:6px;height:6px;border-radius:50%;background:var(--party-color,#7a8099);flex-shrink:0}

.pol-lc-since{font-family:var(--pol-font-mono);font-size:0.5625rem;color:var(--pol-text-dim)}

.pol-disputed-badge{margin-top:6px;font-size:0.5625rem;font-weight:700;color:var(--pol-red);letter-spacing:0.06em;text-transform:uppercase}



/* TABS */

.pol-tabs{display:flex;gap:4px;margin-bottom:24px;border-bottom:2px solid var(--pol-border);padding-bottom:0}

.pol-tab-btn{font-size:0.75rem;font-weight:600;padding:9px 16px;cursor:pointer;color:var(--pol-text-muted);border:none;background:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all 0.15s;font-family:var(--pol-font-sans)}

.pol-tab-btn:hover{color:var(--pol-text)}

.pol-tab-btn.active{color:var(--pol-gold);border-bottom-color:var(--pol-gold)}

.pol-tab-panel{display:none}

.pol-tab-panel.active{display:block}



/* EMPTY STATE */

.pol-empty-state{background:var(--pol-empty-bg);border:1px dashed var(--pol-border);border-radius:10px;padding:40px;text-align:center}

.pol-empty-msg{font-size:0.875rem;font-weight:600;color:var(--pol-text-muted);margin-bottom:6px}

.pol-empty-sub{font-size:0.75rem;color:var(--pol-text-dim)}



/* ELECTIONS */

.pol-elections-list{display:flex;flex-direction:column;gap:10px}

.pol-election-item{background:var(--pol-bg-card);border:1px solid var(--pol-border);border-radius:10px;padding:16px;display:flex;align-items:center;gap:16px;cursor:pointer;transition:all 0.15s}

.pol-election-item:hover{box-shadow:var(--pol-shadow-hover);border-color:var(--pol-gold-border)}

.pol-election-countdown{background:var(--pol-bg2);border-radius:8px;padding:10px 14px;text-align:center;min-width:68px;flex-shrink:0}

.pol-ec-days{font-family:var(--pol-font-cond);font-size:1.75rem;font-weight:800;line-height:1;color:var(--pol-gold)}

.pol-ec-unit{font-family:var(--pol-font-mono);font-size:0.5625rem;color:var(--pol-text-dim);letter-spacing:0.1em;text-transform:uppercase}

.pol-election-info{flex:1}

.pol-ei-country{display:flex;align-items:center;gap:7px;font-size:0.875rem;font-weight:700;color:var(--pol-text);margin-bottom:3px}

.pol-ei-type{font-size:0.75rem;color:var(--pol-text-muted)}

.pol-ei-date{font-family:var(--pol-font-mono);font-size:0.625rem;color:var(--pol-text-dim);margin-top:4px}

.pol-badge{font-family:var(--pol-font-cond);font-size:0.6875rem;font-weight:700;padding:4px 12px;border-radius:4px;letter-spacing:0.06em;text-transform:uppercase;flex-shrink:0}

.badge-general{background:rgba(26,58,107,0.12);color:var(--pol-blue)}

.badge-primary{background:rgba(230,126,34,0.12);color:var(--pol-amber)}

.badge-local{background:rgba(26,107,60,0.12);color:var(--pol-green)}

.badge-referendum{background:var(--pol-gold-light);color:var(--pol-gold)}

.badge-eu{background:rgba(26,58,138,0.12);color:#1a3a8a}

[data-theme="dark"] .badge-general{background:rgba(91,156,246,0.15);color:#7ab3f8}

[data-theme="dark"] .badge-local{background:rgba(82,201,122,0.15);color:#52c97a}

[data-theme="dark"] .badge-eu{background:rgba(91,196,245,0.15);color:#5bc4f5}



/* LEGISLATION */

.pol-leg-list{display:flex;flex-direction:column;gap:8px}

.pol-leg-item{background:var(--pol-bg-card);border:1px solid var(--pol-border);border-radius:8px;padding:14px 16px;display:flex;align-items:flex-start;gap:12px;cursor:pointer;transition:all 0.15s}

.pol-leg-item:hover{border-color:var(--pol-gold-border)}

.pol-leg-badge{font-family:var(--pol-font-cond);font-size:0.625rem;font-weight:700;padding:3px 8px;border-radius:4px;letter-spacing:0.08em;flex-shrink:0;margin-top:1px;white-space:nowrap;background:var(--pol-bg2);border:1px solid var(--pol-border);color:var(--pol-text-muted)}

.pol-leg-content{flex:1}

.pol-leg-title{font-size:0.8125rem;font-weight:600;color:var(--pol-text);line-height:1.4;margin-bottom:5px}

.pol-leg-meta{display:flex;align-items:center;gap:10px;font-family:var(--pol-font-mono);font-size:0.625rem;color:var(--pol-text-dim);flex-wrap:wrap}

.pol-leg-status{display:flex;align-items:center;gap:4px}

.pol-sdot{width:5px;height:5px;border-radius:50%;flex-shrink:0}

.status-active{background:var(--pol-green);box-shadow:0 0 5px rgba(26,107,60,0.5)}

.status-vote{background:var(--pol-gold);box-shadow:0 0 5px var(--pol-gold-border)}

.status-passed{background:var(--pol-blue)}

.status-failed{background:var(--pol-red)}

[data-theme="dark"] .status-active{background:#52c97a;box-shadow:0 0 5px rgba(82,201,122,0.5)}

.pol-donor-flag{color:var(--pol-red);font-weight:600}



/* REALITY CHECK */

.pol-rc-list{display:flex;flex-direction:column;gap:10px}

.pol-rc-item{border:1px solid var(--pol-border);border-radius:10px;overflow:hidden;background:var(--pol-bg-card);transition:border-color 0.15s}

.pol-rc-item:hover,.pol-rc-item.pol-rc-open{border-color:var(--pol-gold-border)}

.pol-rc-header{display:flex;align-items:center;gap:16px;padding:16px 20px;cursor:pointer;transition:background 0.15s}

.pol-rc-header:hover{background:var(--pol-bg2)}

.pol-rc-question{flex:1;font-size:0.875rem;font-weight:600;color:var(--pol-text);line-height:1.3}

.pol-rc-tag{font-family:var(--pol-font-mono);font-size:0.5625rem;font-weight:500;padding:3px 8px;border-radius:20px;letter-spacing:0.08em;text-transform:uppercase;flex-shrink:0}

.pol-tag-sys{background:rgba(192,57,43,0.12);color:var(--pol-red)}

.pol-tag-data{background:var(--pol-gold-light);color:var(--pol-gold)}

.pol-tag-nw{background:rgba(26,107,60,0.1);color:var(--pol-green)}

[data-theme="dark"] .pol-tag-sys{background:rgba(224,82,82,0.15);color:#e07a7a}

[data-theme="dark"] .pol-tag-nw{background:rgba(82,201,122,0.1);color:#52c97a}

.pol-rc-body{max-height:0;overflow:hidden;transition:max-height 0.4s cubic-bezier(0.4,0,0.2,1)}

.pol-rc-item.pol-rc-open .pol-rc-body{max-height:600px}

.pol-rc-inner{padding:16px 20px 20px;border-top:1px solid var(--pol-border)}

.pol-rc-inner p{font-size:0.8125rem;color:var(--pol-text-muted);line-height:1.8;margin-bottom:12px}

.pol-rc-inner p:last-child{margin-bottom:0}

.pol-rc-inner strong{color:var(--pol-text);font-weight:600}

.pol-rc-data{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}

.pol-rc-data-item{background:var(--pol-bg2);border-radius:8px;padding:12px;text-align:center}

.pol-dv{font-family:var(--pol-font-cond);font-size:1.5rem;font-weight:800;color:var(--pol-red);line-height:1}

[data-theme="dark"] .pol-dv{color:#e07a7a}

.pol-dl{font-size:0.625rem;color:var(--pol-text-muted);margin-top:4px;font-family:var(--pol-font-mono);letter-spacing:0.06em}

.pol-rc-nw-callout{background:rgba(26,107,60,0.08);border:1px solid rgba(26,107,60,0.2);border-radius:8px;padding:12px 14px;margin-top:12px;font-size:0.75rem;color:var(--pol-green);line-height:1.6}

[data-theme="dark"] .pol-rc-nw-callout{background:rgba(82,201,122,0.06);border-color:rgba(82,201,122,0.2);color:#52c97a}

.pol-rc-nw-callout strong{color:var(--pol-green)}

[data-theme="dark"] .pol-rc-nw-callout strong{color:#52c97a}



/* SIDEBAR */

.pol-sb-title{font-family:var(--pol-font-serif);font-size:1.125rem;font-weight:700;letter-spacing:-0.02em;margin-bottom:14px;color:var(--pol-text)}

.pol-represent-box{background:var(--pol-bg-card);border:1px solid var(--pol-border);border-radius:10px;padding:18px}

.pol-represent-box h4{font-family:var(--pol-font-serif);font-size:1.0rem;font-weight:700;margin-bottom:4px;color:var(--pol-text)}

.pol-rb-sub{font-size:0.75rem;color:var(--pol-text-muted);margin-bottom:12px;line-height:1.5}

.pol-represent-row{display:flex;gap:8px;align-items:center}

.pol-represent-input{flex:1;background:var(--pol-bg2);border:1px solid var(--pol-border);border-radius:7px;padding:9px 12px;font-family:var(--pol-font-sans);font-size:0.8125rem;color:var(--pol-text);outline:none;transition:border-color 0.15s}

.pol-represent-input:focus{border-color:var(--pol-gold)}

.pol-represent-input::placeholder{color:var(--pol-text-dim)}

.pol-btn-go{background:var(--pol-gold);color:#fff;border:none;padding:9px 16px;border-radius:7px;font-size:0.75rem;font-weight:700;cursor:pointer;font-family:var(--pol-font-sans);white-space:nowrap;transition:opacity 0.15s}

.pol-btn-go:hover{opacity:0.85}

.pol-represent-result{margin-top:14px}

.pol-rr-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--pol-bg2);border-radius:7px;margin-bottom:6px;font-size:0.75rem}

.pol-rr-name{font-weight:700;color:var(--pol-text)}

.pol-rr-role{color:var(--pol-text-muted);font-size:0.6875rem}

.pol-power-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}

.pol-power-stat{background:var(--pol-bg-card);border:1px solid var(--pol-border);border-radius:8px;padding:14px;text-align:center}

.pol-ps-val{font-family:var(--pol-font-cond);font-size:1.625rem;font-weight:800;color:var(--pol-text);line-height:1}

.pol-ps-val.pol-ps-gold{color:var(--pol-gold)}

.pol-ps-val.pol-ps-red{color:var(--pol-red)}

.pol-ps-lbl{font-family:var(--pol-font-mono);font-size:0.5625rem;color:var(--pol-text-muted);margin-top:4px;text-transform:uppercase;letter-spacing:0.08em}

.pol-bodies-list{display:flex;flex-direction:column;gap:8px}

.pol-body-item{background:var(--pol-bg-card);border:1px solid var(--pol-border);border-radius:8px;padding:12px 14px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:all 0.15s}

.pol-body-item:hover{border-color:var(--pol-gold-border)}

.pol-body-name{font-size:0.8125rem;font-weight:700;color:var(--pol-text);margin-bottom:1px}

.pol-body-members{font-family:var(--pol-font-mono);font-size:0.625rem;color:var(--pol-text-muted)}

.pol-body-pulse{display:flex;align-items:center;gap:4px;font-size:0.625rem;color:var(--pol-text-dim);margin-top:2px}

.pol-sdot-live{width:6px;height:6px;border-radius:50%;background:var(--pol-green);animation:polBlink 2s infinite;display:inline-block}

[data-theme="dark"] .pol-sdot-live{background:#52c97a}

@keyframes polBlink{0%,100%{opacity:1}50%{opacity:0.3}}

.pol-pledge-box{background:var(--pol-invert-bg);color:var(--pol-invert-text);border-radius:10px;padding:20px}

.pol-pledge-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}

.pol-pledge-box h4{font-family:var(--pol-font-serif);font-size:1.0rem;font-weight:700;color:var(--pol-gold)}

.pol-pledge-box p{font-size:0.75rem;line-height:1.8;color:rgba(240,235,224,0.65)}

.pol-pledge-items{margin-top:12px;display:flex;flex-direction:column;gap:6px}

.pol-pledge-item{display:flex;align-items:center;gap:8px;font-size:0.75rem;color:rgba(240,235,224,0.8)}



/* FOOTER */

.pol-footer{background:var(--pol-bg2);border-top:1px solid var(--pol-border);padding:24px 48px;display:flex;align-items:center;justify-content:space-between}

.pol-footer-left{display:flex;align-items:center;gap:20px;font-family:var(--pol-font-mono);font-size:0.625rem;color:var(--pol-text-dim)}

.pol-footer-live{display:flex;align-items:center;gap:6px;color:var(--pol-green)}

[data-theme="dark"] .pol-footer-live{color:#52c97a}

.pol-footer-quote{font-family:var(--pol-font-serif);font-style:italic;font-size:0.75rem;color:var(--pol-text-muted);max-width:440px;text-align:right;line-height:1.5}



/* SCROLLBAR */

::-webkit-scrollbar{width:6px}

::-webkit-scrollbar-track{background:var(--pol-bg)}

::-webkit-scrollbar-thumb{background:var(--pol-bg3);border-radius:3px}



.pol-leader-flag{width:40px;height:26px;object-fit:cover;border-radius:3px;margin-bottom:8px;display:block;border:1px solid var(--pol-border2);flex-shrink:0}

.pol-election-flag{width:22px;height:15px;object-fit:cover;border-radius:2px;flex-shrink:0;border:1px solid var(--pol-border2)}



/* MULTI-REALM CARDS */

.pol-multi-realm{border-color:var(--pol-gold-border);cursor:pointer}

.pol-multi-realm::after{opacity:0.4}

.pol-multi-badge{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-family:var(--pol-font-mono);font-size:0.5625rem;font-weight:700;color:var(--pol-gold);background:var(--pol-gold-light);border:1px solid var(--pol-gold-border);padding:3px 8px;border-radius:20px;letter-spacing:0.06em;text-transform:uppercase}

.pol-multi-badge img{filter:none;width:10px;height:10px}

.pol-multi-expand{display:none;margin-top:12px;padding-top:12px;border-top:1px solid var(--pol-border)}

.pol-multi-realm.pol-expanded .pol-multi-expand{display:block}

.pol-multi-note{font-size:0.6875rem;color:var(--pol-text-muted);line-height:1.6;margin-bottom:10px;font-style:italic;font-family:var(--pol-font-serif)}

.pol-multi-realms{display:flex;flex-direction:column;gap:5px}

.pol-realm-item{display:flex;align-items:center;gap:7px;font-size:0.6875rem;color:var(--pol-text2);font-weight:500}

.pol-realm-flag{width:22px;height:15px;object-fit:cover;border-radius:2px;flex-shrink:0;border:1px solid var(--pol-border2)}



/* NEURACAL BUTTON */

.pol-cal-btn{background:none;border:1px solid var(--pol-border);border-radius:6px;padding:5px 7px;cursor:pointer;display:flex;align-items:center;flex-shrink:0;transition:all 0.15s}

.pol-cal-btn:hover{border-color:var(--pol-gold-border);background:var(--pol-gold-light)}

.pol-cal-btn img{filter:var(--pol-icon-filter)}



/* ══════════════════════════════════════

   GLOBAL ELECTION CALENDAR

══════════════════════════════════════ */

.pol-cal-page{padding:0;animation:polFadeIn 0.2s ease}

@keyframes polFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}



/* HEADER */

.pol-cal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:36px 40px 24px;border-bottom:1px solid var(--pol-border)}

.pol-cal-header-left{}

.pol-back-link{display:inline-flex;align-items:center;gap:6px;font-size:0.75rem;color:var(--pol-gold);font-weight:600;margin-bottom:10px;text-decoration:none}

.pol-back-link img{filter:none}

.pol-cal-title{font-family:var(--pol-font-serif);font-size:1.625rem;font-weight:700;letter-spacing:-0.02em;color:var(--pol-text);margin-bottom:4px}

.pol-cal-sub{font-size:0.8125rem;color:var(--pol-text-muted);font-style:italic;font-family:var(--pol-font-serif)}

.pol-cal-stats{display:flex;align-items:center;gap:0;border:1px solid var(--pol-border);border-radius:8px;overflow:hidden}

.pol-cal-stat-item{padding:12px 20px;text-align:center;background:var(--pol-bg-card)}

.pol-cal-stat-val{font-family:var(--pol-font-cond);font-size:1.75rem;font-weight:800;color:var(--pol-gold);line-height:1}

.pol-cal-stat-lbl{font-family:var(--pol-font-mono);font-size:0.5625rem;color:var(--pol-text-muted);text-transform:uppercase;letter-spacing:0.08em;margin-top:3px}

.pol-cal-stat-div{width:1px;background:var(--pol-border);align-self:stretch}



/* LAYOUT */

.pol-cal-layout{display:grid;grid-template-columns:1fr 280px;gap:0;min-height:600px}

.pol-cal-main{padding:28px 32px;border-right:1px solid var(--pol-border)}

.pol-cal-sidebar{padding:28px}



/* MONTH NAV */

.pol-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}

.pol-cal-nav-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:7px;border:1px solid var(--pol-border);background:var(--pol-bg-card);cursor:pointer;text-decoration:none;transition:all 0.15s}

.pol-cal-nav-btn:hover{border-color:var(--pol-gold-border);background:var(--pol-gold-light)}

.pol-cal-nav-btn img{filter:var(--pol-icon-filter)}

.pol-cal-month-label{font-family:var(--pol-font-serif);font-size:1.25rem;font-weight:700;letter-spacing:-0.02em;color:var(--pol-text)}



/* DOW ROW */

.pol-cal-dow-row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}

.pol-cal-dow{text-align:center;font-family:var(--pol-font-mono);font-size:0.625rem;font-weight:600;color:var(--pol-text-dim);text-transform:uppercase;letter-spacing:0.08em;padding:4px 0}



/* GRID */

.pol-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}

.pol-cal-cell{min-height:80px;background:var(--pol-bg-card);border:1px solid var(--pol-border);border-radius:6px;padding:6px;position:relative;transition:border-color 0.15s}

.pol-cal-cell:not(.pol-cal-empty):hover{border-color:var(--pol-gold-border);cursor:pointer}

.pol-cal-empty{background:transparent;border-color:transparent}

.pol-cal-today{border-color:var(--pol-gold)!important;background:var(--pol-gold-light)}

.pol-cal-past{opacity:0.6}

.pol-cal-has-events{border-color:var(--pol-border)}

.pol-cal-has-events:hover{border-color:var(--pol-gold-border)!important}

.pol-cal-day-num{font-family:var(--pol-font-mono);font-size:0.6875rem;font-weight:600;color:var(--pol-text-muted);margin-bottom:4px}

.pol-cal-today .pol-cal-day-num{color:var(--pol-gold);font-weight:800}



/* EVENTS IN CELL */

.pol-cal-events{display:flex;flex-direction:column;gap:2px}

.pol-cal-event{display:flex;align-items:center;gap:3px;border-radius:3px;padding:2px 4px;font-size:0.5625rem;font-weight:600;letter-spacing:0.02em;cursor:pointer;transition:opacity 0.15s}

.pol-cal-event:hover{opacity:0.8}

.pol-cal-event-flag{width:14px;height:10px;object-fit:cover;border-radius:1px;flex-shrink:0}

.pol-cal-event-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:72px}

.cal-badge-g{background:rgba(26,58,107,0.15);color:var(--pol-blue)}

.cal-badge-p{background:rgba(192,57,43,0.15);color:var(--pol-red)}

.cal-badge-r{background:var(--pol-gold-light);color:var(--pol-gold)}

.cal-badge-l{background:rgba(26,107,60,0.12);color:var(--pol-green)}

[data-theme="dark"] .cal-badge-g{background:rgba(91,156,246,0.15);color:#7ab3f8}

[data-theme="dark"] .cal-badge-p{background:rgba(224,82,82,0.15);color:#e07a7a}



/* DETAIL PANEL */

.pol-cal-detail-panel{margin-top:16px;border:1px solid var(--pol-gold-border);border-radius:10px;overflow:hidden;background:var(--pol-bg-card)}

.pol-cal-detail-inner{padding:16px}

.pol-cal-detail-inner .pol-cal-detail-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}

.pol-cal-detail-inner .pol-cal-detail-row:last-child{margin-bottom:0}

.pol-cal-detail-country{font-size:0.875rem;font-weight:700;color:var(--pol-text)}

.pol-cal-detail-desc{font-size:0.75rem;color:var(--pol-text-muted)}

.pol-cal-detail-date{font-family:var(--pol-font-mono);font-size:0.625rem;color:var(--pol-text-dim)}



/* SIDEBAR */

.pol-cal-sb-title{display:flex;align-items:center;gap:7px;font-family:var(--pol-font-serif);font-size:1.0rem;font-weight:700;margin-bottom:14px;color:var(--pol-text)}

.pol-cal-sb-title img{filter:var(--pol-icon-filter)}

.pol-cal-upcoming-item{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--pol-border);cursor:pointer;transition:all 0.15s}

.pol-cal-upcoming-item:hover .pol-cal-up-country{color:var(--pol-gold)}

.pol-cal-upcoming-item:last-of-type{border-bottom:none}

.pol-cal-up-countdown{background:var(--pol-bg2);border-radius:6px;padding:6px 8px;text-align:center;min-width:48px;flex-shrink:0}

.pol-cal-up-days{font-family:var(--pol-font-cond);font-size:1.25rem;font-weight:800;line-height:1;color:var(--pol-gold)}

.pol-cal-up-unit{font-family:var(--pol-font-mono);font-size:0.5rem;color:var(--pol-text-dim);letter-spacing:0.08em;text-transform:uppercase}

.pol-cal-up-country{display:flex;align-items:center;gap:5px;font-size:0.75rem;font-weight:700;color:var(--pol-text);margin-bottom:2px;transition:color 0.15s}

.pol-cal-up-desc{font-size:0.625rem;color:var(--pol-text-muted);line-height:1.4}

.pol-cal-up-date{font-family:var(--pol-font-mono);font-size:0.5625rem;color:var(--pol-text-dim);margin-top:3px}



/* YEAR JUMP */

.pol-cal-year-jump{display:flex;flex-wrap:wrap;gap:6px;align-items:center}

.pol-cal-year-btn{font-family:var(--pol-font-mono);font-size:0.6875rem;font-weight:600;padding:5px 12px;border-radius:5px;border:1px solid var(--pol-border);background:var(--pol-bg-card);color:var(--pol-text-muted);text-decoration:none;transition:all 0.15s}

.pol-cal-year-btn:hover,.pol-cal-year-btn.active{color:var(--pol-gold);border-color:var(--pol-gold-border);background:var(--pol-gold-light);opacity:1}



/* ROUTER LOADING STATE */

.pol-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:60px;font-size:0.8125rem;color:var(--pol-text-muted)}

.pol-loading img{filter:var(--pol-icon-filter)}

@keyframes polSpin{to{transform:rotate(360deg)}}

.pol-spin{animation:polSpin 0.8s linear infinite}

.pol-cal-cell.pol-cal-selected{border-color:var(--pol-gold)!important;background:var(--pol-gold-light)}



/* SHARE BUTTONS */

.pol-section-header-right{display:flex;align-items:center;gap:12px}

.pol-share-bar{display:flex;align-items:center;gap:4px}

.pol-share-label{font-family:var(--pol-font-mono);font-size:0.5625rem;color:var(--pol-text-dim);text-transform:uppercase;letter-spacing:0.1em;margin-right:2px}

.pol-share-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid var(--pol-border);background:var(--pol-bg-card);cursor:pointer;transition:all 0.15s;text-decoration:none;flex-shrink:0}

.pol-share-btn:hover{transform:translateY(-1px);box-shadow:var(--pol-shadow)}

.pol-share-x:hover{border-color:#000;background:#000}

.pol-share-x:hover .pol-share-icon{filter:invert(1)}

.pol-share-fb:hover{border-color:#1877f2;background:#1877f2}

.pol-share-fb:hover .pol-share-icon{filter:invert(1)}

.pol-share-li:hover{border-color:#0a66c2;background:#0a66c2}

.pol-share-li:hover .pol-share-icon{filter:invert(1)}

.pol-share-wa:hover{border-color:#25d366;background:#25d366}

.pol-share-wa:hover .pol-share-icon{filter:invert(1)}

.pol-share-copy:hover{border-color:var(--pol-gold-border);background:var(--pol-gold-light)}

.pol-share-icon{width:13px;height:13px;object-fit:contain;display:block;opacity:0.7;transition:opacity 0.15s}

.pol-share-btn:hover .pol-share-icon{opacity:1}

.pol-share-copy.pol-copied{border-color:var(--pol-green)!important;background:rgba(26,107,60,0.1)!important}

[data-theme="dark"] .pol-share-x:hover{border-color:#fff;background:#000}

[data-theme="dark"] .pol-share-icon{filter:invert(0.3)}



.pol-share-nexus:hover{border-color:var(--pol-gold-border);background:var(--pol-gold-light)}

.pol-share-nexus:hover .pol-share-icon{filter:none;opacity:1}



.pol-share-spark:hover{border-color:var(--pol-gold-border);background:var(--pol-gold)}

.pol-share-spark:hover .pol-share-icon{filter:invert(1);opacity:1}

.pol-spark-toast-err{background:var(--pol-red)!important}


/* ── Who Represents You — result renderer ───────────────────────────── */

.pol-rr-msg          { color: var(--pol-text-dim); font-size: 12px; padding: 8px 0; }

.pol-rr-location     { font-size: 13px; color: var(--pol-text); padding: 6px 0 4px; font-weight: 500; }

.pol-rr-note         { font-size: 0.6875rem; color: var(--pol-text-dim); padding: 0 0 6px; line-height: 1.4; }

.pol-rr-group        { margin-bottom: 6px; }

.pol-rr-group-label  { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--pol-text-dim); padding: 6px 0 3px; border-top: 1px solid var(--pol-border); }

.pol-rr-item         { display: flex; align-items: center; justify-content: space-between; padding: 5px 0; border-bottom: 1px solid var(--pol-border); gap: 8px; }

.pol-rr-item:last-child { border-bottom: none; }

.pol-rr-item-main    { flex: 1; min-width: 0; }

.pol-rr-name         { font-size: 13px; font-weight: 500; color: var(--pol-text); }

.pol-rr-name-link    { font-size: 13px; font-weight: 500; color: var(--pol-gold); text-decoration: none; }

.pol-rr-name-link:hover { text-decoration: underline; }

.pol-rr-role         { font-size: 0.6875rem; color: var(--pol-text-dim); margin-top: 1px; }

.pol-rr-party        { flex-shrink: 0; font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 3px; }

.pol-rr-party-r      { background: #fee2e2; color: #991b1b; }

.pol-rr-party-d      { background: #dbeafe; color: #1e3a8a; }

.pol-rr-party-i      { background: #f3f4f6; color: #374151; }

.pol-rr-party-text   { font-size: 0.6875rem; color: var(--pol-text-dim); flex-shrink: 0; }

[data-theme="dark"] .pol-rr-party-r { background: #450a0a; color: #fca5a5; }

[data-theme="dark"] .pol-rr-party-d { background: #1e3a5f; color: #93c5fd; }

[data-theme="dark"] .pol-rr-party-i { background: #1f2937; color: #d1d5db; }




/* ── Member Profile ─────────────────────────────────────────────────── */

.pol-member-panel        { padding: 0 0 24px; }

.pol-member-nav          { padding: 12px 0 8px; }

.pol-back-btn            { background: none; border: 1px solid var(--pol-border); border-radius: 6px;

                           padding: 5px 12px; font-size: 12px; color: var(--pol-text2); cursor: pointer;

                           display: inline-flex; align-items: center; gap: 5px; }

.pol-back-btn:hover      { background: var(--pol-bg2); color: var(--pol-text); }



.pol-member-hero         { display: flex; gap: 16px; align-items: flex-start; padding: 8px 0 20px;

                           border-bottom: 2px solid var(--pol-border); margin-bottom: 4px; }

.pol-member-portrait-wrap { flex-shrink: 0; }

.pol-member-portrait     { width: 120px; height: 150px; border-radius: 6px; object-fit: cover; object-position: top center; border: 1px solid var(--pol-border); display: block; }

                           border: 2px solid var(--pol-border); }

.pol-member-portrait-placeholder { width: 120px; height: 150px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 32px; font-weight: 600; color: #fff; }

                           display: flex; align-items: center; justify-content: center;

                           font-size: 22px; font-weight: 600; color: #fff; }

.pol-member-portrait-placeholder.pol-party-r { background: #b91c1c; }

.pol-member-portrait-placeholder.pol-party-d { background: #1d4ed8; }

.pol-member-portrait-placeholder.pol-party-i { background: var(--pol-text-muted); }



.pol-member-identity     { flex: 1; min-width: 0; }

.pol-member-name         { font-size: 18px; font-weight: 600; color: var(--pol-text);

                           margin: 0 0 6px; line-height: 1.3; }

.pol-member-badges       { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 6px; }

.pol-member-party-badge  { font-size: 0.6875rem; font-weight: 600; padding: 2px 8px;

                           border-radius: 3px; }

.pol-member-party-badge.pol-party-r { background: #fee2e2; color: #991b1b; }

.pol-member-party-badge.pol-party-d { background: #dbeafe; color: #1e3a8a; }

.pol-member-party-badge.pol-party-i { background: var(--pol-bg2); color: var(--pol-text2); }

.pol-member-chamber-badge { font-size: 0.6875rem; padding: 2px 8px; border-radius: 3px;

                            background: var(--pol-bg2); color: var(--pol-text2); }

.pol-member-role-badge   { font-size: 0.6875rem; padding: 2px 8px; border-radius: 3px;

                           background: var(--pol-gold-light); color: var(--pol-gold); }

.pol-member-historical-badge { font-size: 0.6875rem; padding: 2px 8px; border-radius: 3px;

                               background: var(--pol-bg2); color: var(--pol-text-muted); }

.pol-member-state        { font-size: 13px; color: var(--pol-text2); margin-bottom: 2px; }

.pol-member-since        { font-size: 12px; color: var(--pol-text-muted); margin-bottom: 4px; }

.pol-member-website-link { font-size: 12px; color: var(--pol-gold); text-decoration: none; }

.pol-member-website-link:hover { text-decoration: underline; }



.pol-member-section      { padding: 14px 0; border-bottom: 1px solid var(--pol-border); }

.pol-member-section:last-child { border-bottom: none; }

.pol-member-section-label { font-size: 10px; font-weight: 600; text-transform: uppercase;

                            letter-spacing: .07em; color: var(--pol-text-muted); margin-bottom: 8px; }

.pol-member-pending      { font-size: 12px; color: var(--pol-text-dim); font-style: italic; }

.pol-member-error        { padding: 20px; color: var(--pol-text-dim); font-size: 13px; }



.pol-member-table        { width: 100%; border-collapse: collapse; font-size: 12px; }

.pol-member-table th     { text-align: left; font-weight: 600; color: var(--pol-text-muted);

                           padding: 4px 8px 4px 0; border-bottom: 1px solid var(--pol-border); font-size: 0.6875rem; }

.pol-member-table td     { padding: 5px 8px 5px 0; color: var(--pol-text2);

                           border-bottom: 1px solid var(--pol-border); }

.pol-member-table tr:last-child td { border-bottom: none; }

.pol-tr-current td       { color: var(--pol-text); font-weight: 500; }



.pol-member-list         { list-style: none; padding: 0; margin: 0; }

.pol-member-list-item    { padding: 6px 0; border-bottom: 1px solid var(--pol-border); }

.pol-member-list-item:last-child { border-bottom: none; }

.pol-member-list-main    { display: flex; align-items: center; gap: 6px; }

.pol-member-list-name    { font-size: 12px; color: var(--pol-text); }

.pol-member-list-sub     { font-size: 0.6875rem; color: var(--pol-text-muted); margin-top: 2px; padding-left: 10px; }

.pol-member-role-chip    { font-size: 10px; padding: 1px 6px; border-radius: 3px;

                           background: var(--pol-gold-light); color: var(--pol-gold); }



.pol-finance-row         { padding: 8px 0; border-bottom: 1px solid var(--pol-border); }

.pol-finance-row:last-child { border-bottom: none; }

.pol-finance-cycle-label { font-size: 12px; font-weight: 600; color: var(--pol-text); margin-bottom: 6px; }

.pol-finance-stats       { display: flex; gap: 16px; flex-wrap: wrap; }

.pol-finance-stat        { min-width: 80px; }

.pol-finance-stat-label  { font-size: 10px; color: var(--pol-text-muted); text-transform: uppercase; letter-spacing: .05em; }

.pol-finance-stat-val    { font-size: 14px; font-weight: 600; color: var(--pol-text); }



.pol-member-rep-section  { background: var(--pol-bg2); border-radius: 8px;

                           padding: 14px !important; margin-top: 8px; border: none !important; }

.pol-represent-box--compact .pol-represent-row { margin-top: 8px; }



[data-theme="dark"] .pol-member-party-badge.pol-party-r { background: #450a0a; color: #fca5a5; }

[data-theme="dark"] .pol-member-party-badge.pol-party-d { background: #1e3a5f; color: #93c5fd; }




/* ── Member profile grid & layout fixes ─────────────────────────────── */

.pol-member-wrap         { padding: 0; }

.pol-member-nav          { padding: 16px 28px 0; }

.pol-member-grid         { display: grid; grid-template-columns: 1fr 320px; align-items: start; }

.pol-member-main         { padding: 16px 28px 40px; border-right: 1px solid var(--pol-border); }

.pol-member-sidebar      { padding: 0; }

.pol-member-sidebar .pol-sidebar-section { padding: 20px 24px; border-bottom: 1px solid var(--pol-border); }

.pol-sidebar-title       { font-size: 0.6875rem; font-weight: 700; text-transform: uppercase;

                           letter-spacing: .07em; color: var(--pol-text); margin-bottom: 6px; }

.pol-sidebar-desc        { font-size: 12px; color: var(--pol-text-dim); margin: 0 0 10px; line-height: 1.5; }

.pol-member-facts        { display: flex; flex-direction: column; gap: 8px; }

.pol-member-fact         { display: flex; justify-content: space-between; align-items: baseline;

                           font-size: 13px; padding: 4px 0; border-bottom: 1px solid var(--pol-border); }

.pol-member-fact:last-child { border-bottom: none; }

.pol-fact-label          { color: var(--pol-text-muted); font-size: 0.6875rem; }

.pol-fact-val            { color: var(--pol-text); font-weight: 500; }

.pol-fact-mono           { font-family: var(--pol-font-mono); font-size: 0.6875rem; }

@media (max-width: 768px) {

    .pol-member-grid     { grid-template-columns: 1fr; }

    .pol-member-main     { border-right: none; padding: 16px 20px 32px; }

}




/* ── Member profile — overrides & improvements ──────────────────────── */

.pol-member-hero         { display: flex; gap: 24px; align-items: flex-start;

                           padding: 20px 0 24px; border-bottom: 2px solid var(--pol-border);

                           margin-bottom: 0; }

.pol-member-identity     { flex: 1; min-width: 0; padding-top: 4px; }

.pol-member-name         { font-size: 26px; font-weight: 700; color: var(--pol-text);

                           margin: 0 0 10px; line-height: 1.2; }

.pol-member-badges       { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }

.pol-member-party-badge  { font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 4px; }

.pol-member-chamber-badge { font-size: 12px; padding: 3px 10px; border-radius: 4px;

                            background: var(--pol-bg2); color: var(--pol-text2); font-weight: 500; }

.pol-member-state        { font-size: 15px; color: var(--pol-text); margin-bottom: 4px; font-weight: 500; }

.pol-member-since        { font-size: 13px; color: var(--pol-text-muted); margin-bottom: 10px; }

.pol-member-website-link { font-size: 13px; color: var(--pol-gold); text-decoration: none;

                           font-weight: 500; }

.pol-member-section      { padding: 20px 0; border-bottom: 1px solid var(--pol-border); }

.pol-member-section-label { font-size: 0.6875rem; font-weight: 700; text-transform: uppercase;

                            letter-spacing: .08em; color: var(--pol-text-muted);

                            margin-bottom: 12px; }

.pol-member-table        { width: 100%; border-collapse: collapse; font-size: 13px; }

.pol-member-table th     { text-align: left; font-weight: 600; color: var(--pol-text-muted);

                           padding: 6px 12px 6px 0; border-bottom: 2px solid var(--pol-border);

                           font-size: 0.6875rem; text-transform: uppercase; letter-spacing: .05em; }

.pol-member-table td     { padding: 8px 12px 8px 0; color: var(--pol-text);

                           border-bottom: 1px solid var(--pol-border); font-size: 13px; }

.pol-member-table tr:last-child td { border-bottom: none; }

.pol-tr-current td       { font-weight: 600; }

.pol-member-pending      { font-size: 13px; color: var(--pol-text-dim);

                           font-style: italic; padding: 8px 0; }

.pol-finance-row         { padding: 12px 0; border-bottom: 1px solid var(--pol-border); }

.pol-finance-row:last-child { border-bottom: none; }

.pol-finance-cycle-label { font-size: 13px; font-weight: 700; color: var(--pol-text);

                           margin-bottom: 10px; }

.pol-finance-stats       { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }

.pol-finance-stat-label  { font-size: 10px; color: var(--pol-text-muted); text-transform: uppercase;

                           letter-spacing: .06em; margin-bottom: 3px; }

.pol-finance-stat-val    { font-size: 16px; font-weight: 700; color: var(--pol-text); }




/* ── Text size system ────────────────────────────────────────────────── */

html[data-text-size="m"]   { font-size: 15px; }

html[data-text-size="l"]   { font-size: 17px; }

html[data-text-size="xl"]  { font-size: 19px; }

html[data-text-size="xxl"] { font-size: 22px; }



.pol-text-size-control   { display: flex; align-items: center; gap: 1px;

                            border: 1px solid var(--pol-border); border-radius: 6px;

                            overflow: hidden; }

.pol-text-size-btn       { background: none; border: none; padding: 4px 8px;

                            font-size: 0.6875rem; font-weight: 600; cursor: pointer;

                            color: var(--pol-text-dim); transition: background .15s, color .15s;

                            border-right: 1px solid var(--pol-border); line-height: 1; }

.pol-text-size-btn:last-child { border-right: none; }

.pol-text-size-btn:hover     { background: var(--pol-surface); color: var(--pol-text); }

.pol-text-size-btn.active    { background: var(--pol-gold); color: #fff; }



/* ── Fullscreen button ───────────────────────────────────────────────── */

.pol-fullscreen-btn         { background: none; border: 1px solid var(--pol-border);

                              border-radius: 6px; padding: 5px 7px; cursor: pointer;

                              display: flex; align-items: center; }

.pol-fullscreen-btn:hover   { background: var(--pol-surface); }

.pol-fs-exit-icon           { display: none; }

.pol-fullscreen-active .pol-fs-expand-icon { display: none; }

.pol-fullscreen-active .pol-fs-exit-icon   { display: block; }



/* ── Dark mode — comprehensive ───────────────────────────────────────── */

[data-theme="dark"] {

    --pol-bg:           #0f1117;

    --pol-surface:      #1a1d27;

    --pol-surface-2:    #22263a;

    --pol-border:       #2e3347;

    --pol-text:         #e2e5f0;

    --pol-text-dim:     #7b82a0;

    --pol-gold:         #c9a227;

    --pol-gold-bg:      #2a2310;

    --pol-red:          #e05252;

}

[data-theme="dark"] body             { background: var(--pol-bg); color: var(--pol-text); }

[data-theme="dark"] .pol-topbar      { background: var(--pol-surface); border-bottom-color: var(--pol-border); }

[data-theme="dark"] .pol-nav-link    { color: var(--pol-text-dim); }

[data-theme="dark"] .pol-nav-link:hover,

[data-theme="dark"] .pol-nav-link.active { color: var(--pol-text); }

[data-theme="dark"] .pol-hero        { background: var(--pol-surface); }

[data-theme="dark"] .pol-hero-reality { background: #13161f; }

[data-theme="dark"] .pol-leader-card { background: var(--pol-surface); border-color: var(--pol-border); }

[data-theme="dark"] .pol-leader-card:hover { background: var(--pol-surface-2); }

[data-theme="dark"] .pol-section     { background: var(--pol-bg); }

[data-theme="dark"] .pol-sidebar-section { background: var(--pol-surface); border-color: var(--pol-border); }

[data-theme="dark"] .pol-represent-box { background: var(--pol-surface-2); border-color: var(--pol-border); }

[data-theme="dark"] .pol-represent-input { background: var(--pol-surface); color: var(--pol-text); border-color: var(--pol-border); }

[data-theme="dark"] .pol-election-card  { background: var(--pol-surface); border-color: var(--pol-border); }

[data-theme="dark"] .pol-rc-item        { background: var(--pol-surface); border-color: var(--pol-border); }

[data-theme="dark"] .pol-rc-body        { background: var(--pol-surface-2); }

[data-theme="dark"] .pol-footer         { background: var(--pol-surface); border-top-color: var(--pol-border); }

[data-theme="dark"] .pol-member-main    { border-right-color: var(--pol-border); }

[data-theme="dark"] .pol-member-sidebar .pol-sidebar-section { background: var(--pol-surface); border-color: var(--pol-border); }

[data-theme="dark"] .pol-member-table th { border-bottom-color: var(--pol-border); color: var(--pol-text-dim); }

[data-theme="dark"] .pol-member-table td { border-bottom-color: var(--pol-border); color: var(--pol-text); }

[data-theme="dark"] .pol-finance-row    { border-bottom-color: var(--pol-border); }

[data-theme="dark"] .pol-leg-item       { background: var(--pol-surface); border-color: var(--pol-border); }

[data-theme="dark"] .pol-search-pill    { background: var(--pol-surface-2); border-color: var(--pol-border); color: var(--pol-text-dim); }

[data-theme="dark"] .pol-text-size-control { border-color: var(--pol-border); }

[data-theme="dark"] .pol-text-size-btn  { color: var(--pol-text-dim); border-right-color: var(--pol-border); }

[data-theme="dark"] .pol-fullscreen-btn { border-color: var(--pol-border); }

[data-theme="dark"] .pol-ticker         { background: var(--pol-surface); border-bottom-color: var(--pol-border); }

[data-theme="dark"] .pol-rr-item        { border-bottom-color: var(--pol-border); }

[data-theme="dark"] .pol-rr-group-label { border-top-color: var(--pol-border); }

[data-theme="dark"] .pol-member-wrap    { background: var(--pol-bg); }



/* ── prefers-color-scheme fallback (before JS fires) ───────────────── */

@media (prefers-color-scheme: dark) {

    html:not([data-theme="light"]) body { background: #0f1117; color: #e2e5f0; }

}




/* ── Location personalization ────────────────────────────────────────── */

.pol-represent-desc      { font-size: 13px; font-weight: 600; color: var(--pol-text);

                           margin: 0 0 4px; }

.pol-represent-subdesc   { font-size: 0.6875rem; color: var(--pol-text-dim); margin: 0 0 10px;

                           line-height: 1.5; }

.pol-location-label      { font-size: 12px; font-weight: 600; color: var(--pol-text);

                           padding: 4px 0 8px; border-bottom: 1px solid var(--pol-border);

                           margin-bottom: 8px; }

.pol-location-permission-btn { width: 100%; margin-top: 8px; padding: 7px 12px;

                           background: none; border: 1px dashed var(--pol-border);

                           border-radius: 6px; font-size: 12px; color: var(--pol-text-dim);

                           cursor: pointer; transition: all .15s; text-align: center; }

.pol-location-permission-btn:hover { border-color: var(--pol-gold); color: var(--pol-gold);

                           background: var(--pol-gold-bg, #fef9c3); }

.pol-location-change     { background: none; border: none; font-size: 0.6875rem;

                           color: var(--pol-text-dim); cursor: pointer; padding: 6px 0 0;

                           text-decoration: underline; }

.pol-location-change:hover { color: var(--pol-gold); }

.pol-location-rep-item   { display: flex; align-items: center; gap: 8px;

                           padding: 6px 0; border-bottom: 1px solid var(--pol-border); }

.pol-location-rep-item:last-child { border-bottom: none; }

.pol-location-rep-portrait { width: 32px; height: 40px; border-radius: 3px;

                             object-fit: cover; object-position: top center;

                             flex-shrink: 0; border: 1px solid var(--pol-border); }

.pol-location-rep-placeholder { width: 32px; height: 40px; border-radius: 3px;

                                display: flex; align-items: center; justify-content: center;

                                font-size: 0.6875rem; font-weight: 700; color: #fff; flex-shrink: 0; }

.pol-location-rep-placeholder.pol-party-r { background: #b91c1c; }

.pol-location-rep-placeholder.pol-party-d { background: #1d4ed8; }

.pol-location-rep-placeholder.pol-party-i { background: var(--pol-text-muted); }

.pol-location-rep-info   { flex: 1; min-width: 0; }

.pol-location-rep-name   { font-size: 12px; font-weight: 600; color: var(--pol-gold);

                           text-decoration: none; white-space: nowrap; overflow: hidden;

                           text-overflow: ellipsis; display: block; }

.pol-location-rep-name:hover { text-decoration: underline; }

.pol-location-rep-role   { font-size: 0.6875rem; color: var(--pol-text-dim); }

.pol-location-rep-party  { font-size: 10px; font-weight: 700; padding: 2px 5px;

                           border-radius: 3px; flex-shrink: 0; }

.pol-location-elections-title { font-size: 10px; font-weight: 700; text-transform: uppercase;

                                letter-spacing: .07em; color: var(--pol-text-muted);

                                padding: 8px 0 4px; border-top: 1px solid var(--pol-border); }

.pol-location-election-item  { font-size: 0.6875rem; color: var(--pol-text2); padding: 3px 0;

                               display: flex; justify-content: space-between; gap: 6px; }

.pol-location-election-days  { font-size: 0.6875rem; font-weight: 600; color: var(--pol-gold);

                               flex-shrink: 0; }




/* ── Member Prev/Next navigation ─────────────────────────────────────── */

.pol-member-nav          { display: flex; align-items: center; justify-content: space-between;

                           padding: 14px 28px 0; gap: 12px; }

.pol-member-nav-pn       { display: flex; align-items: center; gap: 8px; }

.pol-pn-btn              { display: flex; align-items: center; gap: 4px; padding: 5px 10px;

                           border: 1px solid var(--pol-border); border-radius: 6px;

                           font-size: 12px; color: var(--pol-text2); text-decoration: none;

                           background: none; transition: all .15s; max-width: 180px; }

.pol-pn-btn:hover        { background: var(--pol-bg2); color: var(--pol-text);

                           border-color: var(--pol-gold); }

.pol-pn-label            { white-space: nowrap; overflow: hidden; text-overflow: ellipsis;

                           max-width: 140px; }

.pol-pn-state            { font-size: 0.6875rem; color: var(--pol-text-dim); font-weight: 600;

                           text-transform: uppercase; letter-spacing: .06em; }




/* ── Member page v2 enhancements ─────────────────────────────────────── */

.pol-member-meta-row     { display: flex; align-items: center; gap: 8px; flex-wrap: wrap;

                           margin-bottom: 6px; }

.pol-member-meta-div     { color: var(--pol-text-dim); }

.pol-committee-list      { display: flex; flex-direction: column; gap: 0; }

.pol-committee-item      { padding: 8px 0; border-bottom: 1px solid var(--pol-border); }

.pol-committee-item:last-child { border-bottom: none; }

.pol-committee-header    { display: flex; align-items: center; gap: 8px; }

.pol-committee-name      { font-size: 13px; font-weight: 500; color: var(--pol-text); }

.pol-subcommittee-item   { display: flex; align-items: center; gap: 6px;

                           padding: 3px 0 3px 16px; }

.pol-subcommittee-arrow  { color: var(--pol-text-dim); font-size: 0.6875rem; }

.pol-subcommittee-name   { font-size: 12px; color: var(--pol-text2); }

.pol-finance-chart-wrap  { padding: 12px 0; }

.pol-finance-table-wrap  { margin-top: 8px; }

.pol-finance-pac         { color: var(--pol-red, #c0392b); }

.pol-district-map        { height: 280px; border-radius: 8px; overflow: hidden;

                           border: 1px solid var(--pol-border); margin-top: 8px; }

.pol-fact-active         { color: var(--pol-green); font-weight: 600; }

.pol-sidebar-finance     { display: flex; flex-direction: column; gap: 6px; }

.pol-sf-row              { display: flex; justify-content: space-between; align-items: baseline;

                           font-size: 13px; padding: 3px 0; border-bottom: 1px solid var(--pol-border); }

.pol-sf-row:last-of-type { border-bottom: none; }

.pol-sf-label            { color: var(--pol-text-muted); font-size: 0.6875rem; }

.pol-sf-val              { color: var(--pol-text); font-weight: 600; }

.pol-sf-pac              { color: var(--pol-red, #c0392b); }

.pol-sf-pac-bar-wrap     { height: 6px; background: var(--pol-border); border-radius: 3px;

                           overflow: hidden; margin-top: 4px; }

.pol-sf-pac-bar          { height: 100%; background: var(--pol-red, #c0392b);

                           border-radius: 3px; transition: width .4s ease; }

.pol-sf-pac-label        { font-size: 10px; color: var(--pol-text-dim); margin-top: 3px; }




/* ── District two-column layout ──────────────────────────────────────── */

.pol-district-layout     { display: grid; grid-template-columns: 1fr 1fr; gap: 16px;

                           align-items: start; margin-top: 8px; }

.pol-district-map-half   { height: 240px; border-radius: 8px; overflow: hidden;

                           border: 1px solid var(--pol-border); }

.pol-district-info       { display: flex; flex-direction: column; gap: 0; }

.pol-di-row              { display: flex; justify-content: space-between; align-items: baseline;

                           padding: 7px 0; border-bottom: 1px solid var(--pol-border);

                           gap: 12px; }

.pol-di-row:last-of-type { border-bottom: none; }

.pol-di-label            { font-size: 0.6875rem; color: var(--pol-text-muted); text-transform: uppercase;

                           letter-spacing: .05em; flex-shrink: 0; }

.pol-di-val              { font-size: 13px; color: var(--pol-text); font-weight: 500;

                           text-align: right; }

.pol-di-divider          { height: 1px; background: var(--pol-border); margin: 6px 0; }

.pol-di-source           { font-size: 10px; color: var(--pol-text-dim); }

@media (max-width: 768px) {

    .pol-district-layout { grid-template-columns: 1fr; }

    .pol-district-map-half { height: 200px; }

}




/* ── District two-column layout ──────────────────────────────────────── */

.pol-district-layout     { display: grid; grid-template-columns: 1fr 1fr; gap: 16px;

                           align-items: start; margin-top: 8px; }

.pol-district-map-half   { height: 240px; border-radius: 8px; overflow: hidden;

                           border: 1px solid var(--pol-border); }

.pol-district-info       { display: flex; flex-direction: column; gap: 0; }

.pol-di-row              { display: flex; justify-content: space-between; align-items: baseline;

                           padding: 7px 0; border-bottom: 1px solid var(--pol-border);

                           gap: 12px; }

.pol-di-row:last-of-type { border-bottom: none; }

.pol-di-label            { font-size: 0.6875rem; color: var(--pol-text-muted); text-transform: uppercase;

                           letter-spacing: .05em; flex-shrink: 0; }

.pol-di-val              { font-size: 13px; color: var(--pol-text); font-weight: 500;

                           text-align: right; }

.pol-di-divider          { height: 1px; background: var(--pol-border); margin: 6px 0; }

.pol-di-source           { font-size: 10px; color: var(--pol-text-dim); }

@media (max-width: 768px) {

    .pol-district-layout { grid-template-columns: 1fr; }

    .pol-district-map-half { height: 200px; }

}




/* ── Sponsored Bills ──────────────────────────────────────────────────── */

.pol-bills-group-label   { font-size: 10px; font-weight: 700; text-transform: uppercase;

                           letter-spacing: .08em; color: var(--pol-text-dim); margin-bottom: 6px; }

.pol-bills-list          { display: flex; flex-direction: column; gap: 0; }

.pol-bill-item           { padding: 8px 0; border-bottom: 1px solid var(--pol-border); }

.pol-bill-item:last-child { border-bottom: none; }

.pol-bill-number         { font-size: 10px; font-weight: 700; color: var(--pol-gold);

                           text-transform: uppercase; letter-spacing: .06em; }

.pol-bill-title          { font-size: 13px; color: var(--pol-text); line-height: 1.4;

                           margin: 2px 0; }

.pol-bill-policy         { display: inline-block; font-size: 10px; padding: 1px 6px;

                           border-radius: 3px; background: var(--pol-bg2);

                           color: var(--pol-text-muted); margin: 2px 0; }

.pol-bill-action         { font-size: 0.6875rem; color: var(--pol-text-muted); margin-top: 2px; }



/* ── Career Timeline ──────────────────────────────────────────────────── */

.pol-career-timeline     { display: flex; flex-direction: column; gap: 0;

                           padding-left: 16px; border-left: 2px solid var(--pol-border); }

.pol-career-item         { display: flex; align-items: flex-start; gap: 10px;

                           padding: 8px 0; position: relative; }

.pol-career-dot          { width: 10px; height: 10px; border-radius: 50%;

                           background: var(--pol-border); border: 2px solid var(--pol-bg);

                           margin-left: -20px; margin-top: 3px; flex-shrink: 0; }

.pol-career-dot-active   { background: var(--pol-gold); }

.pol-career-body         { flex: 1; }

.pol-career-title        { font-size: 13px; font-weight: 500; color: var(--pol-text); }

.pol-career-dates        { font-size: 0.6875rem; color: var(--pol-text-muted); margin-top: 2px; }




/* ── Presidential profile ─────────────────────────────────────────────── */

.pol-president-bio       { font-size: 13px; line-height: 1.7; color: var(--pol-text2);

                           padding: 8px 0; }




/* ── Clickable leader cards ───────────────────────────────────────────── */

a.pol-leader-card-link   { display: block; text-decoration: none; color: inherit;

                           cursor: pointer; }

a.pol-leader-card-link:hover { border-color: var(--pol-gold); transform: translateY(-1px);

                               box-shadow: 0 4px 12px rgba(0,0,0,0.08); }




/* VP Sidebar Row — portrait thumbnail + linked name */

.pol-vp-sidebar-row {

    display: flex;

    align-items: center;

    gap: 10px;

    padding: 8px 0;

    border-bottom: 1px solid var(--pol-border);

}

.pol-vp-sidebar-row:last-child { border-bottom: none; }



.pol-vp-thumb-link {

    flex-shrink: 0;

    display: block;

    width: 44px;

    height: 58px;

    border-radius: 4px;

    overflow: hidden;

    text-decoration: none;

}

.pol-vp-thumb {

    width: 100%;

    height: 100%;

    object-fit: cover;

    object-position: center top;

    display: block;

}

.pol-vp-thumb-placeholder {

    width: 44px;

    height: 58px;

    background: var(--pol-gold);

    color: #fff;

    font-size: 13px;

    font-weight: 700;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 4px;

}

.pol-vp-sidebar-info {

    display: flex;

    flex-direction: column;

    gap: 3px;

    min-width: 0;

}

.pol-vp-name-link {

    font-size: 13px;

    font-weight: 600;

    color: var(--pol-gold);

    text-decoration: none;

    white-space: nowrap;

    overflow: hidden;

    text-overflow: ellipsis;

}

.pol-vp-name-link:hover { text-decoration: underline; }

.pol-vp-years {

    font-size: 0.6875rem;

    color: var(--pol-text2);

}




/* VP hero link in president meta row */

.pol-vp-hero-link {

    color: var(--pol-gold);

    text-decoration: none;

    font-weight: 500;

}

.pol-vp-hero-link:hover { text-decoration: underline; }




/* First Lady — White House Years section */

.pol-fl-presidency-row { margin-bottom: 12px; }

.pol-fl-pres-link {

    display: flex;

    align-items: center;

    gap: 12px;

    text-decoration: none;

    padding: 8px;

    border-radius: 6px;

    border: 1px solid var(--pol-border);

    transition: background 0.15s;

}

.pol-fl-pres-link:hover { background: var(--pol-bg2); }

.pol-fl-pres-thumb {

    width: 48px;

    height: 64px;

    object-fit: cover;

    object-position: center top;

    border-radius: 4px;

    flex-shrink: 0;

}

.pol-fl-pres-initials {

    width: 48px;

    height: 64px;

    background: var(--pol-gold);

    color: #fff;

    font-size: 14px;

    font-weight: 700;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 4px;

    flex-shrink: 0;

}

.pol-fl-pres-info {

    display: flex;

    flex-direction: column;

    gap: 4px;

}

.pol-fl-pres-name {

    font-size: 14px;

    font-weight: 600;

    color: var(--pol-text);

}

.pol-fl-pres-years {

    font-size: 12px;

    color: var(--pol-text2);

}




/* ── First Ladies Directory ────────────────────────────── */

.pol-fld-page { padding: 0 0 60px; }



.pol-fld-header {

    display: flex;

    align-items: flex-start;

    justify-content: space-between;

    gap: 20px;

    padding: 28px 0 20px;

    flex-wrap: wrap;

    border-bottom: 1px solid var(--pol-border);

    margin-bottom: 24px;

}

.pol-fld-title { font-size: 22px; font-weight: 700; color: var(--pol-text); margin: 0 0 4px; }

.pol-fld-subtitle { font-size: 13px; color: var(--pol-text2); margin: 0; }

.pol-fld-controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.pol-fld-search {

    padding: 7px 12px; border: 1px solid var(--pol-border);

    border-radius: 6px; font-size: 13px; background: var(--pol-bg-card);

    color: var(--pol-text); min-width: 180px;

}

.pol-fld-search:focus { outline: none; border-color: var(--pol-gold); }

.pol-fld-sort-group, .pol-fld-view-group { display: flex; gap: 4px; }

.pol-fld-sort-btn {

    padding: 6px 10px; font-size: 12px; font-weight: 500;

    border: 1px solid var(--pol-border); border-radius: 5px;

    background: var(--pol-bg-card); color: var(--pol-text2); cursor: pointer;

}

.pol-fld-sort-btn.active { background: var(--pol-gold); color: #fff; border-color: var(--pol-gold); }

.pol-fld-view-btn {

    width: 32px; height: 32px; display: flex; align-items: center; justify-content: center;

    border: 1px solid var(--pol-border); border-radius: 5px;

    background: var(--pol-bg-card); cursor: pointer;

}

.pol-fld-view-btn.active { background: var(--pol-gold); border-color: var(--pol-gold); }

.pol-fld-view-btn.active img { filter: brightness(10); }



/* Featured current FL */

.pol-fld-featured {

    background: var(--pol-bg2);

    border: 1px solid var(--pol-gold);

    border-radius: 10px;

    padding: 24px;

    margin-bottom: 32px;

}

.pol-fld-featured-inner { display: flex; gap: 24px; align-items: center; }

.pol-fld-featured-portraits { position: relative; flex-shrink: 0; width: 120px; height: 160px; }

.pol-fld-feat-fl-wrap { display: block; width: 120px; height: 160px; border-radius: 6px; overflow: hidden; }

.pol-fld-feat-fl-img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

.pol-fld-feat-fl-initials {

    width: 120px; height: 160px; background: var(--pol-gold); color: #fff;

    font-size: 28px; font-weight: 700; display: flex; align-items: center;

    justify-content: center; border-radius: 6px;

}

.pol-fld-feat-pres-wrap {

    position: absolute; bottom: -8px; right: -8px;

    width: 52px; height: 68px; border-radius: 5px; overflow: hidden;

    border: 3px solid var(--pol-bg); box-shadow: 0 2px 8px rgba(0,0,0,0.2);

}

.pol-fld-feat-pres-img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

.pol-fld-featured-info { flex: 1; min-width: 0; }

.pol-fld-feat-label {

    font-size: 0.6875rem; font-weight: 700; text-transform: uppercase;

    letter-spacing: 0.08em; color: var(--pol-gold); margin-bottom: 6px;

}

.pol-fld-feat-name {

    font-size: 22px; font-weight: 700; color: var(--pol-text);

    text-decoration: none; display: block; margin-bottom: 6px;

}

.pol-fld-feat-name:hover { color: var(--pol-gold); }

.pol-fld-feat-pres { font-size: 13px; color: var(--pol-text2); margin-bottom: 10px; }

.pol-fld-feat-pres-link { color: var(--pol-gold); text-decoration: none; }

.pol-fld-feat-pres-link:hover { text-decoration: underline; }

.pol-fld-feat-bio { font-size: 13px; color: var(--pol-text2); line-height: 1.5; margin: 0 0 12px; }

.pol-fld-feat-cta {

    display: inline-block; padding: 7px 16px;

    background: var(--pol-gold); color: #fff;

    border-radius: 6px; font-size: 13px; font-weight: 600;

    text-decoration: none;

}

.pol-fld-feat-cta:hover { opacity: 0.9; }



/* Grid */

.pol-fld-grid {

    display: grid;

    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));

    gap: 20px;

}

.pol-fld-card {

    display: block; text-decoration: none;

    border: 1px solid var(--pol-border); border-radius: 8px;

    overflow: hidden; transition: transform 0.15s, box-shadow 0.15s;

    background: var(--pol-bg-card);

}

.pol-fld-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,0.12); }

.pol-fld-card-portrait-wrap { position: relative; aspect-ratio: 3/4; overflow: hidden; }

.pol-fld-card-portrait {

    width: 100%; height: 100%; object-fit: cover;

    object-position: center top; display: block;

}

.pol-fld-card-initials {

    width: 100%; height: 100%; background: var(--pol-gold);

    color: #fff; font-size: 24px; font-weight: 700;

    display: flex; align-items: center; justify-content: center;

}

/* President overlay — always visible */

.pol-fld-pres-overlay {

    position: absolute; bottom: 6px; right: 6px;

    width: 40px; height: 52px; border-radius: 4px; overflow: hidden;

    border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,0.3);

}

.pol-fld-pres-overlay-img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

.pol-fld-pres-overlay-initials {

    width: 100%; height: 100%; background: var(--pol-gold);

    color: #fff; font-size: 0.6875rem; font-weight: 700;

    display: flex; align-items: center; justify-content: center;

}

.pol-fld-card-info { padding: 10px 10px 12px; }

.pol-fld-card-name { font-size: 13px; font-weight: 600; color: var(--pol-text); margin-bottom: 3px; line-height: 1.3; }

.pol-fld-card-years { font-size: 0.6875rem; color: var(--pol-gold); font-weight: 500; }

.pol-fld-card-dates { font-size: 0.6875rem; color: var(--pol-text2); margin-top: 2px; }



/* List view */

.pol-fld-list { display: flex; flex-direction: column; gap: 2px; }

.pol-fld-list-row {

    display: grid;

    grid-template-columns: 100px 1fr auto auto;

    grid-template-rows: auto auto;

    align-items: center;

    gap: 0 16px;

    padding: 12px;

    border: 1px solid var(--pol-border);

    border-radius: 6px;

    text-decoration: none;

    background: var(--pol-bg-card);

    transition: background 0.12s;

}

.pol-fld-list-row:hover { background: var(--pol-bg2); }

.pol-fld-list-portraits { display: flex; gap: 6px; align-items: center; grid-row: 1 / 3; }

.pol-fld-list-fl-img {

    width: 44px; height: 58px; object-fit: cover;

    object-position: center top; border-radius: 4px; flex-shrink: 0;

}

.pol-fld-list-pres-img {

    width: 36px; height: 48px; object-fit: cover;

    object-position: center top; border-radius: 3px; flex-shrink: 0;

}

.pol-fld-list-initials {

    background: var(--pol-gold); color: #fff;

    font-size: 12px; font-weight: 700;

    display: flex; align-items: center; justify-content: center;

}

.pol-fld-list-info { grid-column: 2; grid-row: 1; }

.pol-fld-list-name { font-size: 14px; font-weight: 600; color: var(--pol-text); }

.pol-fld-list-pres-name { font-size: 12px; color: var(--pol-text2); }

.pol-fld-list-years { font-size: 12px; color: var(--pol-gold); font-weight: 500; grid-row: 1; white-space: nowrap; }

.pol-fld-list-dates { font-size: 12px; color: var(--pol-text2); grid-row: 1; white-space: nowrap; }

.pol-fld-list-bio { font-size: 12px; color: var(--pol-text2); grid-column: 2 / 5; grid-row: 2; padding-top: 4px; line-height: 1.4; }




/* ── First Ladies Directory — Layout Fixes ─────────────── */

.pol-fld-page { padding: 0 32px 60px; }



.pol-fld-header {

    padding-top: 28px;

    gap: 16px;

}

.pol-fld-controls {

    flex-wrap: wrap;

    justify-content: flex-end;

}

.pol-fld-sort-group {

    flex-wrap: wrap;

}



/* Featured card fix */

.pol-fld-featured {

    max-width: 700px;

    margin-bottom: 32px;

}

.pol-fld-featured-inner {

    flex-wrap: wrap;

}

.pol-fld-feat-pres-wrap {

    bottom: -6px;

    right: -6px;

    width: 44px;

    height: 58px;

    border-width: 2px;

}



/* Grid cards — more definition */

.pol-fld-card {

    background: var(--pol-bg-card);

    box-shadow: 0 1px 4px rgba(0,0,0,0.08);

}

.pol-fld-card:hover {

    box-shadow: 0 6px 20px rgba(0,0,0,0.15);

}



/* President overlay — brighten for b&w portraits */

.pol-fld-pres-overlay {

    background: var(--pol-bg-card);

    width: 36px;

    height: 48px;

}

.pol-fld-pres-overlay-img {

    filter: contrast(1.1) brightness(1.05);

}



/* Responsive */

@media (max-width: 768px) {

    .pol-fld-page { padding: 0 16px 40px; }

    .pol-fld-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 12px; }

    .pol-fld-header { flex-direction: column; }

    .pol-fld-controls { justify-content: flex-start; }

}




/* ── First Ladies Directory — CORRECTED STYLING ─────────── */

.pol-fld-page { padding: 0 32px 60px; }



.pol-fld-header {

    display: flex;

    align-items: flex-start;

    justify-content: space-between;

    gap: 16px;

    padding: 28px 0 20px;

    flex-wrap: wrap;

    border-bottom: 1px solid var(--pol-border);

    margin-bottom: 24px;

}

.pol-fld-title { font-size: 22px; font-weight: 700; color: var(--pol-text); margin: 0 0 4px; font-family: var(--pol-font-serif); }

.pol-fld-subtitle { font-size: 13px; color: var(--pol-text-muted); margin: 0; }

.pol-fld-controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }



.pol-fld-search {

    padding: 7px 12px;

    border: 1px solid var(--pol-border);

    border-radius: 6px;

    font-size: 13px;

    background: var(--pol-bg-card);

    color: var(--pol-text);

    min-width: 180px;

    font-family: var(--pol-font-sans);

}

.pol-fld-search:focus { outline: none; border-color: var(--pol-gold); box-shadow: 0 0 0 2px var(--pol-gold-light); }



.pol-fld-sort-group { display: flex; gap: 4px; }

.pol-fld-sort-btn {

    padding: 6px 12px;

    font-size: 12px;

    font-weight: 600;

    font-family: var(--pol-font-sans);

    border: 1px solid var(--pol-border);

    border-radius: 5px;

    background: var(--pol-bg-card);

    color: var(--pol-text-muted);

    cursor: pointer;

    transition: all 0.15s;

}

.pol-fld-sort-btn:hover { border-color: var(--pol-gold); color: var(--pol-gold); }

.pol-fld-sort-btn.active { background: var(--pol-gold); color: #fff; border-color: var(--pol-gold); }



.pol-fld-view-group { display: flex; gap: 4px; }

.pol-fld-view-btn {

    padding: 6px 12px;

    font-size: 12px;

    font-weight: 600;

    font-family: var(--pol-font-sans);

    border: 1px solid var(--pol-border);

    border-radius: 5px;

    background: var(--pol-bg-card);

    color: var(--pol-text-muted);

    cursor: pointer;

    transition: all 0.15s;

}

.pol-fld-view-btn:hover { border-color: var(--pol-gold); color: var(--pol-gold); }

.pol-fld-view-btn.active { background: var(--pol-gold); color: #fff; border-color: var(--pol-gold); }



/* Featured */

.pol-fld-featured {

    background: var(--pol-bg-card);

    border: 1px solid var(--pol-gold-border);

    border-radius: 10px;

    padding: 24px;

    margin-bottom: 32px;

    max-width: 700px;

    box-shadow: var(--pol-shadow);

}

.pol-fld-featured-inner { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }

.pol-fld-featured-portraits { position: relative; flex-shrink: 0; width: 120px; height: 160px; }

.pol-fld-feat-fl-wrap { display: block; width: 120px; height: 160px; border-radius: 6px; overflow: hidden; }

.pol-fld-feat-fl-img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

.pol-fld-feat-fl-initials {

    width: 120px; height: 160px; background: var(--pol-gold);

    color: #fff; font-size: 28px; font-weight: 700;

    display: flex; align-items: center; justify-content: center; border-radius: 6px;

}

.pol-fld-feat-pres-wrap {

    position: absolute; bottom: -8px; right: -8px;

    width: 48px; height: 64px; border-radius: 5px; overflow: hidden;

    border: 3px solid var(--pol-bg); box-shadow: var(--pol-shadow);

}

.pol-fld-feat-pres-img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

.pol-fld-featured-info { flex: 1; min-width: 0; }

.pol-fld-feat-label {

    font-size: 10px; font-weight: 700; text-transform: uppercase;

    letter-spacing: 0.1em; color: var(--pol-gold); margin-bottom: 6px;

    font-family: var(--pol-font-cond);

}

.pol-fld-feat-name {

    font-size: 22px; font-weight: 700; color: var(--pol-text);

    text-decoration: none; display: block; margin-bottom: 4px;

    font-family: var(--pol-font-serif);

}

.pol-fld-feat-name:hover { color: var(--pol-gold); }

.pol-fld-feat-pres { font-size: 13px; color: var(--pol-text-muted); margin-bottom: 10px; }

.pol-fld-feat-pres-link { color: var(--pol-gold); text-decoration: none; }

.pol-fld-feat-pres-link:hover { text-decoration: underline; }

.pol-fld-feat-bio { font-size: 13px; color: var(--pol-text-muted); line-height: 1.5; margin: 0 0 14px; }

.pol-fld-feat-cta {

    display: inline-block; padding: 8px 18px;

    background: var(--pol-gold); color: #fff;

    border-radius: 6px; font-size: 13px; font-weight: 700;

    text-decoration: none; font-family: var(--pol-font-sans);

    transition: opacity 0.15s;

}

.pol-fld-feat-cta:hover { opacity: 0.88; }



/* Grid */

.pol-fld-grid {

    display: grid;

    grid-template-columns: repeat(auto-fill, minmax(165px, 1fr));

    gap: 20px;

}

.pol-fld-card {

    display: block; text-decoration: none;

    border: 1px solid var(--pol-border);

    border-radius: 8px; overflow: hidden;

    background: var(--pol-bg-card);

    box-shadow: var(--pol-shadow);

    transition: transform 0.15s, box-shadow 0.15s;

}

.pol-fld-card:hover { transform: translateY(-3px); box-shadow: var(--pol-shadow-hover); border-color: var(--pol-gold-border); }

.pol-fld-card-portrait-wrap { position: relative; aspect-ratio: 3/4; overflow: hidden; }

.pol-fld-card-portrait { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }

.pol-fld-card-initials {

    width: 100%; height: 100%; background: var(--pol-gold);

    color: #fff; font-size: 28px; font-weight: 700;

    display: flex; align-items: center; justify-content: center;

}

.pol-fld-pres-overlay {

    position: absolute; bottom: 6px; right: 6px;

    width: 38px; height: 50px; border-radius: 4px; overflow: hidden;

    border: 2px solid var(--pol-bg); box-shadow: 0 2px 8px rgba(0,0,0,0.35);

    background: var(--pol-bg-card);

}

.pol-fld-pres-overlay-img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

.pol-fld-pres-overlay-initials {

    width: 100%; height: 100%; background: var(--pol-gold);

    color: #fff; font-size: 0.6875rem; font-weight: 700;

    display: flex; align-items: center; justify-content: center;

}

.pol-fld-card-info { padding: 10px 12px 14px; }

.pol-fld-card-name { font-size: 13px; font-weight: 700; color: var(--pol-text); margin-bottom: 3px; line-height: 1.3; font-family: var(--pol-font-sans); }

.pol-fld-card-years { font-size: 0.6875rem; color: var(--pol-gold); font-weight: 600; font-family: var(--pol-font-cond); letter-spacing: 0.02em; }

.pol-fld-card-dates { font-size: 0.6875rem; color: var(--pol-text-dim); margin-top: 2px; }



/* List */

.pol-fld-list { display: flex; flex-direction: column; gap: 4px; }

.pol-fld-list-row {

    display: grid;

    grid-template-columns: 110px 1fr auto auto;

    align-items: center;

    gap: 0 16px;

    padding: 12px 16px;

    border: 1px solid var(--pol-border);

    border-radius: 6px;

    text-decoration: none;

    background: var(--pol-bg-card);

    box-shadow: var(--pol-shadow);

    transition: background 0.12s, border-color 0.12s;

}

.pol-fld-list-row:hover { background: var(--pol-bg2); border-color: var(--pol-gold-border); }

.pol-fld-list-portraits { display: flex; gap: 6px; align-items: center; }

.pol-fld-list-fl-img { width: 44px; height: 58px; object-fit: cover; object-position: center top; border-radius: 4px; flex-shrink: 0; }

.pol-fld-list-pres-img { width: 36px; height: 48px; object-fit: cover; object-position: center top; border-radius: 3px; flex-shrink: 0; }

.pol-fld-list-initials { background: var(--pol-gold); color: #fff; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; }

.pol-fld-list-name { font-size: 14px; font-weight: 700; color: var(--pol-text); font-family: var(--pol-font-sans); }

.pol-fld-list-pres-name { font-size: 12px; color: var(--pol-text-muted); }

.pol-fld-list-years { font-size: 12px; color: var(--pol-gold); font-weight: 600; white-space: nowrap; font-family: var(--pol-font-cond); }

.pol-fld-list-dates { font-size: 12px; color: var(--pol-text-dim); white-space: nowrap; }

.pol-fld-list-bio { font-size: 12px; color: var(--pol-text-muted); grid-column: 2 / 5; padding-top: 4px; line-height: 1.4; }



@media (max-width: 768px) {

    .pol-fld-page { padding: 0 16px 40px; }

    .pol-fld-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 12px; }

    .pol-fld-header { flex-direction: column; }

    .pol-fld-controls { justify-content: flex-start; }

    .pol-fld-list-row { grid-template-columns: 90px 1fr; }

    .pol-fld-list-years, .pol-fld-list-dates { display: none; }

}




/* Currently serving badge */

.pol-currently-serving {

    font-size: 0.6875rem;

    font-weight: 700;

    color: var(--pol-green);

    text-transform: uppercase;

    letter-spacing: 0.06em;

    font-family: var(--pol-font-cond);

}




.pol-back-btn-secondary { margin-left: 8px; }

.pol-fld-list-hidden { display: none; }




.pol-bills-group-cosponsor { margin-top: 0.75rem; }

.pol-sf-pac-bar { width: var(--pol-bar-w, 0%); }

