/* LobbyUp Classic — visual match to 2019 LobbyUp Pro demo */
:root {
  --navy: #1a2b3c;
  --navy2: #152433;
  --sidebar: #f0f2f4;
  --sidebar-border: #d5d9de;
  --link: #1a7ab8;
  --link-hover: #0d5f94;
  --active: #1a7ab8;
  --pass: #2e9e4f;
  --pass-bg: #e8f7ec;
  --kill: #c0392b;
  --kill-bg: #fdeceb;
  --watch: #1a9fd8;
  --watch-bg: #e6f6fc;
  --ignore: #888;
  --paper: #ffffff;
  --muted: #6b7280;
  --text: #222;
  --line: #e2e5e9;
  --header-h: 52px;
  --sidebar-w: 210px;
  --radius: 3px;
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; height: 100%; }
body {
  font-family: var(--font);
  color: var(--text);
  background: #e8eaed;
  font-size: 14px;
  line-height: 1.45;
}
a { color: var(--link); text-decoration: none; }
a:hover { color: var(--link-hover); text-decoration: underline; }
button, .btn {
  font-family: inherit; font-size: 13px; cursor: pointer;
  border: 1px solid #c8ced6; background: #fff; color: #333;
  border-radius: var(--radius); padding: 6px 12px;
}
.btn-primary, button.primary { background: var(--link); color: #fff; border-color: var(--link); }
.btn-primary:hover, button.primary:hover { background: var(--link-hover); }
.btn-success { background: var(--pass); color: #fff; border-color: var(--pass); }
.btn-danger { background: var(--kill); color: #fff; border-color: var(--kill); }
.btn-ghost { background: #f7f8fa; }

/* Top bar */
.app-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  height: calc(var(--header-h) + env(safe-area-inset-top, 0px));
  background: var(--navy);
  display: flex; align-items: center; gap: 12px;
  padding: env(safe-area-inset-top, 0px) calc(14px + env(safe-area-inset-right, 0px)) 0 calc(14px + env(safe-area-inset-left, 0px));
  color: #fff;
}
.app-header .brand {
  display: flex; align-items: center; gap: 10px; color: #fff; text-decoration: none;
  font-weight: 700; font-size: 18px; letter-spacing: 0.2px;
}
.app-header .brand:hover { text-decoration: none; color: #fff; }
.logo-mark {
  width: 32px; height: 32px; border-radius: 7px; background: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.logo-mark svg { width: 22px; height: 22px; }
.hamburger {
  background: transparent; border: 0; color: #fff; font-size: 22px;
  padding: 4px 8px; line-height: 1; cursor: pointer;
}
.header-spacer { flex: 1; }
.user-menu {
  display: flex; align-items: center; gap: 8px; color: #fff; font-size: 13px;
  position: relative; cursor: pointer; padding: 6px 4px;
}
.user-menu .caret { font-size: 10px; opacity: 0.8; }
.user-dropdown {
  display: none; position: absolute; right: 0; top: 100%;
  background: #fff; color: #222; min-width: 200px;
  border: 1px solid var(--line); border-radius: 4px;
  box-shadow: 0 8px 24px rgba(0,0,0,.15); padding: 6px 0; z-index: 200;
}
.user-menu:hover .user-dropdown, .user-menu.open .user-dropdown { display: block; }
.user-dropdown a {
  display: block; padding: 8px 14px; color: #222; text-decoration: none;
}
.user-dropdown a:hover { background: #f3f5f7; }
.user-dropdown form { margin: 0; }
.user-dropdown button.menu-button {
  display: block; width: 100%; text-align: left;
  background: none; border: 0; border-radius: 0;
  padding: 8px 14px; color: #222; font: inherit; cursor: pointer;
}
.user-dropdown button.menu-button:hover { background: #f3f5f7; }
.login-body {
  min-height: 100%; display: flex; align-items: center; justify-content: center;
  padding: 24px 16px;
}
.login-card {
  width: 100%; max-width: 420px; background: #fff;
  border: 1px solid var(--line); border-radius: 6px;
  padding: 28px 24px 22px; box-shadow: 0 8px 24px rgba(26, 43, 60, 0.08);
}
.login-brand {
  display: flex; align-items: center; gap: 10px;
  font-size: 20px; font-weight: 600; color: var(--navy); margin-bottom: 14px;
}
.login-card h1 { font-size: 22px; margin: 0 0 6px; }
.login-card .muted { color: var(--muted); margin: 0 0 8px; }
.login-card label { display: block; font-weight: 600; margin: 12px 0 4px; }
.login-card input[type="email"],
.login-card input[type="password"] {
  width: 100%; padding: 8px 10px; border: 1px solid #c8ced6;
  border-radius: 3px; font: inherit;
}
.login-card .btn-primary { width: 100%; margin-top: 16px; padding: 8px 12px; }
.login-error {
  background: var(--kill-bg); color: var(--kill);
  padding: 8px 10px; border-radius: 3px; margin: 8px 0;
}
.inline-reset { display: flex; gap: 6px; align-items: center; margin-top: 6px; flex-wrap: wrap; }
.inline-reset input { max-width: 180px; }

/* Layout shell */
.app-shell {
  display: flex;
  padding-top: calc(var(--header-h) + env(safe-area-inset-top, 0px));
  min-height: 100vh;
}
.sidebar {
  position: fixed; top: calc(var(--header-h) + env(safe-area-inset-top, 0px)); left: 0; bottom: 0;
  width: var(--sidebar-w); background: var(--sidebar);
  border-right: 1px solid var(--sidebar-border);
  overflow-y: auto; z-index: 90;
  transition: transform .2s ease;
}
.sidebar.collapsed { transform: translateX(calc(-1 * var(--sidebar-w))); }
.sidebar nav { padding: 8px 0 calc(24px + env(safe-area-inset-bottom, 0px)); }
.sidebar a {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 14px 9px 12px; color: #333; text-decoration: none;
  border-left: 3px solid transparent; font-size: 13.5px;
}
.sidebar a:hover { background: #e4e7eb; text-decoration: none; }
.sidebar a.active {
  color: var(--active); border-left-color: var(--active); font-weight: 600;
  background: #e8eef3;
}
.sidebar .nav-icon {
  width: 18px; text-align: center; opacity: 0.75; font-size: 14px; flex-shrink: 0;
}
.sidebar .nav-section {
  margin-top: 12px; padding: 8px 14px 4px;
  font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted);
}
.main {
  margin-left: var(--sidebar-w); flex: 1; min-width: 0;
  background: var(--paper); min-height: calc(100vh - var(--header-h));
  padding: 18px calc(22px + env(safe-area-inset-right, 0px)) calc(40px + env(safe-area-inset-bottom, 0px)) calc(22px + env(safe-area-inset-left, 0px));
}
.sidebar.collapsed ~ .main, body.nav-collapsed .main { margin-left: 0; }
body.nav-collapsed .sidebar { transform: translateX(calc(-1 * var(--sidebar-w))); }

/* Page chrome */
.page-title { font-size: 22px; font-weight: 600; margin: 0 0 14px; color: #1a1a1a; }
.page-head {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  margin-bottom: 14px; flex-wrap: wrap;
}
.page-head .page-title { margin: 0; }
.filters {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px;
}
.filters label { font-size: 13px; color: #444; display: inline-flex; align-items: center; gap: 6px; }
.filters select, .filters input[type="text"], .filters input[type="search"],
.filters input[type="date"], .search-bills {
  border: 1px solid #c8ced6; border-radius: var(--radius);
  padding: 7px 10px; font-size: 13px; background: #fff; font-family: inherit;
}
.search-bills, .search-row { width: 100%; margin-bottom: 14px; position: relative; }
.search-bills { padding-right: 36px; }
.search-row .mag {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  color: var(--muted); pointer-events: none;
}
.seg {
  display: inline-flex; border: 1px solid #c8ced6; border-radius: var(--radius); overflow: hidden;
}
.seg a, .seg button {
  border: 0; border-right: 1px solid #c8ced6; background: #fff; padding: 6px 12px;
  color: #333; text-decoration: none; font-size: 13px;
}
.seg a:last-child, .seg button:last-child { border-right: 0; }
.seg a.active, .seg button.active { background: #e8eef3; font-weight: 600; color: var(--link); }
.pager { display: inline-flex; gap: 4px; align-items: center; margin-left: auto; }
.pager a, .pager span {
  display: inline-block; min-width: 28px; text-align: center; padding: 4px 8px;
  border: 1px solid #c8ced6; border-radius: 2px; color: #333; text-decoration: none; font-size: 13px;
}
.pager .current { background: var(--link); color: #fff; border-color: var(--link); }

/* Dashboard activity */
.dash-grid { display: grid; grid-template-columns: 1fr 260px; gap: 20px; align-items: start; }
@media (max-width: 960px) { .dash-grid { grid-template-columns: 1fr; } }
.activity-list { border-top: 1px solid var(--line); }
.activity-item {
  padding: 12px 0; border-bottom: 1px solid var(--line);
}
.activity-item .topline {
  display: flex; justify-content: space-between; gap: 12px; align-items: baseline;
}
.activity-item .when { color: var(--muted); font-size: 12.5px; white-space: nowrap; }
.activity-item .title { color: #555; margin-top: 4px; font-size: 13px; }
.cal-widget {
  border: 1px solid var(--line); border-radius: 4px; padding: 12px 14px; background: #fff;
}
.cal-widget h3 { margin: 0 0 10px; font-size: 15px; }
.cal-widget .slot { margin-bottom: 10px; }
.cal-widget .slot time { font-weight: 700; display: block; }
.cal-widget .slot .evt { margin: 2px 0 0; }
.cal-widget .slot .loc { color: var(--muted); font-size: 12px; }

/* Bill cards */
.bill-card {
  display: block;
  border: 1px solid var(--line); border-radius: 4px; padding: 12px 14px;
  margin-bottom: 10px; background: #fff;
}
.bill-card.order-pass { background: var(--pass-bg); }
.bill-card.order-kill { background: var(--kill-bg); }
.bill-card.order-watch { background: #fff7e8; }
.bill-card.order-ignore { opacity: 0.65; }
.position-stack { display: flex; flex-direction: column; gap: 8px; margin: 8px 0; }
.position-line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.position-who {
  font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: #6b7280; min-width: 88px;
}
.position-bar, .vote-ctl { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.position-bar form, .vote-ctl form { margin: 0; }
button.pos {
  min-height: 40px; min-width: 76px; padding: 6px 14px; border-radius: 6px;
  border: 1px solid #c8ced6; background: #fff; color: #333; font-weight: 700;
  font-size: 14px; cursor: pointer;
}
button.pos.pos-pass.is-on { background: var(--pass); color: #fff; border-color: var(--pass); }
button.pos.pos-kill.is-on { background: var(--kill); color: #fff; border-color: var(--kill); }
button.pos.pos-watch.is-on { background: var(--color-watch, #1565c0); color: #fff; border-color: var(--color-watch, #1565c0); }
.position-hero {
  border: 1px solid var(--line); border-radius: 8px; padding: 14px 16px;
  margin-bottom: 14px; background: #fff;
}
.position-hero h2 {
  margin: 0 0 4px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: #6b7280;
}
.position-hero button.pos { min-height: 44px; min-width: 96px; font-size: 16px; }
.pos-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; }
.pos-filters a {
  display: inline-flex; align-items: center; min-height: 36px; padding: 4px 12px;
  border-radius: 999px; border: 1px solid var(--line); background: #fff; color: #333;
  text-decoration: none; font-weight: 700; font-size: 13px;
}
.pos-filters a.on { background: #1f2937; color: #fff; border-color: #1f2937; }
.pos-filters a.f-pass.on { background: var(--pass); border-color: var(--pass); }
.pos-filters a.f-kill.on { background: var(--kill); border-color: var(--kill); }
.pos-filters a.f-watch.on { background: var(--color-watch, #1565c0); border-color: var(--color-watch, #1565c0); }
.portal-position { display: flex; align-items: center; gap: 8px; }
.progress-box {
  width: 36px; height: 14px; border: 1px solid #b8bec6; border-radius: 2px;
  display: grid; grid-template-columns: repeat(4, 1fr); overflow: hidden; margin-top: 4px;
}
.progress-box span { border-right: 1px solid #b8bec6; background: #fff; }
.progress-box span:last-child { border-right: 0; }
.progress-box span.filled { background: var(--link); }
.order-badge {
  display: inline-block; margin-top: 4px; padding: 2px 6px; font-size: 10px; font-weight: 700;
  letter-spacing: .04em; color: #fff; border-radius: 2px;
}
.order-badge.pass { background: var(--pass); }
.order-badge.kill { background: var(--kill); }
.order-badge.watch { background: var(--color-watch, #1565c0); }
.bill-id { font-weight: 600; text-decoration: underline; color: var(--link); }
.bill-title { font-weight: 700; margin: 4px 0 6px; color: #1a1a1a; font-size: 14.5px; }
.bill-meta { color: #555; font-size: 13px; display: flex; align-items: center; gap: 6px; }
.bill-actions { margin-top: 8px; display: flex; gap: 14px; flex-wrap: wrap; font-size: 13px; }
.bill-actions a, .bill-actions button.linkish {
  color: var(--link); background: none; border: 0; padding: 0; text-decoration: none;
  display: inline-flex; align-items: center; gap: 4px; cursor: pointer; font-size: 13px;
}
.bill-actions a:hover { text-decoration: underline; }
.act-pill {
  display: inline-block; background: #2e9e4f; color: #fff; font-size: 11px; font-weight: 700;
  padding: 2px 6px; border-radius: 2px; margin-left: 8px; vertical-align: middle;
}

/* Bill detail */
.enact-banner {
  background: #d9eef8; color: #1a3a4a; padding: 10px 14px; border-radius: 3px; margin-bottom: 14px;
}
.bill-detail-head { display: block; margin-bottom: 12px; }
.bill-detail-head h1 { font-size: 20px; margin: 6px 0 10px; font-weight: 600; }
.bill-detail-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.tabs {
  display: flex; gap: 0; border-bottom: 1px solid var(--line); margin-bottom: 16px; flex-wrap: wrap;
}
.tabs a {
  padding: 12px 16px; color: var(--link); text-decoration: none; border-bottom: 3px solid transparent;
  font-size: var(--text-base, 1.125rem); font-weight: 600; display: inline-flex; align-items: center; gap: 6px;
  line-height: 1.3;
}
.tabs a.active { color: #222; border-bottom-color: var(--link); font-weight: 600; }
.tab-panel { display: none; }
.tab-panel.active { display: block; }
.donuts { display: flex; gap: 24px; flex-wrap: wrap; margin-bottom: 18px; }
.donut {
  width: 90px; text-align: center;
}
.donut .ring {
  width: 72px; height: 72px; border-radius: 50%; margin: 0 auto 6px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 18px; color: #222;
  background: conic-gradient(var(--c, #2e9e4f) calc(var(--p, 0) * 1%), #e5e7eb 0);
  position: relative;
}
.donut .ring::after {
  content: ""; position: absolute; inset: 10px; background: #fff; border-radius: 50%;
}
.donut .ring strong { position: relative; z-index: 1; }
.donut.yes { --c: #2e9e4f; }
.donut.no { --c: #c0392b; }
.donut.nv { --c: #9aa0a6; }
.data-table { width: 100%; border-collapse: collapse; }
.data-table th {
  text-align: left; background: #5a6570; color: #fff; padding: 8px 10px; font-weight: 600; font-size: 13px;
}
.data-table td { padding: 8px 10px; border-bottom: 1px solid var(--line); }
.data-table tr:nth-child(even) td { background: #f7faf7; }
.data-table a { text-decoration: underline; }

/* Legislator cards */
.leg-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px;
}
.leg-card {
  background: #fff; border: 1px solid var(--line); border-radius: 4px;
  padding: 14px; text-align: center; box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.leg-card .name { font-weight: 700; color: var(--link); margin-bottom: 10px; font-size: 15px; }
.leg-card .photo {
  width: 96px; height: 96px; border-radius: 50%; margin: 0 auto 10px;
  border: 4px solid #ccc; object-fit: cover; background: #e8eaed;
  display: flex; align-items: center; justify-content: center; font-size: 28px; color: #888;
}
.leg-card.party-R .photo { border-color: #c0392b; }
.leg-card.party-D .photo { border-color: #2a5db0; }
.leg-card .meta { font-size: 13px; color: #333; }
.leg-card .email { font-size: 12.5px; word-break: break-all; }

/* Settings tabs */
.settings-tabs {
  display: flex; gap: 0; border-bottom: 1px solid var(--line); margin-bottom: 16px; flex-wrap: wrap;
}
.settings-tabs a {
  padding: 10px 14px; color: var(--link); text-decoration: none;
  border-top: 3px solid transparent; font-size: 13.5px;
}
.settings-tabs a.active { border-top-color: var(--link); color: #222; font-weight: 600; background: #f7f9fb; }
.info-box {
  background: #e8f4fb; border: 1px solid #c5e0ef; border-radius: 3px; padding: 12px 14px; margin-bottom: 14px;
}
.info-box h3 { margin: 0 0 6px; font-size: 15px; }
.modal-backdrop {
  position: fixed; inset: 0; background: rgba(0,0,0,.35); z-index: 300;
  display: none; align-items: center; justify-content: center; padding: 20px;
}
.modal-backdrop.open { display: flex; }
.modal {
  background: #fff; border-radius: 6px; max-width: 480px; width: 100%;
  box-shadow: 0 12px 40px rgba(0,0,0,.25); overflow: hidden;
}
.modal .modal-head {
  background: var(--link); color: #fff; padding: 12px 16px; font-weight: 600;
  display: flex; justify-content: space-between; align-items: center;
}
.modal .modal-body { padding: 16px; }
.modal .modal-foot { padding: 12px 16px; border-top: 1px solid var(--line); text-align: right; display: flex; gap: 8px; justify-content: flex-end; }
.modal label { display: block; font-weight: 600; margin: 10px 0 4px; font-size: 13px; }
.modal input, .modal textarea, .modal select {
  width: 100%; border: 1px solid #c8ced6; border-radius: 3px; padding: 8px 10px; font-family: inherit;
}
.perm-list { list-style: none; padding: 0; margin: 8px 0 0; }
.perm-list li { margin: 6px 0; }

/* Orders & tags layout */
.orders-layout { display: grid; grid-template-columns: 200px 1fr; gap: 16px; }
@media (max-width: 800px) { .orders-layout { grid-template-columns: 1fr; } }
.tags-box {
  border: 1px solid var(--line); border-radius: 4px; padding: 12px; background: #fff;
}
.tags-box h3 { margin: 0 0 10px; font-size: 14px; display: flex; align-items: center; gap: 6px; }
.tag-chip {
  display: flex; justify-content: space-between; align-items: center;
  padding: 5px 8px; margin: 3px 0; border-radius: 3px; font-size: 13px;
}
.tag-chip.active { background: var(--watch-bg); color: var(--link); font-weight: 600; }
.tag-chip a { color: inherit; text-decoration: none; flex: 1; }

/* Clients */
.client-list { list-style: none; padding: 0; margin: 0; }
.client-list li {
  display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 1px solid var(--line);
}
.client-list .name { flex: 1; font-weight: 600; }
.hearing-recordings li { flex-wrap: wrap; align-items: flex-start; }
.hearing-recordings .name { flex: 1 1 16rem; min-width: 12rem; }
.hearing-recordings .cal-add { flex: 1 0 100%; margin-top: 6px; }

/* Forms */
.form-row { margin-bottom: 12px; }
.form-row label { display: block; font-weight: 600; margin-bottom: 4px; }
.form-row input, .form-row textarea, .form-row select {
  width: 100%; max-width: 420px; border: 1px solid #c8ced6; border-radius: 3px; padding: 8px 10px;
  font-family: inherit;
}
.notes-area { width: 100%; min-height: 140px; border: 1px solid #c8ced6; border-radius: 3px; padding: 10px; font-family: inherit; }
.empty { color: var(--muted); padding: 24px 0; }
.alert-kind {
  display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .04em;
  text-transform: uppercase; background: #eef3f8; color: #1a3a5c;
  border-radius: 3px; padding: 2px 6px; margin-bottom: 4px;
}
.alert-unread td { background: #f3faf4; }
.pack-section {
  background: #fff; border: 1px solid var(--line); border-radius: 4px;
  padding: 14px 16px; margin-bottom: 14px;
}
.pack-section h2 { font-size: 18px; margin: 0 0 6px; }
.pack-section h3 { font-size: 13px; margin: 14px 0 4px; letter-spacing: .03em; text-transform: uppercase; color: #445; }
.pack-copy {
  width: 100%; min-height: 220px; box-sizing: border-box;
  font: 13px/1.45 ui-monospace, Consolas, "Courier New", monospace;
  border: 1px solid #c8ced6; border-radius: 4px; padding: 10px;
}
.flash { background: #e8f7ec; border: 1px solid #b7e0c2; padding: 10px 12px; border-radius: 3px; margin-bottom: 12px; }

/* Checklist cards */
.check-card {
  border: 1px solid var(--line); border-top: 3px solid var(--watch); border-radius: 4px;
  padding: 14px 16px; margin-bottom: 10px; background: #fff;
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
}
.check-card h3 { margin: 0 0 4px; font-size: 18px; }
.check-card .sub { color: var(--muted); font-size: 12.5px; text-transform: uppercase; }

/* Track highlight */
.hit-snippet mark { background: #ffe566; padding: 0 2px; }

/* Responsive */
a.agenda-meeting-link {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-height: 44px;
  gap: 2px;
  font-weight: 700;
  text-decoration: underline;
}
.client-services { display: grid; gap: 16px; }
.client-services a.choice-card {
  display: flex;
  align-items: center;
  min-height: 88px;
  padding: 20px;
  font-size: 1.35rem;
  font-weight: 700;
  text-decoration: none;
  border: 1px solid var(--line, #d7d2c8);
  border-radius: 12px;
  background: #fff;
}

@media (max-width: 720px) {
  .computer-only { display: none; }
  .computer-only-note { display: block; }
  .computer-only-body { display: none; }
  .sidebar { transform: translateX(calc(-1 * var(--sidebar-w))); }
  .main { margin-left: 0; padding: 14px calc(14px + env(safe-area-inset-right, 0px)) calc(24px + env(safe-area-inset-bottom, 0px)) calc(14px + env(safe-area-inset-left, 0px)); }
  body.nav-open .sidebar { transform: translateX(0); box-shadow: 8px 0 24px rgba(0,0,0,.2); }
  .user-menu .email-text { display: none; }
}

/* AI extras keep working */
.ai-panel { border: 1px dashed #c8ced6; border-radius: 4px; padding: 12px; margin-top: 16px; background: #fafbfc; }
.ai-panel h3 { margin: 0 0 8px; font-size: 14px; color: var(--muted); }

/* Photos */
.leg-card .photo, .member-photo {
  width: 96px; height: 96px; border-radius: 50%; margin: 0 auto 10px;
  border: 4px solid #ccc; object-fit: cover; object-position: top center;
  background: #e8eaed; display: block;
}
.leg-card.party-R .photo, .member-photo.party-R { border-color: #c0392b; }
.leg-card.party-D .photo, .member-photo.party-D { border-color: #2a5db0; }
.leg-card .photo.placeholder, .member-photo.placeholder {
  display: flex; align-items: center; justify-content: center; color: #888; font-size: 28px;
}
.sponsor-line .mini-photo {
  width: 22px; height: 22px; border-radius: 50%; object-fit: cover; vertical-align: middle;
  border: 2px solid #ccc; margin-right: 4px;
}
.sponsor-line .mini-photo.party-R { border-color: #c0392b; }
.sponsor-line .mini-photo.party-D { border-color: #2a5db0; }
a.sponsor-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: 0 0.35rem;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-accent, #0b6fa0);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}
a.sponsor-link:hover,
a.sponsor-link:focus-visible {
  color: var(--color-accent-hover, #09597f);
}
.sponsor-names {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.15rem 0.2rem;
}

/* District map */
.district-map {
  height: 220px; width: 100%; border-radius: 4px; border: 1px solid var(--line);
  background: #dfe8f0; z-index: 1;
}
.profile-banner { position: relative; margin-bottom: 12px; }
.profile-banner .district-map { height: 200px; border-radius: 4px 4px 0 0; }
.profile-overlap {
  display: flex; gap: 18px; align-items: flex-end; padding: 0 12px 16px;
  margin-top: -56px; position: relative; z-index: 2; flex-wrap: wrap;
}
.profile-overlap .member-photo { width: 110px; height: 110px; margin: 0; background: #fff; }

/* FA nav polish */
.sidebar .nav-icon { width: 20px; text-align: center; color: #5a6570; }
.sidebar a.active .nav-icon { color: var(--active); }
.app-header .fa { color: #fff; }
.logo-mark img { display: block; border-radius: 7px; }
.bill-actions .fa, .bill-meta .fa { margin-right: 3px; color: #6b7280; }

/* Reports modal closer to video */
.report-modal .modal { max-width: 560px; }
.report-modal label { font-weight: 600; }

.ai-summary-body { white-space: pre-wrap; font-family: inherit; line-height: 1.45; color: #222; }
.ai-cited p { margin: .35rem 0; white-space: normal; }
.cite-tip { font-size: .85rem; margin-left: .35rem; text-decoration: underline dotted; white-space: nowrap; }
.cite-flag { color: #8a4b08; font-size: .9rem; }
.ai-changed { margin-top: 14px; padding-top: 12px; border-top: 1px solid #e2e5e9; }
.ai-changed h4 { margin: 0 0 8px; font-size: 13px; color: #6b4f00; text-transform: uppercase; letter-spacing: 0.03em; }
.ai-error { background: #fdecea; border: 1px solid #f5c2c0; color: #8a1f11; padding: 10px 12px; border-radius: 4px; margin: 8px 0; }
.ai-ok { background: #e8f5e9; border: 1px solid #c8e6c9; color: #1b5e20; padding: 8px 12px; border-radius: 4px; margin: 8px 0; font-size: 13px; }
.ai-claim-list { margin: 0 0 8px 18px; padding: 0; }
.ai-claim-list li { margin: 0 0 6px; }
.muted { color: var(--muted, #6b7280); }


/* Client portals (LobbyUp 3.0) */
.check-row { display:flex; align-items:center; gap:8px; font-weight:500; margin:10px 0 0; }
.check-row input { width:auto; }
button.linkish { background:none; border:0; color:var(--link); cursor:pointer; padding:0; font:inherit; }
button.linkish:hover { color:var(--link-hover); text-decoration:underline; }
.tag-pill { display:inline-block; background:#e8eef3; color:#1a2b3c; border-radius:999px; padding:2px 10px; font-size:12px; font-weight:600; }
.brief-form { margin:12px 0 4px; max-width:720px; }
.brief-form label { display:block; font-size:12.5px; font-weight:600; color:#374151; margin-bottom:4px; }
.brief-row { display:flex; gap:8px; }
.brief-row input { flex:1; }

.portal-body { margin:0; background:#f4f6f8; color:var(--text); font-family:var(--font); min-height:100vh; }
.portal-header {
  background: var(--navy); color:#fff; height:52px; display:flex; align-items:center;
  justify-content:space-between; padding:0 22px;
}
.portal-brand { display:flex; align-items:center; gap:10px; font-weight:600; letter-spacing:.02em; }
.portal-brand img { border-radius:6px; }
.portal-meta { font-size:12.5px; opacity:.85; text-transform:uppercase; letter-spacing:.06em; }
.portal-main { max-width:880px; margin:0 auto; padding:28px 18px 48px; }
.portal-hero { background:#fff; border:1px solid var(--line); border-radius:8px; padding:22px 24px; margin-bottom:18px;
  border-top:4px solid var(--navy); }
.portal-hero h1 { margin:0 0 8px; font-size:26px; color:var(--navy); }
.portal-intro { margin:0 0 12px; color:#374151; font-size:15px; line-height:1.45; }
.portal-sub { display:flex; flex-wrap:wrap; gap:10px 14px; align-items:center; color:var(--muted); font-size:13px; }
.portal-bill-list { display:flex; flex-direction:column; gap:14px; }
.portal-bill { background:#fff; border:1px solid var(--line); border-radius:8px; padding:16px 18px; }
.portal-bill.is-failed { opacity:.92; }
.portal-bill-top { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.portal-bill-num { font-size:13px; font-weight:700; color:var(--navy); letter-spacing:.03em; }
.portal-bill-title { margin:4px 0 6px; font-size:16px; line-height:1.35; font-weight:600; color:#1a1a1a; }
.portal-bill-sponsor { font-size:13px; color:var(--muted); }
.act-chip { display:inline-block; background:var(--pass-bg); color:var(--pass); border-radius:4px; padding:1px 6px; font-size:11px; margin-left:6px; }
.status-rail { list-style:none; display:flex; gap:0; margin:14px 0 8px; padding:0; }
.status-rail li { flex:1; text-align:center; position:relative; font-size:11px; font-weight:600; color:#9aa3ad; text-transform:uppercase; letter-spacing:.03em; }
.status-rail li span { display:block; padding-top:14px; }
.status-rail li::before {
  content:""; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:12px; height:12px; border-radius:50%; background:#d5d9de; border:2px solid #fff; box-shadow:0 0 0 1px #c8ced6; z-index:1;
}
.status-rail li::after {
  content:""; position:absolute; top:5px; left:0; right:0; height:2px; background:#d5d9de; z-index:0;
}
.status-rail li:first-child::after { left:50%; }
.status-rail li:last-child::after { right:50%; }
.status-rail li.done { color:var(--pass); }
.status-rail li.done::before { background:var(--pass); box-shadow:0 0 0 1px var(--pass); }
.status-rail li.done::after { background:var(--pass); }
.status-rail li.current { color:var(--navy); }
.status-rail li.current::before { background:var(--link); box-shadow:0 0 0 1px var(--link); }
.status-rail li.current::after { background:linear-gradient(90deg, var(--pass), #d5d9de); }
.portal-failed { font-size:12.5px; color:var(--kill); margin:4px 0 6px; }
.portal-next { font-size:13px; color:#1a2b3c; background:#eef3f7; border-radius:4px; padding:8px 10px; margin-top:8px; }
.portal-next .fa { margin-right:6px; color:var(--link); }
.portal-brief { margin:10px 0 0; padding:10px 12px; background:#fafbfc; border-left:3px solid var(--navy); font-size:14px; line-height:1.4; color:#222; }
.portal-empty { background:#fff; border:1px solid var(--line); border-radius:8px; padding:28px; text-align:center; }
.portal-foot { text-align:center; color:#9aa3ad; font-size:12px; padding:8px 0 28px; }
.portals-table td { vertical-align:top; }

/* Client pages */
.client-stack { display: grid; gap: 16px; }
.client-card {
  background: #fff; border: 1px solid var(--line); border-radius: 4px; padding: 14px 16px;
}
.client-card h2 { font-size: 16px; margin: 0 0 8px; }
.client-card .stack-form input,
.client-card .stack-form select,
.client-card .stack-form textarea {
  width: 100%; max-width: 640px; min-height: 44px; box-sizing: border-box;
}
.client-card .stack-form textarea { min-height: 120px; }
.inline-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
.inline-row .grow { flex: 1 1 180px; }
.table-scroll { overflow-x: auto; }
.suggestion {
  background: #fff8e8; border: 1px solid #e6d3a1; border-radius: 4px; padding: 12px; margin-top: 12px;
}
.approve-banner {
  background: #fff8e8; border: 1px solid #e6d3a1; border-radius: 4px; padding: 12px 14px; margin-bottom: 12px;
}
.check-row { display: flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 500; }

.pwa-card {
  border: 1px solid var(--line);
  background: #f7f8fa;
  border-radius: 4px;
  padding: 14px 16px;
  margin: 0 0 14px;
  max-width: 640px;
}
.pwa-card h2 { margin: 0 0 8px; font-size: 16px; }
.pwa-card p:last-child { margin-bottom: 0; }
.pwa-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.pwa-install-bar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 300;
  display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
  background: var(--navy); color: #fff;
}
.pwa-install-bar button { background: #fff; color: var(--navy); border-color: #fff; }
.pwa-install-actions { display: flex; gap: 8px; }
/* Association member app */
.assoc-body {
  margin: 0;
  background: #f4f6f8;
  color: var(--text);
  font-family: var(--font);
  min-height: 100vh;
}
.assoc-top {
  background: var(--assoc-brand, var(--navy));
  color: #fff;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  position: sticky;
  top: 0;
  z-index: 20;
}
.assoc-brand {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  min-width: 0;
}
.assoc-brand img { width: 28px; height: 28px; object-fit: contain; background: #fff; border-radius: 4px; }
.assoc-search { margin-left: auto; display: flex; gap: 6px; }
.assoc-search input[type="search"] {
  min-height: 40px;
  border: 0;
  border-radius: 4px;
  padding: 0 10px;
  width: min(280px, 46vw);
}
.assoc-search-block { margin: 0 0 14px; }
.assoc-search-block input[type="search"] { width: min(420px, 100%); }
.assoc-shell { display: block; }
.assoc-side { display: none; }
.assoc-main {
  max-width: 880px;
  margin: 0 auto;
  padding: 20px 16px 96px;
}
.assoc-narrow { padding-top: 48px; }
.assoc-main h1 { margin: 0 0 10px; color: var(--assoc-brand, var(--navy)); font-size: 28px; }
.assoc-welcome { font-size: 17px; line-height: 1.45; margin: 0 0 12px; }
.assoc-note { color: var(--muted); font-size: 14px; }
.assoc-cards { display: grid; gap: 12px; margin-top: 16px; }
.assoc-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: #fff;
  border: 1px solid var(--line);
  border-left: 4px solid var(--assoc-accent, var(--link));
  border-radius: 8px;
  padding: 14px 16px;
  text-decoration: none;
  color: inherit;
  min-height: 44px;
}
.assoc-card strong { color: var(--assoc-brand, var(--navy)); }
.assoc-card span { color: var(--muted); font-size: 14px; }
.assoc-item {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px 16px;
  margin: 0 0 12px;
}
.assoc-item h2, .assoc-item h3 { margin: 0 0 6px; font-size: 18px; }
.assoc-item h2 a { color: var(--assoc-accent, var(--link)); }
.assoc-item p { margin: 0 0 6px; }
.assoc-meta { color: var(--muted); font-size: 13px; }
.assoc-row { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.assoc-note-bill {
  margin: 8px 0 0;
  padding: 8px 10px;
  background: #f7f8fa;
  border-left: 3px solid var(--assoc-accent, var(--link));
}
.assoc-summary {
  white-space: pre-wrap;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px 16px;
  line-height: 1.45;
}
.assoc-empty {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 18px;
}
.assoc-alerts {
  margin-top: 22px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 14px 16px;
}
.assoc-alerts form { display: flex; flex-wrap: wrap; gap: 8px; align-items: end; margin-bottom: 8px; }
.assoc-alerts input[type="email"] { min-height: 44px; min-width: 220px; }
.assoc-ok { color: var(--pass); }
.assoc-committees { margin: 0; padding-left: 18px; }
.assoc-tabs {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 30;
  display: flex;
  background: #fff;
  border-top: 1px solid var(--line);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.assoc-tabs a {
  flex: 1;
  text-align: center;
  text-decoration: none;
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  padding: 10px 4px 12px;
  min-height: 44px;
}
.assoc-tabs a.active { color: var(--assoc-accent, var(--link)); }
@media (min-width: 960px) {
  .assoc-shell { display: flex; align-items: flex-start; max-width: 1100px; margin: 0 auto; }
  .assoc-side {
    display: flex;
    flex-direction: column;
    width: 220px;
    padding: 18px 12px 24px;
    position: sticky;
    top: 58px;
  }
  .assoc-side a {
    text-decoration: none;
    color: var(--text);
    padding: 10px 12px;
    border-radius: 6px;
    min-height: 44px;
  }
  .assoc-side a.active { background: #fff; color: var(--assoc-accent, var(--link)); font-weight: 700; }
  .assoc-main { flex: 1; padding-bottom: 48px; }
  .assoc-tabs { display: none; }
  .assoc-cards { grid-template-columns: 1fr 1fr; }
}
html.assoc-embed .assoc-tabs { position: static; }
html.assoc-embed .assoc-main { padding-bottom: 24px; }
.embed-steps { margin: 0 0 16px; padding-left: 1.2em; max-width: 720px; }
.embed-steps li { margin: 0 0 8px; }
.embed-snippet {
  width: 100%;
  max-width: 720px;
  box-sizing: border-box;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 13px;
}
.embed-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0 0; }
.embed-actions button { min-height: 44px; }
.embed-test {
  width: 100%;
  min-height: 520px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
details summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; }

@media (max-width: 720px) {
  .inline-row > * { flex: 1 1 100%; }
  .page-head { flex-wrap: wrap; gap: 8px; }
  .client-card .stack-form input,
  .client-card .stack-form select,
  .client-card .stack-form textarea { max-width: none; }
}

/* 2026-10-14: five-step bill progress */
.progress-wrap { display:inline-flex; align-items:center; gap:6px; vertical-align:middle; }
.progress-box.progress-5 { width:60px; height:16px; grid-template-columns:repeat(5,1fr); display:inline-grid; margin-top:0; }
.progress-act { font-weight:700; font-size:14px; color:#065f46; }

/* portal redesign 20261015 */
.portal-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
  margin-top: 8px;
}
.portal-manage-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 18px 18px 14px;
  border-top: 4px solid var(--navy);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.portal-manage-top { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.portal-manage-name { margin:0 0 4px; font-size:22px; color:var(--navy); line-height:1.2; }
.portal-manage-meta { font-size:14px; margin-top:4px; }
.portal-manage-count { text-align:right; font-size:15px; color:var(--muted); white-space:nowrap; }
.portal-manage-count strong { display:block; font-size:28px; color:var(--navy); line-height:1; }
.portal-manage-tags { display:flex; flex-wrap:wrap; gap:6px; }
.portal-manage-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.portal-manage-actions .btn { min-height:40px; font-size:15px; }
.portal-manage-remove { display:inline; margin:0; }
.tag-multi { display:flex; flex-direction:column; gap:6px; max-height:220px; overflow:auto; border:1px solid var(--line); border-radius:6px; padding:10px; margin-bottom:10px; }
.modal-wide { max-width:560px; width:min(560px, 96vw); }
.btn-danger { background:#8b1a1a; color:#fff; border-color:#8b1a1a; }
.portal-tabs {
  display:flex; flex-wrap:wrap; gap:0;
  background: var(--portal-brand, var(--navy));
  padding: 0 4px;
  position: sticky; top:0; z-index:15;
  border-bottom: 1px solid rgba(255,255,255,.15);
}
.portal-tab {
  flex: 1 1 auto;
  background: transparent;
  border: 0;
  color: rgba(255,255,255,.82);
  font-size: 14px;
  font-weight: 700;
  padding: 12px 10px;
  min-height: 44px;
  border-bottom: 3px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  text-align: center;
}
.portal-tab.active, .portal-tab[aria-selected="true"] {
  color: #fff;
  border-bottom-color: var(--portal-accent, #7dd3fc);
}
.portal-panel { display:none; }
.portal-panel.active { display:block; }
.portal-panel-title { margin: 0 0 14px; font-size: 24px; color: var(--portal-brand, var(--navy)); }
.portal-item {
  background:#fff; border:1px solid var(--line); border-radius:8px; padding:14px 16px; margin:0 0 12px;
}
.portal-item h3 { margin:0 0 6px; font-size:18px; color:var(--portal-brand, var(--navy)); }
.portal-item-meta { margin:0 0 6px; color:var(--muted); font-size:15px; }
.portal-doc-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.portal-search {
  display:flex; gap:8px; flex-wrap:wrap; margin:0 0 16px;
}
.portal-search input[type="search"] {
  flex:1 1 220px; min-height:48px; font-size:18px; padding:10px 14px; border:2px solid var(--portal-brand, var(--navy)); border-radius:8px;
}
.portal-search .btn { min-height:48px; font-size:16px; }
.portal-overview {
  background:#fff; border-left:4px solid var(--portal-accent, var(--link));
  border:1px solid var(--line); border-left-width:4px; border-radius:8px;
  padding:14px 16px; margin:0 0 14px; font-size:16px; line-height:1.4;
}
.portal-finance-total { font-size:22px; font-weight:700; color:var(--portal-brand, var(--navy)); margin:6px 0; }
.portal-bill.order-pass { border-left:4px solid var(--pass, #176b2c); }
.portal-bill.order-kill { border-left:4px solid var(--kill, #a33); }
.portal-bill.order-watch { border-left:4px solid #b8860b; }
.portal-header { background: var(--portal-brand, var(--navy)); }
.portal-hero { border-top-color: var(--portal-brand, var(--navy)); }
@media (max-width: 720px) {
  .portal-manage-name { font-size:20px; }
  .portal-manage-actions .btn { flex: 1 1 calc(50% - 8px); justify-content:center; text-align:center; }
  .portal-tab { font-size:13px; padding:10px 6px; flex: 1 1 30%; }
  .portal-main { padding: 16px 12px 56px; }
}

/* meeting-when in-card 20261015 */
.meeting-card .meeting-when,
.agenda-card .meeting-when,
.cm-meeting .meeting-when,
.portal-item-when {
  font-size: 1.2rem;
  font-weight: 800;
  color: #0b2f7a;
  line-height: 1.35;
  margin: 0 0 6px;
  display: block;
}
.portal-item-when { color: var(--portal-brand, #0b2f7a); font-size: 1.15rem; font-weight: 800; margin: 0 0 6px; }

/* tracks card grid 20261015 */
.track-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
  margin: 12px 0 24px;
}
.track-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-top: 4px solid var(--navy);
  border-radius: 10px;
  padding: 18px 16px;
  text-decoration: none;
  color: inherit;
  min-height: 120px;
}
.track-card:hover, .track-card:focus {
  border-color: var(--link);
  box-shadow: 0 2px 10px rgba(11,47,122,.12);
}
.track-card-top { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.track-card-name { margin:0; font-size:1.35rem; line-height:1.25; color:var(--navy); font-weight:800; }
.track-new-badge {
  flex: 0 0 auto;
  background: #b42318;
  color: #fff;
  font-weight: 800;
  font-size: 0.95rem;
  padding: 6px 10px;
  border-radius: 999px;
  white-space: nowrap;
}
.track-card-meta { display:flex; flex-wrap:wrap; gap:10px; align-items:center; font-size:1.05rem; color:var(--muted); }
.track-card-count strong { font-size:1.45rem; color:var(--navy); margin-right:4px; }
.tracks-create-row { display:flex; flex-wrap:wrap; gap:8px; }
.track-manage { margin: 18px 0 40px; font-size:1.1rem; }
.track-manage summary { cursor:pointer; font-weight:700; font-size:1.15rem; padding:8px 0; }
.track-manage-list { list-style:none; padding:0; margin:10px 0 0; display:flex; flex-direction:column; gap:10px; }
.track-manage-list li { display:flex; flex-wrap:wrap; gap:8px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:8px; padding:12px; }
@media (max-width:720px) {
  .track-card-name { font-size:1.25rem; }
  .tracks-create-row .btn { flex: 1 1 calc(50% - 8px); text-align:center; justify-content:center; }
}

/* ---- Interim Studies + Rules & Regs (2026-10-16) ---- */
.civic-seg{margin:0 0 12px;display:flex;flex-wrap:wrap;gap:6px}
.civic-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px}
.civic-filters input[type=search]{flex:1 1 260px;font-size:18px;min-height:44px}
.civic-filters select{font-size:17px;min-height:44px;max-width:100%}
.civic-list{display:grid;gap:12px}
.civic-card{border:1px solid var(--line,#d0d5dd);border-radius:12px;padding:14px 16px;background:var(--card,#fff);display:grid;gap:6px;position:relative}
.civic-card-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-right:120px}
.civic-num{font-weight:800;font-size:20px;text-decoration:none}
.civic-title{font-size:19px;font-weight:700;line-height:1.35;color:inherit;text-decoration:none}
a.civic-title:hover{text-decoration:underline}
.civic-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:16px;color:var(--ink-2,#344054)}
.civic-follow{position:absolute;top:12px;right:14px}
.civic-follow .btn,.civic-head .btn{min-height:44px;font-size:17px}
.btn-following{background:#067647;color:#fff;border-color:#067647}
.civic-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.civic-lead{font-size:20px;line-height:1.4;margin:6px 0 0;max-width:900px}
.civic-rule-title{font-size:26px;line-height:1.3}
.civic-facts{display:grid;grid-template-columns:max-content 1fr;gap:10px 18px;font-size:18px;margin:8px 0}
.civic-facts dt{font-weight:700}
.civic-facts dd{margin:0}
.civic-docs{font-size:17px;line-height:1.7;padding-left:20px}
.civic-text{font-size:18px;line-height:1.6;max-width:900px;white-space:pre-line}
.civic-next{font-size:18px;margin:0 0 12px}
.civic-count{font-size:16px}
.civic-stage-final{background:#067647;color:#fff}
.civic-stage-alc-review{background:#b54708;color:#fff}
.civic-stage-comment-period{background:#175cd3;color:#fff}
.civic-stage-reviewed-by-alc{background:#6941c6;color:#fff}
.civic-stage-emergency-rule{background:#b42318;color:#fff}
@media (max-width:640px){
  .civic-card-top{padding-right:0}
  .civic-follow{position:static}
  .civic-follow .btn{width:100%}
  .civic-facts{grid-template-columns:1fr;gap:2px}
  .civic-facts dd{margin-bottom:10px}
  .civic-title{font-size:18px}
}
.civic-card .civic-title,.civic-card .civic-meta{padding-right:130px}
@media (max-width:640px){.civic-card .civic-title,.civic-card .civic-meta{padding-right:0}}

/* ---- civic cleanup v2 (2026-10-16) ---- */
.civic-page{padding-bottom:110px}
.civic-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:4px;margin:4px 0 18px;-webkit-overflow-scrolling:touch}
.civic-tabs a{font-size:19px !important;padding:12px 16px !important;white-space:nowrap;color:#344054}
.civic-tabs a.active{color:#101828;font-weight:700}
.civic-tab-n{font-weight:600;color:#475467;margin-left:4px}
.civic-filters{display:grid;grid-template-columns:minmax(220px,1fr) minmax(200px,340px) auto;gap:10px;align-items:stretch;margin:0 0 20px}
.civic-filters-3{grid-template-columns:minmax(200px,1fr) minmax(180px,300px) minmax(140px,200px) auto}
.civic-filters input[type=search],.civic-filters select,.civic-filters .btn{font-size:18px;min-height:50px;height:50px;margin:0;box-sizing:border-box;width:100%}
.civic-filters .btn{padding:0 28px;width:auto}
.civic-list{display:grid;gap:16px}
.civic-card{display:flex;gap:20px;align-items:flex-start;justify-content:space-between;padding:20px 22px;border-radius:14px}
.civic-card-main{display:grid;gap:8px;min-width:0;flex:1}
.civic-card .civic-title,.civic-card .civic-meta{padding-right:0}
.civic-card-top{padding-right:0;gap:12px}
.civic-num{font-size:21px}
.civic-title{font-size:22px;line-height:1.35;font-weight:700;color:#101828}
.civic-agency{font-size:18px;color:#344054}
.civic-dates{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 22px;font-size:17px;color:#1d2939;font-weight:600}
.civic-badge{justify-self:start;display:inline-block;font-size:16px;font-weight:700;padding:5px 12px;border-radius:8px;background:#475467;color:#fff}
.civic-status-adopted{background:#067647}
.civic-status-filed{background:#475467}
.civic-status-withdrawn{background:#b42318}
.civic-status-hearing-held{background:#6941c6}
.civic-follow{position:static;flex:0 0 auto}
.civic-track{min-width:132px;min-height:50px !important;font-size:18px !important}
.civic-more{text-align:center;margin:24px 0}
.civic-more .btn{font-size:19px;min-height:52px;padding:0 40px}
.civic-next{font-size:19px}
@media (max-width:760px){
  .civic-filters,.civic-filters-3{grid-template-columns:1fr}
  .civic-filters .btn{width:100%}
  .civic-card{flex-direction:column;gap:14px;padding:18px}
  .civic-follow,.civic-track{width:100%}
  .civic-title{font-size:20px}
}
.btn.civic-track{min-width:132px;min-height:50px;font-size:18px;padding:0 22px}
.civic-more .btn.load-more{display:inline-flex;align-items:center;justify-content:center;font-size:19px;min-height:54px;line-height:1.2;padding:0 44px}

/* data disclaimer */
.lu-disclaimer{font-size:.85rem;color:#6b6b6b;margin:28px 0 72px;line-height:1.4}
[data-theme=dark] .lu-disclaimer{color:#a0a0a0}

/* ALCLINK-20261019: next ALC meeting line is a link */
.civic-next-link{color:#175cd3;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}
.civic-next-link:hover,.civic-next-link:focus{color:#1849a9;text-decoration-thickness:3px}
.civic-next-hint{font-size:17px;color:#175cd3;text-decoration:underline;margin-left:6px;white-space:nowrap}
.ai-report{margin:10px 0}
.ai-report summary{cursor:pointer;font-weight:700}
.ai-report form{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin-top:8px}
.ai-report label{font-size:.95rem}
