.labvotos-plugin-page .article-header,
.labvotos-plugin-page .entry-title,
.labvotos-plugin-page .page-title,
.labvotos-plugin-host > .article-header {
  display: none !important;
}

.labvotos-services-shell {
  position: relative;
  left: 50%;
  width: min(1120px, calc(100vw - 32px));
  margin: 28px 0;
  transform: translateX(-50%);
  color: #17202b;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.labvotos-services-shell * { box-sizing: border-box; }

.labvotos-services-head {
  border-radius: 7px;
  padding: 34px 38px;
  background: #111a25;
  color: #fff;
}

.labvotos-services-head span {
  color: #9eacbd;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
}

.labvotos-services-head h1 {
  margin: 9px 0 10px;
  color: #fff;
  font-size: 38px;
  line-height: 1.08;
}

.labvotos-services-head p {
  max-width: 680px;
  margin: 0;
  color: #d2dae4;
  font-size: 15px;
  line-height: 1.55;
}

.labvotos-services-shell .labvotos-service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 18px 0;
}

.labvotos-services-shell .labvotos-service-card {
  border: 1px solid #dfe4ea;
  border-radius: 7px;
  padding: 24px;
  background: #fff;
  box-shadow: none;
}

.labvotos-services-shell .labvotos-service-icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  margin-bottom: 18px;
  border-radius: 50%;
  background: #edf2ff;
  color: #315fdf;
  font-size: 22px;
}

.labvotos-services-shell .labvotos-service-card h2 {
  margin: 0 0 8px;
  font-size: 21px;
}

.labvotos-services-shell .labvotos-service-card h2 a {
  color: #17202b;
  text-decoration: none;
}

.labvotos-services-shell .labvotos-service-card p {
  min-height: 48px;
  margin: 0 0 20px;
  color: #687586;
  font-size: 13px;
  line-height: 1.55;
}

.labvotos-services-shell .labvotos-service-action {
  border-radius: 6px;
  margin: 0;
  background: #315fdf;
  padding: 12px 15px;
  font-size: 13px;
}

.labvotos-services-shell .labvotos-service-more {
  border-radius: 6px;
  padding: 11px 14px;
  color: #315fdf;
  font-size: 13px;
}

.labvotos-services-shell .labvotos-service-source {
  border-top: 1px solid #dfe4ea;
  padding: 16px 0;
  color: #718093;
}

@media (max-width: 720px) {
  .labvotos-services-shell { width: min(calc(100% - 20px), 1120px); margin: 14px 0; }
  .labvotos-services-head { padding: 26px 22px; }
  .labvotos-services-head h1 { font-size: 31px; }
  .labvotos-services-shell .labvotos-service-grid { grid-template-columns: 1fr; }
}

.labvotos-portal,
.labvotos-results {
  --lv-ink: #17202b;
  --lv-navy: #111a25;
  --lv-blue: #315fdf;
  --lv-muted: #687586;
  --lv-line: #dfe4ea;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  box-sizing: border-box;
  width: min(1120px, calc(100vw - 32px));
  max-width: none;
  margin: 28px 0;
  color: var(--lv-ink);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: 0;
}

.labvotos-portal *,
.labvotos-results * {
  box-sizing: border-box;
}

.labvotos-portal-head,
.labvotos-results-head {
  border-radius: 7px;
  padding: 34px 38px;
  background: var(--lv-navy);
  color: #fff;
}

.labvotos-portal-head > span,
.labvotos-results-head > span,
.labvotos-portal-news > span,
.labvotos-results-state small,
.labvotos-results-toolbar small,
.labvotos-portal-copy small {
  display: block;
  color: #9eacbd;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
}

.labvotos-portal-head h1,
.labvotos-results-head h1 {
  max-width: 720px;
  margin: 9px 0 10px;
  color: #fff;
  font-size: 38px;
  line-height: 1.08;
  letter-spacing: 0;
}

.labvotos-portal-head p,
.labvotos-results-head p {
  max-width: 680px;
  margin: 0;
  color: #d2dae4;
  font-size: 15px;
  line-height: 1.55;
}

.labvotos-portal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 18px 0;
}

.labvotos-portal-card {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 28px;
  align-items: center;
  gap: 16px;
  min-height: 142px;
  border: 1px solid var(--lv-line);
  border-radius: 7px;
  padding: 22px;
  background: #fff;
  color: var(--lv-ink) !important;
  text-decoration: none !important;
  transition: border-color .18s, box-shadow .18s, transform .18s;
}

.labvotos-portal-card:hover,
.labvotos-portal-card:focus-visible {
  border-color: #aebbd0;
  box-shadow: 0 9px 24px rgba(17, 29, 44, .09);
  transform: translateY(-2px);
  outline: none;
}

.labvotos-portal-icon {
  display: grid !important;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #edf2ff;
  color: var(--lv-blue);
  font-size: 23px !important;
}

.labvotos-portal-copy {
  min-width: 0;
}

.labvotos-portal-copy small,
.labvotos-results-state small,
.labvotos-results-toolbar small {
  color: #718096;
}

.labvotos-portal-copy strong {
  display: block;
  margin: 7px 0 5px;
  font-size: 21px;
  line-height: 1.15;
}

.labvotos-portal-copy > span {
  display: block;
  color: var(--lv-muted);
  font-size: 12px;
  line-height: 1.5;
}

.labvotos-portal-arrow {
  color: var(--lv-blue);
  font-size: 22px;
  font-weight: 700;
  text-align: right;
}

.labvotos-portal-news {
  margin-top: 20px;
  border-top: 1px solid var(--lv-line);
  padding-top: 24px;
}

.labvotos-portal-news h2 {
  margin: 7px 0 12px;
  font-size: 25px;
}

.labvotos-portal-source,
.labvotos-results > footer {
  border-top: 1px solid var(--lv-line);
  padding: 16px 0;
  color: #718093;
  font-size: 11px;
}

.labvotos-results-state {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  margin: 18px 0;
  border: 1px solid var(--lv-line);
  border-radius: 7px;
  padding: 28px;
  background: #fff;
}

.labvotos-results-icon {
  display: grid !important;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #edf2ff;
  color: var(--lv-blue);
  font-size: 25px !important;
}

.labvotos-results-state h2 {
  margin: 6px 0 4px;
  font-size: 23px;
  line-height: 1.2;
}

.labvotos-results-state .labvotos-live-status {
  margin: 0;
  padding: 0;
  color: var(--lv-muted);
  font-size: 13px;
  line-height: 1.5;
}

.labvotos-results-state > strong {
  display: flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
  color: #24724e;
  font-size: 12px;
}

.labvotos-results-state > strong i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #2ab878;
  box-shadow: 0 0 0 4px #e2f6ed;
}

.labvotos-results-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 18px;
  border: 1px solid var(--lv-line);
  border-radius: 7px 7px 0 0;
  padding: 22px 24px;
  background: #fff;
}

.labvotos-results-toolbar h2 {
  margin: 6px 0 3px;
  font-size: 24px;
}

.labvotos-results-toolbar .labvotos-live-status {
  margin: 0;
  padding: 0;
  color: var(--lv-muted);
  font-size: 12px;
}

.labvotos-live-percent {
  color: var(--lv-blue);
  font-size: 27px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.labvotos-live-percent small {
  margin-top: 3px;
  font-size: 9px;
}

.labvotos-results .labvotos-live-candidates {
  border: 1px solid var(--lv-line);
  border-top: 0;
  border-radius: 0 0 7px 7px;
  padding: 0 24px;
  background: #fff;
}

.labvotos-results .labvotos-row {
  grid-template-columns: minmax(0, 1fr) auto 72px;
  gap: 16px;
  min-height: 64px;
  padding: 12px 0;
}

.labvotos-results .labvotos-row:first-child {
  border-top: 0;
}

.labvotos-results .labvotos-row b {
  font-size: 14px;
}

.labvotos-results .labvotos-row strong,
.labvotos-results .labvotos-row > span {
  font-size: 13px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.labvotos-results .labvotos-row > span {
  color: var(--lv-blue);
  font-weight: 800;
}

.labvotos-results > footer {
  margin-top: 18px;
}

.labvotos-results .dashicons::before,
.labvotos-portal .dashicons::before {
  line-height: 1;
}

@media (max-width: 720px) {
  .labvotos-portal,
  .labvotos-results {
    width: min(calc(100% - 20px), 1120px);
    margin: 14px 0;
  }

  .labvotos-portal-head,
  .labvotos-results-head {
    padding: 26px 22px;
  }

  .labvotos-portal-head h1,
  .labvotos-results-head h1 {
    font-size: 31px;
  }

  .labvotos-portal-grid {
    grid-template-columns: 1fr;
  }

  .labvotos-portal-card {
    min-height: 126px;
    padding: 18px;
  }

  .labvotos-results-state {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 16px;
    padding: 22px 18px;
  }

  .labvotos-results-icon {
    width: 48px;
    height: 48px;
  }

  .labvotos-results-state > strong {
    grid-column: 2;
  }

  .labvotos-results-toolbar {
    align-items: flex-start;
    padding: 19px;
  }

  .labvotos-live-percent {
    font-size: 23px;
  }

  .labvotos-results .labvotos-live-candidates {
    padding: 0 18px;
  }

  .labvotos-results .labvotos-row {
    grid-template-columns: minmax(0, 1fr) 60px;
  }

  .labvotos-results .labvotos-row strong {
    display: none;
  }
}

@media (max-width: 430px) {
  .labvotos-portal-card {
    grid-template-columns: 42px minmax(0, 1fr) 20px;
    gap: 12px;
  }

  .labvotos-portal-icon {
    width: 42px;
    height: 42px;
    font-size: 20px !important;
  }

  .labvotos-portal-copy strong {
    font-size: 19px;
  }

  .labvotos-results-state {
    grid-template-columns: 1fr;
  }

  .labvotos-results-state > strong {
    grid-column: 1;
  }

  .labvotos-results-toolbar {
    flex-direction: column;
  }

  .labvotos-live-percent {
    text-align: left;
  }
}
/* Interactive pre-election preview: real candidacies, no fabricated votes. */
.labvotos-live-preview{margin-top:18px;border:1px solid var(--lv-line);border-radius:7px;padding:24px;background:#fff}
.labvotos-preview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.labvotos-preview-head small{display:block;color:#6d7d91;font-size:10px;font-weight:800;letter-spacing:.12em}
.labvotos-preview-head h2{margin:7px 0 5px;font-size:24px}
.labvotos-preview-head p{margin:0;color:#687586;font-size:13px;line-height:1.5}
.labvotos-preview-head>span{flex:0 0 auto;border-radius:999px;background:#fff4d7;color:#996900;padding:7px 10px;font-size:10px;font-weight:800;letter-spacing:.08em}
.labvotos-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.labvotos-preview-card{display:grid;grid-template-columns:48px minmax(0,1fr) 16px;align-items:center;gap:10px;min-height:78px;border:1px solid #e2e7ed;border-radius:6px;padding:10px;background:#fbfcfe;color:var(--lv-ink);text-align:left;cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}
.labvotos-preview-card:hover,.labvotos-preview-card:focus-visible{border-color:#9fb3df;box-shadow:0 6px 16px rgba(17,29,44,.09);transform:translateY(-1px);outline:none}
.labvotos-preview-card img,.labvotos-preview-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#e9eef5;color:#315fdf;display:grid;place-items:center;font-size:18px;font-weight:800}
.labvotos-preview-card span:nth-child(2){min-width:0}.labvotos-preview-card small,.labvotos-preview-card strong,.labvotos-preview-card em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.labvotos-preview-card small{color:#718093;font-size:9px;font-weight:800;text-transform:uppercase}.labvotos-preview-card strong{margin-top:3px;font-size:14px}.labvotos-preview-card em{margin-top:4px;color:#718093;font-size:10px;font-style:normal}.labvotos-preview-card>b{color:var(--lv-blue);font-size:18px}
.labvotos-preview-dialog{position:relative;width:min(460px,calc(100% - 24px));border:0;border-radius:8px;padding:34px;box-shadow:0 25px 80px rgba(8,20,37,.4);text-align:center}.labvotos-preview-dialog::backdrop{background:rgba(8,16,28,.76)}.labvotos-preview-dialog>[data-preview-close]{position:absolute;top:12px;right:12px;width:34px;height:34px;margin:0;padding:0;display:grid;place-items:center;border:0;border-radius:50%;background:#f0f3f6;color:#17202b;font-size:22px;line-height:1;cursor:pointer}.labvotos-preview-dialog [data-preview-detail] img,.labvotos-preview-dialog .labvotos-preview-avatar{width:96px;height:96px;margin:0 auto 14px;border-radius:50%;object-fit:cover}.labvotos-preview-dialog [data-preview-detail] small{display:block;color:#718093;font-size:10px;font-weight:800;text-transform:uppercase}.labvotos-preview-dialog h2{margin:8px 0;font-size:26px}.labvotos-preview-dialog [data-preview-detail]>strong{display:inline-block;border-radius:999px;background:#edf2ff;color:#315fdf;padding:6px 10px}.labvotos-preview-dialog p{margin:18px 0 0;color:#687586;font-size:13px;line-height:1.5}
@media(max-width:760px){.labvotos-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.labvotos-live-preview{padding:18px}.labvotos-preview-head{display:block}.labvotos-preview-head>span{display:inline-block;margin-top:12px}.labvotos-preview-grid{grid-template-columns:1fr}.labvotos-preview-card{min-height:70px}}
.labvotos-tse-preview{margin-top:18px;border:1px solid #e2e5e8;border-radius:8px;background:#f5f5f5;overflow:hidden}.labvotos-tse-election{display:flex;align-items:center;gap:22px;padding:15px 20px;background:#fff;border-bottom:1px solid #e3e5e8;color:#363b43}.labvotos-tse-election strong{color:#e9b900;font-size:14px}.labvotos-tse-election span:last-child{font-size:24px}.labvotos-tse-location{display:flex;align-items:center;gap:12px;padding:14px 20px;background:#fff;box-shadow:0 3px 10px #14233d18}.labvotos-tse-location>span{color:#e9b900}.labvotos-tse-location small{margin-left:22px;color:#58616c}.labvotos-tse-location small b{display:inline-block;margin-left:7px;border-radius:6px;background:#f0c400;padding:5px 10px;color:#fff}.labvotos-tse-offices{display:flex;gap:10px;padding:14px 20px;overflow:auto}.labvotos-tse-offices button{white-space:nowrap;border:1px solid #789536;border-radius:6px;background:#fff;padding:10px 15px;color:#4a4e52;font-weight:800;cursor:pointer}.labvotos-tse-offices button.is-active{background:#718f2e;color:#fff}.labvotos-tse-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;padding:0 20px 20px}.labvotos-tse-sidebar,.labvotos-tse-main{border-radius:16px;background:#fff}.labvotos-tse-sidebar{padding:18px}.labvotos-tse-sidebar h2{margin:0 0 14px;font-size:24px}.labvotos-tse-sidebar h3{margin:22px 0 8px;color:#707070;font-size:18px}.labvotos-tse-sidebar small{color:#848484;font-weight:700}.labvotos-tse-sidebar dl{margin:18px 0 0}.labvotos-tse-sidebar dl div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #eee}.labvotos-tse-sidebar dt{color:#454545}.labvotos-tse-sidebar dd{margin:0;font-weight:800}.labvotos-tse-progress{height:24px;margin-top:5px;border-radius:5px;background:#e7e7e7;text-align:center}.labvotos-tse-progress b{line-height:24px}.labvotos-tse-sidebar p{margin:0 0 14px;color:#777}.labvotos-tse-legend{display:grid;gap:8px}.labvotos-tse-legend span{display:flex;justify-content:space-between}.labvotos-tse-tabs{display:flex;align-items:center;gap:24px;border-bottom:1px solid #ececec;padding:18px 20px}.labvotos-tse-tabs button{border:0;border-bottom:3px solid transparent;background:transparent;padding:0 0 10px;color:#707070;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.labvotos-tse-tabs button.is-active{border-color:#e9b900;color:#d39d00}.labvotos-tse-tabs span{margin-left:auto;color:#15844b;font-size:12px;font-weight:700}.labvotos-tse-notice{margin:16px 20px;padding:12px 14px;border-left:3px solid #e9b900;background:#fff9df;color:#606060;font-size:12px;line-height:1.45}.labvotos-tse-candidates{border-top:1px solid #eee}.labvotos-tse-candidate{display:grid;grid-template-columns:56px minmax(0,1fr) 70px;align-items:center;gap:14px;width:100%;border:0;border-bottom:1px solid #eee;background:#fff;padding:13px 20px;text-align:left;cursor:pointer}.labvotos-tse-candidate:hover{background:#fafafa}.labvotos-tse-candidate[hidden]{display:none}.labvotos-tse-candidate img,.labvotos-tse-candidate .labvotos-preview-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:#edf0f2;color:#718f2e;font-size:18px;font-weight:800}.labvotos-tse-candidate small,.labvotos-tse-candidate strong{display:block}.labvotos-tse-candidate small{color:#69717b;font-size:12px}.labvotos-tse-candidate strong{margin-top:4px;color:#26313e;font-size:17px}.labvotos-tse-candidate>span:last-child{text-align:right}.labvotos-tse-candidate>span:last-child small{font-size:12px}.labvotos-tse-candidate>span:last-child b{display:block;margin-top:5px;font-size:22px;color:#26313e}@media(max-width:760px){.labvotos-tse-layout{grid-template-columns:1fr;padding:0 12px 14px}.labvotos-tse-election,.labvotos-tse-location{padding-left:14px;padding-right:14px}.labvotos-tse-offices{padding-left:12px;padding-right:12px}.labvotos-tse-tabs span{display:none}}@media(max-width:480px){.labvotos-tse-election{gap:10px;font-size:12px}.labvotos-tse-location small{margin-left:auto}.labvotos-tse-candidate{grid-template-columns:46px minmax(0,1fr) 48px;padding:12px}.labvotos-tse-candidate img,.labvotos-tse-candidate .labvotos-preview-avatar{width:42px;height:42px}.labvotos-tse-candidate strong{font-size:14px}.labvotos-tse-candidate small{font-size:10px}}
.labvotos-tse-preview{background:#f4f7fa;border-color:#dce4ec}.labvotos-tse-election strong{color:#315fdf}.labvotos-tse-location>span{color:#59d7b2}.labvotos-tse-location small b{background:#315fdf}.labvotos-tse-offices button{border-color:#315fdf;color:#315fdf}.labvotos-tse-offices button.is-active{background:#315fdf;color:#fff}.labvotos-tse-tabs button.is-active{border-color:#315fdf;color:#315fdf}.labvotos-tse-tabs span{color:#16865b}.labvotos-tse-notice{border-left-color:#59d7b2;background:#eefaf7}.labvotos-tse-candidate>span:last-child b{color:#315fdf}
.labvotos-tse-state{display:flex;align-items:center;gap:8px;margin-left:auto;color:#58616c;font-size:12px;font-weight:700}.labvotos-tse-state select{min-width:150px;border:1px solid #d9e0e7;border-radius:6px;background:#fff;padding:8px 30px 8px 10px;color:#26313e;font:inherit}.labvotos-tse-offices button:disabled{opacity:.42;cursor:not-allowed}.labvotos-tse-search{display:block;margin:16px 20px;color:#58616c;font-size:12px;font-weight:700}.labvotos-tse-search input{display:block;width:100%;margin-top:6px;border:1px solid #d9e0e7;border-radius:6px;padding:11px 12px;background:#fff;color:#26313e;font:inherit}.labvotos-tse-loading{padding:24px 20px;color:#69717b;font-size:13px;text-align:center}
@media(max-width:560px){.labvotos-tse-location{flex-wrap:wrap}.labvotos-tse-state{width:100%;margin:4px 0 0}.labvotos-tse-state select{flex:1;min-width:0}.labvotos-tse-search{margin-left:12px;margin-right:12px}}

/* Candidate cards keep the official result hierarchy even before votes open. */
.labvotos-tse-candidate>span:last-child small{font-size:24px;font-weight:800;line-height:1;color:var(--lv-theme-primary,#198754)}
.labvotos-tse-candidate>span:last-child b{margin-top:5px;font-size:16px;font-weight:500;color:#4f5965}
@media(max-width:480px){.labvotos-tse-candidate{grid-template-columns:46px minmax(0,1fr) 78px}.labvotos-tse-candidate>span:last-child small{font-size:18px}.labvotos-tse-candidate>span:last-child b{font-size:13px}}

/* Official result rows are real controls so the detail popup works in both states. */
.labvotos-results .labvotos-row{width:100%;border-left:0;border-right:0;background:#fff;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background-color .15s}
.labvotos-results .labvotos-row:hover,.labvotos-results .labvotos-row:focus-visible{background:#f7f9fb;outline:0}
.labvotos-tse-candidate,.labvotos-tse-candidate img{cursor:pointer}
