/* ── BrantVotes Tracker — Public Styles ── */
.bvt-tracker{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#1a1a1a;max-width:900px;margin:0 auto}

/* Hero */
.bvt-hero{background:#1e3a5f;border-radius:10px;padding:28px 28px 24px;margin-bottom:20px;position:relative;overflow:hidden}
.bvt-hero::before{content:'';position:absolute;top:-50px;right:-50px;width:200px;height:200px;border-radius:50%;background:rgba(185,28,28,.18)}
.bvt-hero-badge{display:inline-flex;align-items:center;gap:6px;background:rgba(185,28,28,.25);color:#fca5a5;font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;padding:4px 10px;border-radius:20px;margin-bottom:10px}
.bvt-dot{width:6px;height:6px;border-radius:50%;background:#f87171}
.bvt-hero-title{color:#fff;font-size:26px;font-weight:600;margin:0 0 6px}
.bvt-hero-sub{color:rgba(255,255,255,.65);font-size:14px;margin:0 0 16px}
.bvt-election-chip{display:inline-block;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.85);font-size:13px;padding:5px 12px;border-radius:6px}

/* Stats */
.bvt-stats-row{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.bvt-stat-card{flex:1;min-width:100px;background:#f0f4f8;border-radius:8px;padding:14px;text-align:center}
.bvt-stat-n{display:block;font-size:28px;font-weight:600;color:#1e3a5f}
.bvt-stat-l{display:block;font-size:12px;color:#666;margin-top:3px}

/* Tabs */
.bvt-tabs{display:flex;gap:2px;background:#f0f0f0;border-radius:8px;padding:3px;margin-bottom:18px}
.bvt-tab{flex:1;padding:8px 12px;font-size:14px;font-weight:500;background:transparent;border:none;border-radius:6px;cursor:pointer;color:#666}
.bvt-tab.active{background:#fff;color:#1a1a1a;box-shadow:0 1px 3px rgba(0,0,0,.1)}
.bvt-panel{display:none}.bvt-panel.active{display:block}

/* Filters */
.bvt-filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;align-items:center}
.bvt-select{font-size:13px;padding:6px 10px;border-radius:6px;border:1px solid #ddd;background:#fff;color:#333;cursor:pointer}
.bvt-tag-filters{display:flex;flex-wrap:wrap;gap:6px}
.bvt-tag-btn{font-size:12px;padding:5px 12px;border-radius:20px;border:1px solid #ddd;background:#fff;color:#666;cursor:pointer}
.bvt-tag-btn.active{background:#eff4fb;border-color:#93c5fd;color:#1e3a5f;font-weight:500}

/* Vote items */
.bvt-month-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#888;border-bottom:1px solid #eee;padding-bottom:6px;margin:18px 0 8px}
.bvt-vote-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:6px;cursor:pointer;overflow:hidden;transition:border-color .15s}
.bvt-vote-item:hover{border-color:#c0c8d8}
.bvt-vote-summary{display:flex;align-items:center;gap:10px;padding:11px 14px}
.bvt-motion{flex:1;font-size:14px;font-weight:500;line-height:1.35}
.bvt-badge{font-size:11px;font-weight:600;padding:3px 9px;border-radius:10px;white-space:nowrap}
.bvt-badge-pass{background:#dcfce7;color:#166534}
.bvt-badge-fail{background:#fee2e2;color:#991b1b}
.bvt-badge-split{background:#fef9c3;color:#854d0e}
.bvt-badge-defer{background:#ede9fe;color:#5b21b6}
.bvt-vote-detail{display:none;padding:0 14px 12px;border-top:1px solid #f0f0f0}
.bvt-vote-detail.open{display:block}
.bvt-detail-tags{font-size:12px;color:#888;margin:8px 0 10px}
.bvt-cv-row{display:flex;flex-wrap:wrap;gap:5px}
.bvt-cv{display:flex;align-items:center;gap:5px;font-size:12px;padding:4px 9px;border-radius:6px;border:1px solid #e5e7eb;background:#f9fafb}
.bvt-cv.yes{background:#f0fdf4;border-color:#86efac;color:#166534}
.bvt-cv.no{background:#fef2f2;border-color:#fca5a5;color:#991b1b}
.bvt-cv.conflict{background:#fffbeb;border-color:#fcd34d;color:#92400e}
.bvt-cv.absent{color:#888}
.bvt-cv-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.bvt-cv.yes .bvt-cv-dot{background:#16a34a}
.bvt-cv.no .bvt-cv-dot{background:#dc2626}
.bvt-cv.conflict .bvt-cv-dot{background:#d97706}
.bvt-cv.absent .bvt-cv-dot{background:#94a3b8}

/* Councillors */
.bvt-councillor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.bvt-c-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:16px;text-align:center}
.bvt-avatar{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;margin:0 auto 10px}
.bvt-c-name{font-size:13px;font-weight:500}
.bvt-c-ward{font-size:11px;color:#888;margin-top:3px}
.bvt-c-stats{display:flex;justify-content:center;gap:12px;margin-top:10px}
.bvt-cs .n{font-size:17px;font-weight:600;display:block}
.bvt-cs .l{font-size:10px;color:#888;display:block}

/* Alignment */
.bvt-align-note{font-size:13px;color:#666;margin-bottom:16px;line-height:1.5}
.bvt-align-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.bvt-align-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px}
.bvt-align-names{font-size:13px;font-weight:500;margin-bottom:5px}
.bvt-align-bar{height:4px;background:#f0f0f0;border-radius:2px;margin-bottom:5px}
.bvt-align-fill{height:100%;border-radius:2px}
.bvt-align-pct{font-size:14px;font-weight:600}
.bvt-align-n{font-size:11px;color:#888}

.bvt-loading{text-align:center;padding:40px;color:#888;font-size:14px}
.bvt-empty{text-align:center;padding:40px;color:#999;font-size:14px}

@media(max-width:600px){
  .bvt-hero{padding:20px}
  .bvt-hero-title{font-size:20px}
  .bvt-stats-row{gap:8px}
  .bvt-tabs .bvt-tab{font-size:12px;padding:7px 8px}
  .bvt-filter-bar{gap:6px}
}

/* Councillor photo + profile link */
.bvt-c-card-link{display:block;text-decoration:none;transition:opacity .15s}
.bvt-c-card-link:hover{opacity:.85}
.bvt-c-link{color:var(--bvt-navy,#1e3a5f);text-decoration:none;font-weight:500}
.bvt-c-link:hover{text-decoration:underline}
.bvt-c-card .bvt-avatar img{display:block;width:100%;height:100%}

/* Minutes link on vote items */
.bvt-minutes-link{font-size:11px;color:#1e3a5f;text-decoration:none;white-space:nowrap;padding:3px 8px;border:1px solid #c8d8eb;border-radius:5px;background:#eff4fb;margin-right:6px;flex-shrink:0}
.bvt-minutes-link:hover{background:#dbeafe;border-color:#93c5fd}
