@charset "UTF-8";
/* ==========================================================================
   Variables
   ========================================================================== */
:root {
  --light-orange: #FFF1DE;
  --orange: #FF9300;
  --light-blue: #29ADFF;
  --blue: #2143E7;
  --dark-blue: #052E66;
  --card-bg: #EFF5FF;
  --text-secondary: #466385;
  --danger: #B3261E;
  --dialog-bg: #F1F7FF;
  --border-light: #D2E2FF;
  --mdc-theme-primary: var(--dark-blue);
  --mdc-theme-secondary: var(--light-blue); }

/* ==========================================================================
   Base / Global
   ========================================================================== */
ul.mdc-deprecated-list {
  list-style: none;
  padding: 0;
  margin: 0; }

.section-heading,
.section-title {
  font-family: Work Sans;
  font-size: 20px;
  font-weight: 600;
  line-height: 24px;
  letter-spacing: 0.15px;
  color: var(--dark-blue);
  margin: 0; }

.profile-name {
  font-family: Work Sans;
  font-size: 24px;
  font-weight: 700;
  line-height: 32px;
  color: var(--dark-blue);
  margin: 0; }

.arrow {
  margin: 0 10px;
  transition: transform 0.2s; }

.right {
  transform: rotate(-45deg); }

.left {
  transform: rotate(135deg); }

.up {
  transform: rotate(-135deg); }

.down {
  transform: rotate(45deg); }

.avatar-icon {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  font-size: 24px;
  font-weight: 600;
  font-style: normal;
  color: #fff;
  line-height: 20px;
  text-align: center;
  background: var(--blue);
  display: inline-block; }

/* ==========================================================================
   Layout — main.container
   ========================================================================== */
main.container > * {
  display: contents; }

.card.backlink {
  margin: 0;
  padding: 0; }
  .card.backlink .mdc-button {
    padding: 0 4px;
    margin: 0;
    height: 28px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-secondary); }
    .card.backlink .mdc-button i {
      font-size: 18px; }

main.container {
  padding: 80px 48px;
  padding-bottom: 64px;
  display: flex;
  flex-direction: column;
  align-self: center;
  min-width: 360px;
  max-width: 1280px;
  width: calc(100% - 96px);
  gap: 24px;
  /* ---------- Remove underlines from all links/buttons ---------- */
  margin: 0 auto;
  color: var(--mdc-theme-primary);
  /* ---------- Breadcrumb ---------- */
  /* ---------- Buttons ---------- */
  /* ---------- Forms ---------- */
  /* ---------- Card list items ---------- */
  /* ---------- Dialogs ---------- */
  /* ---------- BVEC info cards ---------- */
  /* ---------- BVEC chips ---------- */
  /* ---------- List group cards ---------- */
  /* ---------- Shared list utilities ---------- */
  /* ---------- BVEC tasks ---------- */
  /* ---------- Suspension status ---------- */
  /* ---------- BVE card info items ---------- */
  /* ---------- Candidate list ---------- */
  /* ---------- ENSAP voters table ---------- */
  /* ---------- Members / voters list ---------- */
  /* ---------- Page title ---------- */ }
  main.container a,
  main.container a:hover,
  main.container a:focus,
  main.container a:active,
  main.container a:visited {
    text-decoration: none; }
  main.container .breadcrumb {
    padding: 0; }
    main.container .breadcrumb a:last-of-type {
      font-weight: 600;
      opacity: 1.0; }
    main.container .breadcrumb .breadcrumb__title,
    main.container .breadcrumb a {
      gap: 12px;
      margin-bottom: 0;
      font-family: Work Sans;
      font-size: 14px;
      font-weight: 500;
      text-decoration: none;
      line-height: 20px;
      color: var(--text-secondary); }
  main.container .mdc-button,
  main.container .mdc-button--raised,
  main.container .mdc-button--outlined {
    --mdc-typography-font-family: Work Sans;
    font-family: Work Sans;
    font-size: 15px;
    line-height: 20px;
    letter-spacing: 0.5px;
    font-weight: 600;
    text-transform: unset; }
  main.container .mdc-button--outlined {
    border-radius: 30px; }
    main.container .mdc-button--outlined .mdc-button__ripple {
      border-radius: 30px; }
  main.container .mdc-button--raised.black-button {
    --mdc-theme-primary: var(--blue);
    background-color: var(--mdc-theme-primary);
    border-radius: 30px; }
    main.container .mdc-button--raised.black-button .mdc-button__label {
      background-color: var(--mdc-theme-primary);
      border-radius: 30px; }
  main.container .mdc-button--danger {
    border: 1.5px solid var(--danger);
    color: var(--danger);
    background: transparent; }
    main.container .mdc-button--danger .mdc-button__label {
      color: var(--danger); }
    main.container .mdc-button--danger i {
      color: var(--danger);
      font-size: 18px; }
    main.container .mdc-button--danger:hover {
      background: rgba(179, 38, 30, 0.04); }
    main.container .mdc-button--danger:focus, main.container .mdc-button--danger:focus-visible {
      border-color: var(--danger) !important;
      box-shadow: 0 0 0 1px var(--danger) !important; }
    main.container .mdc-button--danger .mdc-button__ripple::before,
    main.container .mdc-button--danger .mdc-button__ripple::after {
      background-color: rgba(179, 38, 30, 0.08); }
  main.container .mdc-list-item--disabled a {
    opacity: 0.5;
    pointer-events: none; }
  main.container .form-actions {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: center;
    margin-top: 32px;
    padding-top: 24px;
    border-top: 1px solid rgba(0, 0, 0, 0.06); }
    main.container .form-actions .mdc-button {
      font-size: 15px;
      border-radius: 30px;
      padding: 0 24px;
      height: 42px; }
      main.container .form-actions .mdc-button .mdc-button__ripple {
        border-radius: 30px; }
  main.container form {
    --mdc-shape-small: 5px;
    --mdc-theme-primary: var(--blue); }
    main.container form h6, main.container form .form-section__heading {
      font-family: Work Sans;
      font-size: 16px;
      font-weight: 600;
      color: var(--dark-blue);
      margin: 24px 0 8px;
      text-transform: unset; }
      main.container form h6:first-of-type, main.container form .form-section__heading:first-of-type {
        margin-top: 0; }
    main.container form .mdc-text-field:not(.mdc-text-field--invalid):has(> .pending) {
      border-color: var(--orange); }
      main.container form .mdc-text-field:not(.mdc-text-field--invalid):has(> .pending) .mdc-notched-outline:has(+ .pending) .mdc-notched-outline__leading,
      main.container form .mdc-text-field:not(.mdc-text-field--invalid):has(> .pending) .mdc-notched-outline:has(+ .pending) .mdc-notched-outline__trailing,
      main.container form .mdc-text-field:not(.mdc-text-field--invalid):has(> .pending) .mdc-notched-outline:has(+ .pending) .mdc-notched-outline__notch {
        border-color: var(--orange); }
  main.container .form-section__label {
    font-family: Work Sans;
    font-size: 13px;
    font-weight: 500;
    color: var(--dark-blue);
    opacity: 0.7;
    margin-bottom: 4px;
    display: block; }
  main.container .form-status__pending {
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
    padding: 5px;
    margin-bottom: -16px;
    font-size: small;
    font-family: Work Sans;
    font-weight: 500;
    border-radius: 5px;
    color: var(--text-secondary);
    background-color: var(--light-orange); }
    main.container .form-status__pending .bubble {
      font-size: medium;
      width: 16px;
      height: 16px;
      color: white;
      border-radius: 50%;
      margin: 0 12px; }
  main.container .form-description {
    margin: 32px 0; }
    main.container .form-description h2, main.container .form-description h4 {
      text-transform: unset;
      color: var(--mdc-theme-primary);
      font-weight: 500;
      font-size: 24px;
      line-height: 0px; }
    main.container .form-description p {
      font-family: Work Sans;
      font-size: 14px;
      line-height: 8px; }
      main.container .form-description p a {
        color: var(--mdc-theme-primary);
        text-decoration: underline;
        font-weight: 600; }
  main.container .tip {
    font-family: Work Sans;
    font-size: 12px;
    font-weight: 500;
    line-height: 24px;
    text-align: left;
    border-radius: 16px;
    background-color: #FDF2B8;
    padding: 0 12px;
    width: fit-content;
    margin-bottom: 12px; }
  main.container .card-list-item {
    display: flex;
    align-items: center;
    color: var(--mdc-theme-primary);
    min-height: 112px;
    height: auto;
    border-radius: 10px;
    background-color: var(--card-bg);
    padding-left: 0;
    margin-bottom: 12px; }
    main.container .card-list-item.detail-card {
      border-radius: 5px; }
      main.container .card-list-item.detail-card .mdc-deprecated-list-item__text .mdc-deprecated-list-item__primary-text {
        font-size: 20px;
        font-weight: 600; }
        main.container .card-list-item.detail-card .mdc-deprecated-list-item__text .mdc-deprecated-list-item__primary-text::before {
          content: none; }
    main.container .card-list-item.detail-card.pending, main.container .card-list-item.detail-card.pending .mdc-button {
      background-color: var(--light-orange); }
    main.container .card-list-item.detail-card.disabled {
      opacity: 0.5;
      pointer-events: none;
      cursor: default; }
    main.container .card-list-item .bubble-in-card {
      color: white;
      border-radius: 50px;
      position: absolute;
      left: 75px;
      top: 10px;
      width: 17px;
      height: 17px;
      font-size: 17px; }
    main.container .card-list-item .mdc-deprecated-list-item__text {
      margin-left: 32px; }
      main.container .card-list-item .mdc-deprecated-list-item__text .mdc-deprecated-list-item__primary-text {
        margin-left: 0;
        margin-bottom: 0;
        font-family: Work Sans;
        font-size: 18px;
        font-weight: 500; }
      main.container .card-list-item .mdc-deprecated-list-item__text .mdc-deprecated-list-item__secondary-text {
        color: var(--mdc-theme-primary);
        font-family: Work Sans;
        font-size: 14px;
        font-weight: 500;
        text-align: left;
        display: flex;
        flex-flow: row wrap; }
        main.container .card-list-item .mdc-deprecated-list-item__text .mdc-deprecated-list-item__secondary-text p {
          display: inline-block;
          margin: 0;
          margin-right: 12px;
          line-height: 20px; }
    main.container .card-list-item .mdc-deprecated-list-item__graphic {
      height: 100%;
      width: 86px;
      color: orange;
      background: antiquewhite;
      border-radius: 10px 56px 56px 10px;
      padding-right: 12px;
      margin-right: 0;
      display: flex; }
    main.container .card-list-item .mdc-deprecated-list-item__meta .mdc-button {
      height: 64px;
      width: 64px;
      border-radius: 50%;
      background-color: var(--card-bg);
      border: 1px solid var(--border-light);
      box-shadow: unset;
      color: var(--text-secondary);
      margin: auto; }
      main.container .card-list-item .mdc-deprecated-list-item__meta .mdc-button .mdc-button__ripple {
        border-radius: 50%; }
    main.container .card-list-item .mdc-deprecated-list-item__meta > i.material-icons {
      font-size: 22px;
      color: var(--text-secondary);
      opacity: 0.4;
      transition: opacity 0.15s;
      margin: auto; }
    main.container .card-list-item[data-url] {
      cursor: pointer; }
      main.container .card-list-item[data-url]:hover {
        background-color: #E3EDFF; }
      main.container .card-list-item[data-url]:hover .mdc-deprecated-list-item__meta > i.material-icons {
        opacity: 1; }
    main.container .card-list-item.disabled {
      cursor: default; }
      main.container .card-list-item.disabled:hover {
        background-color: var(--card-bg); }
  main.container .mdc-dialog .mdc-dialog__title {
    font-family: Work Sans;
    font-size: 20px;
    font-weight: 700;
    color: var(--mdc-theme-primary); }
  main.container .mdc-dialog .mdc-dialog__surface {
    border-radius: 25px;
    background-color: var(--dialog-bg);
    padding: 32px;
    text-align: center; }
    main.container .mdc-dialog .mdc-dialog__surface h2, main.container .mdc-dialog .mdc-dialog__surface h3 {
      font-family: Work Sans;
      font-size: 18px;
      font-weight: 600;
      line-height: 24px;
      color: var(--dark-blue);
      margin: 0 0 12px; }
  main.container .mdc-dialog__actions {
    display: flex;
    flex-flow: row nowrap;
    justify-content: flex-end;
    gap: 12px; }
    main.container .mdc-dialog__actions .mdc-button {
      margin: 12px;
      border-radius: 30px;
      padding: 0 24px;
      height: 40px;
      font-size: 14px;
      font-weight: 600; }
    main.container .mdc-dialog__actions .dialog-btn--danger {
      background-color: var(--danger);
      --mdc-theme-primary: var(--danger);
      color: white; }
      main.container .mdc-dialog__actions .dialog-btn--danger .mdc-button__label {
        color: white; }
      main.container .mdc-dialog__actions .dialog-btn--danger:hover {
        background-color: #9A221B; }
      main.container .mdc-dialog__actions .dialog-btn--danger:disabled {
        opacity: 0.4; }
      main.container .mdc-dialog__actions .dialog-btn--danger .mdc-button__ripple::before,
      main.container .mdc-dialog__actions .dialog-btn--danger .mdc-button__ripple::after {
        background-color: rgba(255, 255, 255, 0.15); }
  main.container .bvec-infos {
    margin-bottom: 32px; }
    main.container .bvec-infos .info-card {
      border-radius: 10px;
      padding: 24px;
      background-color: var(--card-bg);
      color: var(--mdc-theme-primary);
      font-family: Work Sans;
      font-size: 16px;
      font-weight: 400;
      line-height: 16px;
      display: flex;
      flex-flow: row nowrap;
      gap: 24px; }
      main.container .bvec-infos .info-card h2, main.container .bvec-infos .info-card h3, main.container .bvec-infos .info-card h4, main.container .bvec-infos .info-card h5, main.container .bvec-infos .info-card h6 {
        text-transform: unset;
        margin: 12px 0;
        color: var(--mdc-theme-primary);
        font-family: Work Sans;
        font-weight: 600;
        line-height: 20px;
        letter-spacing: 0.15px; }
      main.container .bvec-infos .info-card .mdc-button {
        margin: 0;
        margin-top: 32px;
        border-color: var(--blue);
        border-width: 3px; }
        main.container .bvec-infos .info-card .mdc-button .mdc-button__label {
          color: var(--blue) !important; }
  main.container .info-card h2, main.container .info-card h3, main.container .info-card h4, main.container .info-card h5, main.container .info-card h6 {
    text-transform: unset;
    margin: 12px 0;
    color: var(--mdc-theme-primary);
    font-family: Work Sans;
    font-weight: 600;
    line-height: 20px;
    letter-spacing: 0.15px; }
  main.container .bvec-chips {
    display: flex;
    flex-flow: row wrap;
    gap: 12px;
    margin-bottom: 32px; }
    main.container .bvec-chips .mdc-chip {
      pointer-events: none;
      margin-left: 0;
      font-family: Work Sans;
      font-size: 10px;
      font-weight: 500;
      line-height: 7px;
      letter-spacing: 0.5px;
      text-transform: uppercase;
      background-color: #FDF2B8;
      height: 22px; }
      main.container .bvec-chips .mdc-chip i.material-symbols-outlined,
      main.container .bvec-chips .mdc-chip i.material-icons {
        font-size: 14px;
        margin-right: 4px; }
      main.container .bvec-chips .mdc-chip.pending {
        background-color: var(--light-orange);
        color: #E65100; }
      main.container .bvec-chips .mdc-chip.verified {
        background-color: #CEDF86; }
      main.container .bvec-chips .mdc-chip.owner {
        background-color: #C3F4E6; }
  main.container .lg-list {
    display: flex;
    flex-flow: row wrap;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 32px; }
    main.container .lg-list .lg-card {
      border-radius: 10px;
      display: flex;
      flex-flow: row nowrap;
      flex-grow: 1;
      background-color: var(--card-bg); }
      main.container .lg-list .lg-card .lg-card__media {
        width: 200px;
        border-radius: 10px; }
        main.container .lg-list .lg-card .lg-card__media img {
          width: 100%;
          border-radius: 10px 0 0 10px; }
      main.container .lg-list .lg-card .lg-card__content {
        padding: 24px;
        display: flex;
        flex-flow: column nowrap;
        justify-content: space-between;
        flex-grow: 1; }
        main.container .lg-list .lg-card .lg-card__content .lg-card__primary {
          display: flex;
          flex-flow: column; }
          main.container .lg-list .lg-card .lg-card__content .lg-card__primary h6 {
            margin: 12px 0; }
        main.container .lg-list .lg-card .lg-card__content .lg-card__secondary {
          display: flex;
          flex-flow: row nowrap;
          justify-content: space-between; }
  main.container .between {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: center; }
    main.container .between .list-count {
      font-size: 12px;
      font-weight: 600;
      color: var(--blue);
      background: rgba(33, 67, 231, 0.08);
      padding: 2px 10px;
      border-radius: 12px;
      line-height: 18px; }
  main.container .bvec-tasks {
    display: flex;
    flex-flow: row nowrap;
    gap: 12px;
    margin-bottom: 32px; }
    main.container .bvec-tasks .task-card {
      border-radius: 10px;
      padding: 32px;
      background-color: var(--card-bg);
      color: var(--mdc-theme-primary);
      font-family: Work Sans;
      font-size: 16px;
      font-weight: 400;
      line-height: 16px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      min-width: 25%; }
      main.container .bvec-tasks .task-card.disabled {
        pointer-events: none;
        opacity: 0.5; }
        main.container .bvec-tasks .task-card.disabled button {
          pointer-events: none;
          display: none; }
      main.container .bvec-tasks .task-card h3, main.container .bvec-tasks .task-card h6 {
        margin: 12px 0;
        color: var(--mdc-theme-primary);
        font-family: Work Sans;
        font-size: 20px;
        font-weight: 600;
        line-height: 20px;
        letter-spacing: 0.15px; }
      main.container .bvec-tasks .task-card .mdc-button.task-button {
        margin: 0;
        margin-top: 32px;
        border-color: var(--blue);
        border-width: 3px; }
        main.container .bvec-tasks .task-card .mdc-button.task-button .mdc-button__label {
          color: var(--blue) !important; }
      main.container .bvec-tasks .task-card .mdc-chip {
        pointer-events: none;
        margin-left: 0;
        font-family: Work Sans;
        font-size: 10px;
        font-weight: 500;
        line-height: 7px;
        letter-spacing: 0.5px;
        text-transform: uppercase;
        background-color: #F9DEDC;
        height: 22px; }
        main.container .bvec-tasks .task-card .mdc-chip i.material-icons {
          font-size: 14px; }
        main.container .bvec-tasks .task-card .mdc-chip.pending {
          background-color: var(--light-orange);
          color: #E65100; }
        main.container .bvec-tasks .task-card .mdc-chip.verified {
          background-color: #CEDF86; }
        main.container .bvec-tasks .task-card .mdc-chip.owner {
          background-color: #C3F4E6; }
        main.container .bvec-tasks .task-card .mdc-chip.suspended {
          background-color: #FFF3E0;
          color: #E65100; }
        main.container .bvec-tasks .task-card .mdc-chip.in-progress {
          background-color: #E8F5E9; }
        main.container .bvec-tasks .task-card .mdc-chip.scheduled {
          background-color: #EDE7F6;
          color: #4527A0; }
        main.container .bvec-tasks .task-card .mdc-chip.done {
          background-color: #CEDF86; }
  main.container .suspension-status__reason {
    display: block;
    font-family: Work Sans;
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
    color: var(--dark-blue);
    margin-bottom: 4px; }
  main.container .suspension-status__meta {
    display: block;
    font-family: Work Sans;
    font-size: 12px;
    font-weight: 400;
    color: var(--text-secondary);
    line-height: 18px; }
  main.container .task-action-inline {
    display: inline-block;
    margin-right: 8px; }
  main.container .task-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center; }
  main.container .bve-card__header-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap; }
    main.container .bve-card__header-row .status-chip {
      flex-shrink: 0; }
    main.container .bve-card__header-row p {
      margin: 0;
      line-height: 20px; }
  main.container .bve-card__info-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: var(--text-secondary);
    margin-right: 12px; }
    main.container .bve-card__info-item i {
      font-size: 16px;
      opacity: 0.6; }
  main.container .bve-card__list-names {
    font-size: 12px;
    color: var(--text-secondary);
    opacity: 0.8; }
  main.container .task-button--warning {
    border-color: var(--orange) !important; }
    main.container .task-button--warning .mdc-button__label {
      color: var(--orange) !important; }
  main.container .task-button--danger {
    border-color: var(--danger) !important; }
    main.container .task-button--danger .mdc-button__label {
      color: var(--danger) !important; }
  main.container .candidate-list .candidate-row {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 12px 16px;
    background: white;
    border-radius: 8px;
    margin-bottom: 4px; }
  main.container .candidate-list .candidate-avatar {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    object-fit: cover;
    flex-shrink: 0; }
    main.container .candidate-list .candidate-avatar--placeholder {
      background: var(--card-bg);
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 700;
      font-size: 18px;
      color: var(--blue); }
  main.container .candidate-list .candidate-info {
    flex: 1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    min-width: 0; }
    main.container .candidate-list .candidate-info > div:first-child {
      display: flex;
      flex-direction: column;
      min-width: 0; }
  main.container .candidate-list .candidate-name {
    font-size: 14px;
    line-height: 20px;
    color: var(--dark-blue);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis; }
  main.container .candidate-list .candidate-org {
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 16px; }
  main.container .candidate-list .candidate-doc-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: var(--blue);
    text-decoration: none; }
    main.container .candidate-list .candidate-doc-link i {
      font-size: 16px; }
    main.container .candidate-list .candidate-doc-link--disabled {
      color: var(--text-secondary);
      opacity: 0.5;
      pointer-events: none; }
  main.container .candidate-list .candidate-score {
    font-size: 13px;
    color: var(--dark-blue);
    white-space: nowrap;
    margin-left: 16px; }
  main.container .candidate-list candidate-actions-menu {
    position: relative;
    flex-shrink: 0; }
    main.container .candidate-list candidate-actions-menu .candidate-menu-trigger {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 32px;
      height: 32px;
      border-radius: 50%;
      cursor: pointer;
      color: var(--text-secondary);
      transition: background 0.15s, color 0.15s; }
      main.container .candidate-list candidate-actions-menu .candidate-menu-trigger i {
        font-size: 20px; }
      main.container .candidate-list candidate-actions-menu .candidate-menu-trigger:hover {
        background: rgba(0, 0, 0, 0.06);
        color: var(--blue); }
    main.container .candidate-list candidate-actions-menu .candidate-dropdown {
      visibility: hidden;
      pointer-events: none;
      position: fixed;
      z-index: 100;
      background: white;
      border-radius: 8px;
      box-shadow: 0 4px 16px rgba(5, 46, 102, 0.12), 0 0 0 1px rgba(5, 46, 102, 0.04);
      min-width: 150px;
      display: flex;
      flex-direction: column;
      overflow: visible;
      padding: 4px 0; }
      main.container .candidate-list candidate-actions-menu .candidate-dropdown.open {
        visibility: visible;
        pointer-events: auto; }
      main.container .candidate-list candidate-actions-menu .candidate-dropdown .candidate-menu-item,
      main.container .candidate-list candidate-actions-menu .candidate-dropdown d-button > button,
      main.container .candidate-list candidate-actions-menu .candidate-dropdown d-button > a {
        all: unset;
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 8px 14px;
        font-family: Work Sans;
        font-size: 13px;
        font-weight: 500;
        letter-spacing: 0.1px;
        text-decoration: none;
        cursor: pointer;
        transition: background 0.15s;
        white-space: nowrap;
        box-sizing: border-box;
        width: 100%; }
        main.container .candidate-list candidate-actions-menu .candidate-dropdown .candidate-menu-item i,
        main.container .candidate-list candidate-actions-menu .candidate-dropdown d-button > button i,
        main.container .candidate-list candidate-actions-menu .candidate-dropdown d-button > a i {
          font-size: 18px;
          opacity: 0.7; }
      main.container .candidate-list candidate-actions-menu .candidate-dropdown .candidate-menu-item {
        color: var(--dark-blue); }
        main.container .candidate-list candidate-actions-menu .candidate-dropdown .candidate-menu-item:hover {
          background: #F5F9FF; }
          main.container .candidate-list candidate-actions-menu .candidate-dropdown .candidate-menu-item:hover i {
            opacity: 1; }
      main.container .candidate-list candidate-actions-menu .candidate-dropdown confirm-delete {
        display: contents; }
      main.container .candidate-list candidate-actions-menu .candidate-dropdown d-button {
        display: contents; }
        main.container .candidate-list candidate-actions-menu .candidate-dropdown d-button > button, main.container .candidate-list candidate-actions-menu .candidate-dropdown d-button > a {
          color: var(--danger); }
          main.container .candidate-list candidate-actions-menu .candidate-dropdown d-button > button:hover, main.container .candidate-list candidate-actions-menu .candidate-dropdown d-button > a:hover {
            background: rgba(179, 38, 30, 0.04); }
            main.container .candidate-list candidate-actions-menu .candidate-dropdown d-button > button:hover i, main.container .candidate-list candidate-actions-menu .candidate-dropdown d-button > a:hover i {
              opacity: 1; }
          main.container .candidate-list candidate-actions-menu .candidate-dropdown d-button > button .mdc-button__ripple, main.container .candidate-list candidate-actions-menu .candidate-dropdown d-button > a .mdc-button__ripple {
            display: none; }
      main.container .candidate-list candidate-actions-menu .candidate-dropdown mdc-dialog {
        visibility: visible;
        pointer-events: auto; }
  main.container .ensap-voters-page {
    width: 100%; }
    main.container .ensap-voters-page .hint {
      font-size: 13px;
      color: var(--text-secondary);
      line-height: 18px;
      margin-bottom: 12px; }
    main.container .ensap-voters-page .ensap-search {
      display: flex;
      align-items: center;
      gap: 8px;
      max-width: 360px;
      margin-bottom: 12px;
      padding: 8px 12px;
      border: 1px solid var(--border-light);
      border-radius: 8px;
      background: white; }
      main.container .ensap-voters-page .ensap-search .material-icons {
        font-size: 18px;
        color: var(--text-secondary);
        opacity: 0.6; }
      main.container .ensap-voters-page .ensap-search .ensap-search-input {
        flex: 1;
        border: none;
        outline: none;
        background: transparent;
        font-family: Work Sans;
        font-size: 14px;
        color: var(--mdc-theme-primary); }
        main.container .ensap-voters-page .ensap-search .ensap-search-input::placeholder {
          color: var(--text-secondary);
          opacity: 0.6; }
    main.container .ensap-voters-page .ensap-count {
      display: block;
      font-size: 13px;
      font-weight: 600;
      color: var(--dark-blue);
      margin-bottom: 8px; }
    main.container .ensap-voters-page .ensap-table {
      width: 100%;
      border-collapse: collapse;
      table-layout: fixed; }
      main.container .ensap-voters-page .ensap-table th, main.container .ensap-voters-page .ensap-table td {
        padding: 12px 16px;
        text-align: left;
        vertical-align: middle; }
      main.container .ensap-voters-page .ensap-table th.ensap-status, main.container .ensap-voters-page .ensap-table td.ensap-status {
        text-align: center; }
      main.container .ensap-voters-page .ensap-table .status-chip {
        display: inline-flex;
        align-items: center;
        gap: 4px;
        white-space: nowrap; }
      main.container .ensap-voters-page .ensap-table thead th {
        padding: 8px 16px;
        font-size: 11px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.6px;
        color: var(--text-secondary);
        opacity: 0.7;
        border-bottom: 1px solid var(--border-light); }
      main.container .ensap-voters-page .ensap-table tbody td {
        font-size: 14px;
        color: var(--text-secondary);
        border-bottom: 1px solid var(--border-light); }
      main.container .ensap-voters-page .ensap-table tbody tr:hover {
        background-color: #F5F9FF; }
      main.container .ensap-voters-page .ensap-table .ensap-ref {
        width: 18%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap; }
      main.container .ensap-voters-page .ensap-table .ensap-name {
        width: 34%; }
        main.container .ensap-voters-page .ensap-table .ensap-name b {
          font-weight: 600;
          color: var(--dark-blue); }
        main.container .ensap-voters-page .ensap-table .ensap-name .secondary {
          display: block;
          font-size: 12px;
          margin-top: 2px; }
      main.container .ensap-voters-page .ensap-table th.ensap-actions, main.container .ensap-voters-page .ensap-table td.ensap-actions {
        width: 160px;
        text-align: center; }
      main.container .ensap-voters-page .ensap-table .ensap-reset-btn {
        white-space: nowrap; }
      main.container .ensap-voters-page .ensap-table .empty-row {
        font-style: italic;
        opacity: 0.6;
        text-align: center; }
  main.container .bvec-members-list {
    width: 100%;
    background-color: var(--card-bg);
    color: var(--mdc-theme-primary);
    margin-bottom: 16px;
    border-radius: 10px;
    overflow: hidden;
    /* Accordion toggle header */
    /* Column header row */
    /* Accordion menu content area */
    /* Data rows */
    /* Empty state */
    /* Shared column widths */
    /* Role badge */
    /* Key badge */
    /* Key holder status icons */
    /* Status badge (shared for votes, downloads, uploads) */ }
    main.container .bvec-members-list mdc-accordion-toggle,
    main.container .bvec-members-list mdc-accordion-toggle:hover,
    main.container .bvec-members-list mdc-accordion-toggle:focus,
    main.container .bvec-members-list mdc-accordion-toggle:active {
      font-family: Work Sans;
      font-size: 15px;
      font-weight: 600;
      line-height: 24px;
      letter-spacing: 0.1px;
      text-transform: unset;
      color: var(--dark-blue);
      background-color: var(--card-bg);
      padding: 14px 16px;
      margin: 0;
      border-bottom: 1px solid var(--border-light); }
      main.container .bvec-members-list mdc-accordion-toggle .mdc-list-item__ripple,
      main.container .bvec-members-list mdc-accordion-toggle:hover .mdc-list-item__ripple,
      main.container .bvec-members-list mdc-accordion-toggle:focus .mdc-list-item__ripple,
      main.container .bvec-members-list mdc-accordion-toggle:active .mdc-list-item__ripple {
        display: none; }
      main.container .bvec-members-list mdc-accordion-toggle[aria-expanded="true"],
      main.container .bvec-members-list mdc-accordion-toggle:hover[aria-expanded="true"],
      main.container .bvec-members-list mdc-accordion-toggle:focus[aria-expanded="true"],
      main.container .bvec-members-list mdc-accordion-toggle:active[aria-expanded="true"] {
        border-bottom-color: var(--border-light); }
      main.container .bvec-members-list mdc-accordion-toggle[aria-expanded="false"],
      main.container .bvec-members-list mdc-accordion-toggle:hover[aria-expanded="false"],
      main.container .bvec-members-list mdc-accordion-toggle:focus[aria-expanded="false"],
      main.container .bvec-members-list mdc-accordion-toggle:active[aria-expanded="false"] {
        border-bottom-color: transparent; }
    main.container .bvec-members-list .list-header {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 8px 16px;
      border-bottom: 1px solid var(--border-light); }
      main.container .bvec-members-list .list-header .col-header {
        font-family: Work Sans;
        font-size: 11px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.6px;
        color: var(--text-secondary);
        opacity: 0.7; }
    main.container .bvec-members-list mdc-accordion-menu {
      width: 100%;
      padding: 8px 12px 12px; }
    main.container .bvec-members-list .mdc-deprecated-list-item:not(mdc-accordion-toggle) {
      background-color: white;
      margin-bottom: 3px;
      border-radius: 8px;
      color: var(--text-secondary);
      min-height: 44px;
      height: auto;
      padding: 8px 16px;
      width: 100%;
      box-sizing: border-box;
      transition: background-color 0.15s ease; }
      main.container .bvec-members-list .mdc-deprecated-list-item:not(mdc-accordion-toggle):hover {
        background-color: #F5F9FF; }
      main.container .bvec-members-list .mdc-deprecated-list-item:not(mdc-accordion-toggle) .mdc-deprecated-list-item__text {
        width: 100%;
        display: flex;
        align-items: center;
        gap: 8px;
        font-family: Work Sans;
        font-size: 14px;
        font-weight: 400;
        line-height: 20px;
        letter-spacing: 0.1px; }
        main.container .bvec-members-list .mdc-deprecated-list-item:not(mdc-accordion-toggle) .mdc-deprecated-list-item__text b {
          font-weight: 600;
          color: var(--dark-blue); }
    main.container .bvec-members-list .empty-row {
      font-style: italic;
      color: var(--text-secondary);
      opacity: 0.6;
      font-size: 13px; }
    main.container .bvec-members-list .col--name,
    main.container .bvec-members-list .col-header.col--name {
      width: 30%;
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap; }
    main.container .bvec-members-list .col--email,
    main.container .bvec-members-list .col-header.col--email {
      width: 35%;
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap; }
    main.container .bvec-members-list .col--role,
    main.container .bvec-members-list .col-header.col--role {
      width: 15%; }
    main.container .bvec-members-list .col--key,
    main.container .bvec-members-list .col--status,
    main.container .bvec-members-list .col-header.col--status {
      width: 32px;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center; }
    main.container .bvec-members-list .col--badge {
      width: 15%;
      flex-shrink: 0; }
    main.container .bvec-members-list .role-badge {
      font-size: 12px;
      font-weight: 500;
      color: var(--blue);
      background: rgba(33, 67, 231, 0.08);
      padding: 2px 10px;
      border-radius: 12px;
      white-space: nowrap;
      line-height: 18px; }
    main.container .bvec-members-list .key-badge {
      width: 32px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0; }
      main.container .bvec-members-list .key-badge i {
        font-size: 18px;
        color: var(--text-secondary);
        opacity: 0.4; }
    main.container .bvec-members-list .key-icon {
      font-size: 18px; }
      main.container .bvec-members-list .key-icon--pending {
        color: var(--text-secondary);
        opacity: 0.4; }
      main.container .bvec-members-list .key-icon--downloaded {
        color: var(--orange); }
      main.container .bvec-members-list .key-icon--verified {
        color: #4CAF50; }
    main.container .bvec-members-list .status-badge {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      font-size: 12px;
      font-weight: 500;
      padding: 3px 10px;
      border-radius: 12px;
      white-space: nowrap;
      line-height: 18px; }
      main.container .bvec-members-list .status-badge i {
        font-size: 14px; }
      main.container .bvec-members-list .status-badge--success {
        color: #2E7D32;
        background: rgba(76, 175, 80, 0.1); }
        main.container .bvec-members-list .status-badge--success i {
          color: #4CAF50; }
      main.container .bvec-members-list .status-badge--pending {
        color: var(--text-secondary);
        background: rgba(0, 0, 0, 0.04); }
        main.container .bvec-members-list .status-badge--pending i {
          color: var(--text-secondary);
          opacity: 0.5; }
      main.container .bvec-members-list .status-badge--error {
        color: var(--danger);
        background: rgba(179, 38, 30, 0.08); }
        main.container .bvec-members-list .status-badge--error i {
          color: var(--danger); }
  main.container .page-title__container {
    margin-top: 2rem;
    margin-bottom: 1rem;
    display: flex;
    flex-flow: row nowrap;
    gap: 2px;
    justify-content: space-between;
    align-items: center; }
    main.container .page-title__container .mdc-button {
      padding: 24px;
      margin: 0;
      color: var(--dark-blue);
      border-radius: 30px;
      box-shadow: none;
      --mdc-theme-primary: #E2EEFF; }
      main.container .page-title__container .mdc-button .mdc-button__label {
        color: var(--dark-blue);
        border-radius: 30px;
        display: flex;
        align-items: center;
        box-shadow: none;
        text-decoration: none;
        background-color: transparent; }
      main.container .page-title__container .mdc-button:link, main.container .page-title__container .mdc-button:visited, main.container .page-title__container .mdc-button:active, main.container .page-title__container .mdc-button:hover, main.container .page-title__container .mdc-button:focus {
        text-decoration: none;
        box-shadow: none; }
        main.container .page-title__container .mdc-button:link .mdc-button__label, main.container .page-title__container .mdc-button:visited .mdc-button__label, main.container .page-title__container .mdc-button:active .mdc-button__label, main.container .page-title__container .mdc-button:hover .mdc-button__label, main.container .page-title__container .mdc-button:focus .mdc-button__label {
          text-decoration: none; }
      main.container .page-title__container .mdc-button:focus, main.container .page-title__container .mdc-button:hover {
        --mdc-theme-primary: #D2E2FF; }
    main.container .page-title__container h1, main.container .page-title__container h2, main.container .page-title__container h5 {
      display: flex; }
    main.container .page-title__container .page-overtitle, main.container .page-title__container .page-title, main.container .page-title__container .page-subtitle {
      margin: 0;
      color: var(--mdc-theme-primary); }
    main.container .page-title__container .page-title {
      font-family: Work Sans;
      font-size: 32px;
      font-weight: 700;
      line-height: 40px;
      text-transform: unset; }
      main.container .page-title__container .page-title.page-title--small {
        font-size: 24px;
        font-weight: 600;
        line-height: 32px; }
    main.container .page-title__container .page-subtitle {
      font-family: Work Sans;
      font-size: 18px;
      font-weight: 500;
      line-height: 24px; }
    main.container .page-title__container.page-title__container--main {
      margin-top: 0;
      padding-bottom: 1.25rem;
      margin-bottom: 1.5rem;
      border-bottom: 2px solid rgba(0, 0, 0, 0.06); }
      main.container .page-title__container.page-title__container--main .page-title {
        color: var(--dark-blue, var(--mdc-theme-primary)); }

/* ==========================================================================
   Top panel
   ========================================================================== */
.top-panel {
  background-color: whitesmoke;
  color: var(--black); }
  .top-panel .top-panel-logo {
    background-image: url("/static/logo-france.22e35c3244b6.svg"); }
  .top-panel span {
    width: 250px !important;
    text-align: center; }

/* ==========================================================================
   Form utilities
   ========================================================================== */
.form--fullwidth .form--filter__container {
  display: flex;
  align-items: center;
  flex-flow: row nowrap;
  gap: 24px; }
  .form--fullwidth .form--filter__container .MDCField {
    flex-grow: 1;
    height: 40px;
    --mdc-shape-small: 30px; }
    .form--fullwidth .form--filter__container .MDCField input {
      height: 40px !important;
      padding: 0 !important;
      margin: 0 !important;
      font-size: 16px; }
    .form--fullwidth .form--filter__container .MDCField label.mdc-text-field--outlined {
      margin-bottom: 24px;
      height: 40px; }
      .form--fullwidth .form--filter__container .MDCField label.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading,
      .form--fullwidth .form--filter__container .MDCField label.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch,
      .form--fullwidth .form--filter__container .MDCField label.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing {
        height: 40px; }
        .form--fullwidth .form--filter__container .MDCField label.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__leading .mdc-floating-label--float-above,
        .form--fullwidth .form--filter__container .MDCField label.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__notch .mdc-floating-label--float-above,
        .form--fullwidth .form--filter__container .MDCField label.mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing .mdc-floating-label--float-above {
          transform: translateY(-30px) translateX(-32px) scale(0.75); }
  .form--fullwidth .form--filter__container .mdc-button {
    --mdc-theme-primary: var(--card-bg) !important;
    box-shadow: 0 0 0 0;
    color: var(--dark-blue);
    margin: 24px 0; }

.split-datetime {
  margin-top: 12px;
  display: flex;
  gap: 12px; }
  .split-datetime .MDCField {
    margin-bottom: 0 !important; }
    .split-datetime .MDCField:nth-child(1) {
      flex-grow: 1; }

.form.no-notch .MDCField {
  display: inline-flex;
  width: 64px;
  height: 96px;
  margin: 12px; }
  .form.no-notch .MDCField label {
    height: 100%;
    margin-bottom: 16px; }
    .form.no-notch .MDCField label input {
      font-size: 32px;
      text-align: center; }

.form.no-notch .mdc-notched-outline__notch {
  display: none; }

/* ==========================================================================
   Chips (global)
   ========================================================================== */
.mdc-chip {
  text-transform: uppercase;
  margin: 0 4px;
  padding: 4px 8px;
  border-radius: 3px;
  color: var(--dark-blue); }
  .mdc-chip i {
    margin-right: 4px; }
  .mdc-chip.election-chip {
    background-color: #F9DEDC; }
  .mdc-chip.created-chip {
    background-color: #C9E0FF; }

/* ==========================================================================
   Status chips
   ========================================================================== */
.status-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  border-radius: 16px;
  font-family: Work Sans;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px; }
  .status-chip i {
    font-size: 16px; }
  .status-chip.status--setup {
    background: #E8EAF6;
    color: #283593; }
  .status-chip.status--pending {
    background: var(--light-orange);
    color: #E65100; }
  .status-chip.status--running {
    background: #E8F5E9;
    color: #2E7D32; }
  .status-chip.status--ready {
    background: #E0F7FA;
    color: #00695C; }
  .status-chip.status--scheduled {
    background: #EDE7F6;
    color: #4527A0; }
  .status-chip.status--closed {
    background: #ECEFF1;
    color: #37474F; }
  .status-chip.status--done {
    background: #F1F8E9;
    color: #33691E; }
  .status-chip.status--suspended {
    background: #FFF3E0;
    color: #E65100; }
  .status-chip.status--error {
    background: #FFEBEE;
    color: var(--danger); }
  .status-chip.severity--low {
    background: #E8F5E9;
    color: #2E7D32; }
  .status-chip.severity--medium {
    background: #FFF3E0;
    color: #E65100; }
  .status-chip.severity--high {
    background: #FFEBEE;
    color: #B3261E; }
  .status-chip.severity--critical {
    background: #B3261E;
    color: white; }

/* ==========================================================================
   Election detail layout
   ========================================================================== */
.election-detail__info {
  color: var(--mdc-theme-primary);
  font-family: Work Sans;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 24px; }
  .election-detail__info p {
    display: inline-block;
    margin: 0;
    margin-right: 12px;
    line-height: 20px; }

.election-detail__actions {
  display: flex;
  flex-flow: row nowrap;
  gap: 12px;
  margin-bottom: 32px; }
  .election-detail__actions--stacked {
    flex-flow: column nowrap;
    align-items: flex-start;
    gap: 8px; }
  .election-detail__actions-label {
    color: var(--dark-blue, #052E66);
    font-weight: 500;
    font-size: 14px; }
  .election-detail__actions-row {
    display: flex;
    flex-flow: row wrap;
    gap: 12px; }

/* ==========================================================================
   Configure page (Excel bureau import)
   ========================================================================== */
.configure-intro {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  background: var(--card-bg, #EFF5FF);
  border-radius: 12px;
  padding: 24px;
  margin: 16px 0 28px; }
  .configure-intro__icon-wrap {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: white;
    display: flex;
    align-items: center;
    justify-content: center; }
  .configure-intro__icon {
    color: var(--dark-blue, #052E66);
    font-size: 30px; }
  .configure-intro__text {
    flex: 1; }
  .configure-intro__title {
    font-family: Work Sans;
    font-size: 22px;
    font-weight: 600;
    color: var(--dark-blue, #052E66);
    margin: 0 0 8px; }
  .configure-intro__lead {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--text-secondary, #4F5B66); }

.configure-section {
  margin-bottom: 32px; }
  .configure-section__title {
    font-family: Work Sans;
    font-size: 16px;
    font-weight: 600;
    color: var(--dark-blue, #052E66);
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin: 0 0 16px; }
  .configure-section--upload .form-description {
    margin-top: 0; }

.configure-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px; }

.configure-step {
  background: white;
  border: 1px solid rgba(5, 46, 102, 0.08);
  border-radius: 10px;
  padding: 16px 18px; }
  .configure-step__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px; }
  .configure-step__num {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--dark-blue, #052E66);
    color: white;
    font-weight: 600;
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    justify-content: center; }
  .configure-step__icon {
    color: var(--light-blue, #29ADFF);
    font-size: 22px; }
  .configure-step__title {
    font-family: Work Sans;
    font-size: 14px;
    font-weight: 600;
    color: var(--dark-blue, #052E66);
    margin: 0 0 6px; }
  .configure-step__body {
    font-size: 13px;
    line-height: 1.5;
    color: var(--text-secondary, #4F5B66); }
    .configure-step__body p {
      margin: 0; }
    .configure-step__body a {
      color: var(--dark-blue, #052E66);
      font-weight: 600;
      text-decoration: underline; }

.empty-state {
  text-align: center;
  padding: 64px 24px;
  color: var(--text-secondary);
  font-family: Work Sans;
  font-size: 16px;
  background: var(--card-bg);
  border-radius: 10px; }
  .empty-state p {
    margin-top: 12px; }

/* ---------- Election list ---------- */
.election-list__actions {
  display: flex;
  flex-flow: row nowrap;
  gap: 10px;
  align-items: center; }

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

/* ---------- Election card ---------- */
.election-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  border-radius: 10px;
  background: var(--card-bg);
  color: var(--dark-blue);
  transition: background 0.15s, box-shadow 0.15s; }
  .election-card:hover {
    background: #E3EDFF;
    box-shadow: 0 2px 8px rgba(5, 46, 102, 0.08); }

.election-card__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px; }

.election-card__header {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap; }

.election-card__title {
  font-family: Work Sans;
  font-size: 17px;
  font-weight: 600;
  color: var(--dark-blue); }

.election-card__info {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px; }

.election-card__info-item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: Work Sans;
  font-size: 13px;
  color: var(--text-secondary); }
  .election-card__info-item i {
    font-size: 16px;
    opacity: 0.6; }

.election-card__arrow {
  flex-shrink: 0;
  font-size: 22px;
  color: var(--text-secondary);
  opacity: 0.5;
  transition: opacity 0.15s; }
  .election-card:hover .election-card__arrow {
    opacity: 1; }

/* ---------- Upcoming events ---------- */
.upcoming-events {
  margin-bottom: 8px; }

.upcoming-events__group {
  background: var(--card-bg);
  border-radius: 10px;
  padding: 0;
  margin-bottom: 10px;
  overflow: hidden; }

.upcoming-events__group-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border-light);
  font-family: Work Sans;
  font-size: 14px;
  font-weight: 600;
  color: var(--dark-blue); }

.upcoming-events__group-title {
  flex: 1; }

.upcoming-events__group--action .upcoming-events__group-header {
  color: var(--orange); }

.upcoming-events__row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  background: white;
  margin: 4px 8px;
  border-radius: 8px;
  text-decoration: none;
  color: var(--dark-blue);
  transition: background 0.15s; }
  .upcoming-events__row:hover {
    background: #F5F8FF; }
  .upcoming-events__row:first-of-type {
    margin-top: 8px; }
  .upcoming-events__row:last-child {
    margin-bottom: 8px; }

.upcoming-events__col {
  font-family: Work Sans;
  font-size: 13px;
  line-height: 1.4; }

.upcoming-events__col--icon {
  flex: 0 0 28px;
  display: flex;
  align-items: center;
  justify-content: center; }
  .upcoming-events__col--icon i {
    font-size: 20px;
    color: var(--dark-blue);
    opacity: 0.7; }

.upcoming-events__col--info {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0; }

.upcoming-events__label {
  font-weight: 600;
  font-size: 13px;
  color: var(--dark-blue); }

.upcoming-events__detail {
  font-size: 12px;
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.upcoming-events__col--owner {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--text-secondary);
  white-space: nowrap; }

.upcoming-events__col--date {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  text-align: right;
  min-width: 120px; }

.upcoming-events__date-text {
  font-size: 13px;
  font-weight: 500;
  color: var(--dark-blue); }

.upcoming-events__relative {
  font-size: 11px;
  color: var(--text-secondary); }

.upcoming-events__action-badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 12px;
  background: var(--light-orange);
  color: var(--orange);
  font-size: 12px;
  font-weight: 600; }

.bvec-audit-section,
.bve-audit-section,
.audit-dashboard .tfa-section {
  margin-top: 1rem; }
  .bvec-audit-section mdc-accordion > mdc-accordion-section,
  .bve-audit-section mdc-accordion > mdc-accordion-section,
  .audit-dashboard .tfa-section mdc-accordion > mdc-accordion-section {
    background-color: var(--card-bg);
    border-radius: 10px;
    margin-bottom: 12px;
    overflow: hidden; }
  .bvec-audit-section mdc-accordion-toggle,
  .bvec-audit-section mdc-accordion-toggle:hover,
  .bvec-audit-section mdc-accordion-toggle:focus,
  .bvec-audit-section mdc-accordion-toggle:active,
  .bve-audit-section mdc-accordion-toggle,
  .bve-audit-section mdc-accordion-toggle:hover,
  .bve-audit-section mdc-accordion-toggle:focus,
  .bve-audit-section mdc-accordion-toggle:active,
  .audit-dashboard .tfa-section mdc-accordion-toggle,
  .audit-dashboard .tfa-section mdc-accordion-toggle:hover,
  .audit-dashboard .tfa-section mdc-accordion-toggle:focus,
  .audit-dashboard .tfa-section mdc-accordion-toggle:active {
    font-family: Work Sans;
    font-size: 15px;
    font-weight: 600;
    line-height: 24px;
    letter-spacing: 0.1px;
    text-transform: unset;
    color: var(--dark-blue);
    background-color: var(--card-bg);
    padding: 14px 16px;
    margin: 0;
    border-bottom: 1px solid var(--border-light); }
    .bvec-audit-section mdc-accordion-toggle .mdc-list-item__ripple,
    .bvec-audit-section mdc-accordion-toggle:hover .mdc-list-item__ripple,
    .bvec-audit-section mdc-accordion-toggle:focus .mdc-list-item__ripple,
    .bvec-audit-section mdc-accordion-toggle:active .mdc-list-item__ripple,
    .bve-audit-section mdc-accordion-toggle .mdc-list-item__ripple,
    .bve-audit-section mdc-accordion-toggle:hover .mdc-list-item__ripple,
    .bve-audit-section mdc-accordion-toggle:focus .mdc-list-item__ripple,
    .bve-audit-section mdc-accordion-toggle:active .mdc-list-item__ripple,
    .audit-dashboard .tfa-section mdc-accordion-toggle .mdc-list-item__ripple,
    .audit-dashboard .tfa-section mdc-accordion-toggle:hover .mdc-list-item__ripple,
    .audit-dashboard .tfa-section mdc-accordion-toggle:focus .mdc-list-item__ripple,
    .audit-dashboard .tfa-section mdc-accordion-toggle:active .mdc-list-item__ripple {
      display: none; }
    .bvec-audit-section mdc-accordion-toggle[aria-expanded="false"],
    .bvec-audit-section mdc-accordion-toggle:hover[aria-expanded="false"],
    .bvec-audit-section mdc-accordion-toggle:focus[aria-expanded="false"],
    .bvec-audit-section mdc-accordion-toggle:active[aria-expanded="false"],
    .bve-audit-section mdc-accordion-toggle[aria-expanded="false"],
    .bve-audit-section mdc-accordion-toggle:hover[aria-expanded="false"],
    .bve-audit-section mdc-accordion-toggle:focus[aria-expanded="false"],
    .bve-audit-section mdc-accordion-toggle:active[aria-expanded="false"],
    .audit-dashboard .tfa-section mdc-accordion-toggle[aria-expanded="false"],
    .audit-dashboard .tfa-section mdc-accordion-toggle:hover[aria-expanded="false"],
    .audit-dashboard .tfa-section mdc-accordion-toggle:focus[aria-expanded="false"],
    .audit-dashboard .tfa-section mdc-accordion-toggle:active[aria-expanded="false"] {
      border-bottom-color: transparent; }
  .bvec-audit-section mdc-accordion-menu,
  .bve-audit-section mdc-accordion-menu,
  .audit-dashboard .tfa-section mdc-accordion-menu {
    width: 100%;
    padding: 8px 12px 12px; }
  .bvec-audit-section .mdc-deprecated-list-item:not(mdc-accordion-toggle),
  .bve-audit-section .mdc-deprecated-list-item:not(mdc-accordion-toggle),
  .audit-dashboard .tfa-section .mdc-deprecated-list-item:not(mdc-accordion-toggle) {
    background-color: white;
    margin-bottom: 3px;
    border-radius: 8px;
    color: var(--text-secondary);
    min-height: 40px;
    height: auto;
    padding: 6px 16px;
    width: 100%;
    box-sizing: border-box; }
    .bvec-audit-section .mdc-deprecated-list-item:not(mdc-accordion-toggle) .mdc-deprecated-list-item__text,
    .bve-audit-section .mdc-deprecated-list-item:not(mdc-accordion-toggle) .mdc-deprecated-list-item__text,
    .audit-dashboard .tfa-section .mdc-deprecated-list-item:not(mdc-accordion-toggle) .mdc-deprecated-list-item__text {
      width: 100%;
      display: flex;
      align-items: center;
      gap: 8px;
      font-family: Work Sans;
      font-size: 13px;
      font-weight: 400;
      line-height: 20px;
      letter-spacing: 0.1px; }
      .bvec-audit-section .mdc-deprecated-list-item:not(mdc-accordion-toggle) .mdc-deprecated-list-item__text b,
      .bve-audit-section .mdc-deprecated-list-item:not(mdc-accordion-toggle) .mdc-deprecated-list-item__text b,
      .audit-dashboard .tfa-section .mdc-deprecated-list-item:not(mdc-accordion-toggle) .mdc-deprecated-list-item__text b {
        font-weight: 600;
        color: var(--dark-blue); }
  .bvec-audit-section .audit-kv-row,
  .bve-audit-section .audit-kv-row,
  .audit-dashboard .tfa-section .audit-kv-row {
    background-color: white;
    margin-bottom: 3px;
    border-radius: 8px; }
  .bvec-audit-section .audit-pending-notice,
  .bve-audit-section .audit-pending-notice,
  .audit-dashboard .tfa-section .audit-pending-notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 16px;
    background: white;
    border-radius: 8px;
    font-family: Work Sans;
    font-size: 13px;
    font-weight: 400;
    line-height: 20px;
    color: var(--text-secondary); }
    .bvec-audit-section .audit-pending-notice i,
    .bve-audit-section .audit-pending-notice i,
    .audit-dashboard .tfa-section .audit-pending-notice i {
      font-size: 18px;
      color: var(--blue);
      flex-shrink: 0;
      margin-top: 1px; }
  .bvec-audit-section .cnil-section-chips,
  .bve-audit-section .cnil-section-chips,
  .audit-dashboard .tfa-section .cnil-section-chips {
    display: inline-flex;
    gap: 4px;
    margin-left: 8px;
    flex-wrap: wrap;
    vertical-align: middle; }
  .bvec-audit-section .cnil-chip,
  .bve-audit-section .cnil-chip,
  .audit-dashboard .tfa-section .cnil-chip {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 500;
    font-family: Work Sans;
    line-height: 16px; }
  .bvec-audit-section .cnil-chip--done,
  .bve-audit-section .cnil-chip--done,
  .audit-dashboard .tfa-section .cnil-chip--done {
    background: #e8f5e9;
    color: #2e7d32; }
  .bvec-audit-section .cnil-chip--partial,
  .bve-audit-section .cnil-chip--partial,
  .audit-dashboard .tfa-section .cnil-chip--partial {
    background: #fff3e0;
    color: #bf360c; }
  .bvec-audit-section .cnil-chip--na,
  .bve-audit-section .cnil-chip--na,
  .audit-dashboard .tfa-section .cnil-chip--na {
    background: #f5f5f5;
    color: #424242; }
  .bvec-audit-section .audit-section-label-with-cnil,
  .bve-audit-section .audit-section-label-with-cnil,
  .audit-dashboard .tfa-section .audit-section-label-with-cnil {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap; }
  .bvec-audit-section .cnil-level-header,
  .bve-audit-section .cnil-level-header,
  .audit-dashboard .tfa-section .cnil-level-header {
    font-weight: 600;
    font-size: 14px;
    padding: 12px 16px 4px;
    color: var(--text-primary);
    border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
  .bvec-audit-section .cnil-objective-row,
  .bve-audit-section .cnil-objective-row,
  .audit-dashboard .tfa-section .cnil-objective-row {
    display: flex;
    align-items: center;
    padding: 8px 16px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05); }
    .bvec-audit-section .cnil-objective-row:last-child,
    .bve-audit-section .cnil-objective-row:last-child,
    .audit-dashboard .tfa-section .cnil-objective-row:last-child {
      border-bottom: none; }
    .bvec-audit-section .cnil-objective-row > span,
    .bve-audit-section .cnil-objective-row > span,
    .audit-dashboard .tfa-section .cnil-objective-row > span {
      flex-shrink: 0;
      box-sizing: border-box;
      padding-right: 8px; }
  .bvec-audit-section .cnil-objective-id,
  .bve-audit-section .cnil-objective-id,
  .audit-dashboard .tfa-section .cnil-objective-id {
    font-family: monospace;
    font-weight: 600;
    font-size: 13px; }
  .bvec-audit-section .cnil-objective-title,
  .bve-audit-section .cnil-objective-title,
  .audit-dashboard .tfa-section .cnil-objective-title {
    font-size: 13px; }
  .bvec-audit-section .cnil-objective-evidence,
  .bve-audit-section .cnil-objective-evidence,
  .audit-dashboard .tfa-section .cnil-objective-evidence {
    font-size: 12px;
    color: var(--text-secondary); }
  .bvec-audit-section audit-trail-filter,
  .bve-audit-section audit-trail-filter,
  .audit-dashboard .tfa-section audit-trail-filter {
    display: flex;
    align-items: center;
    padding: 4px 4px 8px; }
    .bvec-audit-section audit-trail-filter .audit-trail-filter__toggle,
    .bve-audit-section audit-trail-filter .audit-trail-filter__toggle,
    .audit-dashboard .tfa-section audit-trail-filter .audit-trail-filter__toggle {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      cursor: pointer;
      font-family: Work Sans;
      font-size: 12px;
      font-weight: 500;
      color: var(--text-secondary);
      user-select: none;
      padding: 4px 12px;
      border-radius: 16px;
      background: white;
      transition: background 0.15s; }
      .bvec-audit-section audit-trail-filter .audit-trail-filter__toggle:hover,
      .bve-audit-section audit-trail-filter .audit-trail-filter__toggle:hover,
      .audit-dashboard .tfa-section audit-trail-filter .audit-trail-filter__toggle:hover {
        background: #F5F9FF; }
      .bvec-audit-section audit-trail-filter .audit-trail-filter__toggle input[type=checkbox],
      .bve-audit-section audit-trail-filter .audit-trail-filter__toggle input[type=checkbox],
      .audit-dashboard .tfa-section audit-trail-filter .audit-trail-filter__toggle input[type=checkbox] {
        accent-color: var(--blue);
        width: 14px;
        height: 14px;
        cursor: pointer;
        margin: 0; }

.audit-kv-row {
  display: flex;
  align-items: center;
  padding: 6px 16px;
  gap: 8px; }
  .audit-kv-row .audit-kv-label {
    width: 35%;
    font-weight: 600;
    font-size: 13px;
    color: var(--dark-blue, #1a237e); }
  .audit-kv-row .audit-kv-value {
    width: 65%;
    font-size: 13px;
    color: var(--text-secondary, #666); }

.integrity-review__triggers {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px 0; }

integrity-review-modal .mdc-dialog .mdc-dialog__surface {
  max-width: min(880px, 94vw) !important;
  width: min(880px, 94vw); }

.integrity-review__body {
  max-height: 62vh;
  overflow-y: auto;
  padding: 4px 0;
  min-width: min(840px, 92vw); }

.integrity-review__group {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 14px;
  padding: 8px 16px 6px;
  border-bottom: 1px solid rgba(5, 46, 102, 0.15); }
  .integrity-review__group:first-child {
    margin-top: 0; }
  .integrity-review__group .integrity-review__group-label {
    font-weight: 700;
    font-size: 14px;
    color: var(--dark-blue, #052E66); }

.integrity-review__subgroup {
  padding: 6px 16px 2px 24px; }
  .integrity-review__subgroup .integrity-review__subgroup-label {
    font-weight: 600;
    font-size: 13px;
    color: var(--text-secondary, #666); }

.audit-hash {
  font-family: 'Courier New', Courier, monospace;
  font-size: 12px;
  letter-spacing: 0.5px;
  background: rgba(0, 0, 0, 0.04);
  padding: 2px 6px;
  border-radius: 4px;
  cursor: help;
  word-break: break-all; }
  .audit-hash--empty {
    font-style: italic;
    opacity: 0.5; }

.severity-high {
  color: #C62828;
  font-weight: 600; }

.severity-critical {
  color: #B71C1C;
  font-weight: 700; }

.anomaly-row__item {
  cursor: pointer;
  transition: background-color 0.15s; }
  .anomaly-row__item:hover, .anomaly-row__item:focus-visible {
    background-color: #F0F6FF !important; }

.anomaly-row__check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0; }

.anomaly-row__acked-by {
  font-size: 12px;
  color: #555;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.anomaly-ack__done {
  color: var(--success, #2e7d32);
  vertical-align: middle;
  font-size: 20px;
  flex-shrink: 0; }

.anomaly-ack__resolution {
  border-top: 1px solid rgba(5, 46, 102, 0.08);
  padding-top: 10px;
  margin-top: 4px; }

.anomaly-ack__resolution-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--dark-blue, #052E66);
  margin: 0 0 8px; }

.anomaly-ack__resolution-row {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-size: 13px;
  margin-bottom: 4px; }

.anomaly-ack__resolution-notes {
  margin-top: 8px; }
  .anomaly-ack__resolution-notes .anomaly-ack__info-label {
    display: block;
    margin-bottom: 4px; }

.anomaly-ack__notes-text {
  margin: 0;
  padding: 8px 10px;
  background: rgba(5, 46, 102, 0.04);
  border-radius: 6px;
  font-size: 13px;
  color: #333;
  white-space: pre-wrap; }
  .anomaly-ack__notes-text--empty {
    color: #999;
    font-style: italic; }
    .anomaly-ack__notes-text--empty::before {
      content: '—'; }

anomaly-ack-dialog .mdc-dialog .mdc-dialog__surface,
anomaly-acked-dialog .mdc-dialog .mdc-dialog__surface {
  width: 92vw;
  max-width: 640px;
  text-align: left; }

anomaly-ack-dialog .mdc-dialog__content,
anomaly-acked-dialog .mdc-dialog__content {
  overflow-wrap: anywhere; }

.anomaly-ack__info {
  background: rgba(5, 46, 102, 0.04);
  border-radius: 8px;
  padding: 12px 14px;
  margin-bottom: 14px;
  font-family: Work Sans;
  font-size: 13px;
  line-height: 1.45;
  overflow-wrap: anywhere; }

.anomaly-ack__info-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 6px; }

.anomaly-ack__sev {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  color: white;
  background: #6c757d; }
  .anomaly-ack__sev--low {
    background: #4caf50; }
  .anomaly-ack__sev--medium {
    background: var(--orange, #FF9300); }
  .anomaly-ack__sev--high {
    background: var(--danger, #B3261E); }
  .anomaly-ack__sev--critical {
    background: #7a0014; }

.anomaly-ack__type {
  font-family: 'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: var(--dark-blue, #052E66);
  background: white;
  padding: 2px 6px;
  border-radius: 4px;
  border: 1px solid rgba(5, 46, 102, 0.12); }

.anomaly-ack__info-title {
  font-weight: 600;
  color: var(--dark-blue, #052E66);
  margin: 0 0 4px; }

.anomaly-ack__info-desc {
  margin: 0 0 6px;
  color: #555; }

.anomaly-ack__info-created {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #666; }

.anomaly-ack__info-label {
  font-weight: 600; }

.anomaly-ack__hint {
  margin: 0 0 12px;
  color: #555;
  font-size: 13px; }

.audit-consistency--match {
  color: #2E7D32; }

.audit-consistency--mismatch {
  color: var(--danger, #C62828);
  font-weight: 600; }

/* ==========================================================================
   Audit Dashboard
   ========================================================================== */
.audit-dashboard {
  display: flex;
  flex-direction: column;
  gap: 20px; }

.audit-dashboard__summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px; }

.audit-tile {
  background-color: var(--card-bg);
  border-radius: 10px;
  padding: 16px 20px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 14px; }
  .audit-tile > i {
    font-size: 28px;
    color: var(--text-secondary);
    flex-shrink: 0; }
  .audit-tile--ok > i {
    color: #2E7D32; }
  .audit-tile--warning > i {
    color: var(--orange); }
  .audit-tile--error > i {
    color: var(--danger); }
  .audit-tile--pending > i {
    color: var(--text-secondary); }

.audit-tile__text {
  display: flex;
  flex-direction: column;
  min-width: 0; }

.audit-tile__value {
  font-family: Work Sans;
  font-size: 22px;
  font-weight: 700;
  line-height: 28px;
  color: var(--dark-blue); }

.audit-tile__label {
  font-family: Work Sans;
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-secondary);
  line-height: 16px; }

.audit-dashboard__app-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  background-color: var(--card-bg);
  border-radius: 10px;
  padding: 12px 16px; }

.audit-app-tag {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 16px;
  background: white;
  font-family: Work Sans;
  font-size: 12px;
  font-weight: 500;
  color: var(--text-secondary);
  letter-spacing: 0.2px; }
  .audit-app-tag--mono {
    font-family: 'Courier New', Courier, monospace;
    letter-spacing: 0.5px; }

.audit-bvec__card {
  background-color: var(--card-bg);
  border-radius: 10px;
  overflow: hidden; }

.audit-bvec__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 24px;
  border-bottom: 1px solid var(--border-light); }

.audit-bvec__header-left {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0; }

.audit-bvec__name {
  font-family: Work Sans;
  font-size: 18px;
  font-weight: 600;
  color: var(--dark-blue);
  line-height: 24px; }

.audit-bvec__election {
  font-family: Work Sans;
  font-size: 13px;
  font-weight: 400;
  color: var(--text-secondary);
  line-height: 18px; }

.audit-bvec__metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px;
  padding: 16px 20px; }
  .audit-bvec__metrics .audit-tile {
    background: white;
    padding: 12px 16px;
    border-radius: 8px; }
    .audit-bvec__metrics .audit-tile > i {
      font-size: 22px; }
  .audit-bvec__metrics .audit-tile__value {
    font-size: 18px;
    line-height: 24px; }
  .audit-bvec__metrics .audit-tile__label {
    font-size: 11px; }

.audit-bvec__seal-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
  padding: 10px 24px;
  border-bottom: 1px solid var(--border-light);
  font-family: Work Sans;
  font-size: 13px;
  color: var(--text-secondary); }

.audit-bvec__seal-hash,
.audit-bvec__seal-date {
  display: inline-flex;
  align-items: center;
  gap: 6px; }
  .audit-bvec__seal-hash i,
  .audit-bvec__seal-date i {
    font-size: 16px;
    color: var(--text-secondary);
    opacity: 0.6; }

.audit-bve-table {
  background: white;
  border-radius: 8px;
  margin: 12px 20px;
  overflow: hidden; }

.audit-bve-table__header {
  display: flex;
  align-items: center;
  padding: 10px 16px;
  border-bottom: 1px solid var(--border-light); }
  .audit-bve-table__header .audit-bve-table__col {
    font-family: Work Sans;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--text-secondary);
    opacity: 0.7; }

.audit-bve-table__row {
  display: flex;
  align-items: center;
  padding: 10px 16px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.04);
  text-decoration: none;
  color: var(--dark-blue);
  font-family: Work Sans;
  font-size: 14px;
  font-weight: 400;
  transition: background-color 0.15s ease; }
  .audit-bve-table__row:last-child {
    border-bottom: none; }
  .audit-bve-table__row:hover {
    background-color: #F5F9FF; }

.audit-bve-table__col {
  flex: 1;
  min-width: 0; }
  .audit-bve-table__col--name {
    flex: 2;
    font-weight: 600;
    color: var(--dark-blue); }
  .audit-bve-table__col--arrow {
    flex: 0 0 32px;
    display: flex;
    justify-content: center;
    color: var(--text-secondary);
    opacity: 0.5; }
    .audit-bve-table__col--arrow i {
      font-size: 18px; }

.audit-bvec__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 24px;
  border-top: 1px solid var(--border-light); }

.audit-bvec__footer-stats {
  display: flex;
  align-items: center;
  gap: 16px; }

.audit-bvec__footer-stat {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: Work Sans;
  font-size: 13px;
  font-weight: 500;
  color: var(--text-secondary); }
  .audit-bvec__footer-stat--warn {
    color: var(--orange); }

.audit-bvec__footer-icon {
  display: inline-flex; }
  .audit-bvec__footer-icon i {
    font-size: 16px; }
  .audit-bvec__footer-icon--warn i {
    color: var(--orange); }

.audit-bvec__footer-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: Work Sans;
  font-size: 13px;
  font-weight: 600;
  color: var(--blue);
  text-decoration: none; }
  .audit-bvec__footer-link i {
    font-size: 16px; }
  .audit-bvec__footer-link:hover {
    text-decoration: underline; }

/* ==========================================================================
   Audit dashboard overrides (tfa-section reused for audit cards)
   ========================================================================== */
.audit-dashboard .tfa-section {
  overflow: hidden; }
  .audit-dashboard .tfa-section .audit-section-content {
    font-family: Work Sans;
    font-size: 13px;
    color: var(--text-secondary);
    overflow-x: auto; }

/* Group heading separates blocks of audit cards (Setup & Composition,
   Operations, Per BVE, Trail & Compliance). Plain text, no card chrome. */
.audit-dashboard .audit-group-heading {
  font-family: Work Sans;
  font-weight: 600;
  font-size: 18px;
  color: var(--dark-blue);
  margin: 24px 0 8px;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(5, 46, 102, 0.12); }

.audit-dashboard .audit-group-heading:first-child {
  margin-top: 8px; }

/* Sub-section card nested inside a per-BVE container card. Smaller
   chrome than tfa-section so the two depths read distinctly. */
.audit-dashboard .tfa-subsection {
  background: white;
  border-radius: 8px;
  padding: 12px 16px;
  margin-top: 8px; }
  .audit-dashboard .tfa-subsection .tfa-subsection__header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px; }
    .audit-dashboard .tfa-subsection .tfa-subsection__header .material-icons {
      font-size: 18px;
      color: var(--dark-blue); }
    .audit-dashboard .tfa-subsection .tfa-subsection__header .subsection-heading {
      font-family: Work Sans;
      font-weight: 600;
      font-size: 14px;
      color: var(--dark-blue);
      margin: 0; }

.audit-dashboard .audit-bve-subsections {
  display: flex;
  flex-direction: column;
  gap: 8px; }

.audit-link-card__summary {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: Work Sans;
  font-size: 14px;
  color: var(--text-secondary);
  margin-bottom: 16px; }
  .audit-link-card__summary i {
    font-size: 18px;
    vertical-align: middle; }

/* ==========================================================================
   Stepper (progress bar with labels)
   ========================================================================== */
.stepper {
  display: flex;
  align-items: flex-start;
  width: 100%;
  margin: 8px 0 24px; }

.stepper__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  width: 0;
  position: relative; }
  .stepper__step:first-child {
    align-items: flex-start; }
  .stepper__step:last-child {
    align-items: flex-end; }

.stepper__dot {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.2s ease; }
  .stepper__dot--done {
    background: #2E7D32; }
    .stepper__dot--done i {
      color: white;
      font-size: 14px; }
  .stepper__dot--active {
    background: var(--blue);
    box-shadow: 0 0 0 4px rgba(33, 67, 231, 0.2); }
  .stepper__dot--pending {
    background: #e0e0e0; }

.stepper__label {
  font-family: Work Sans;
  font-size: 11px;
  font-weight: 500;
  line-height: 14px;
  color: var(--text-secondary);
  margin-top: 8px;
  text-align: center;
  max-width: 90px;
  word-wrap: break-word; }
  .stepper__step:first-child .stepper__label {
    text-align: left; }
  .stepper__step:last-child .stepper__label {
    text-align: right; }
  .stepper__label--active {
    color: var(--blue);
    font-weight: 700; }
  .stepper__label--done {
    color: #2E7D32; }

.stepper__line {
  flex: 1;
  height: 3px;
  background: #e0e0e0;
  margin-top: 11px;
  border-radius: 2px;
  min-width: 12px; }
  .stepper__line--done {
    background: #2E7D32; }

/* ==========================================================================
   Animations
   ========================================================================== */
.rotate-icon i {
  animation: rotation 2s infinite linear; }

@keyframes rotation {
  from {
    transform: rotate(359deg); }
  to {
    transform: rotate(0deg); } }

.mdc-button.task-button--loading {
  position: relative;
  pointer-events: none; }
  .mdc-button.task-button--loading .mdc-button__label,
  .mdc-button.task-button--loading .mdc-button__ripple {
    visibility: hidden; }
  .mdc-button.task-button--loading::after {
    content: '';
    position: absolute;
    top: calc(50% - 9px);
    left: calc(50% - 9px);
    width: 18px;
    height: 18px;
    border: 2px solid rgba(5, 46, 102, 0.2);
    border-top-color: #052E66;
    border-radius: 50%;
    animation: rotation 0.8s infinite linear; }

@keyframes fadeIn {
  from {
    opacity: 0;
    scale: 0; }
  to {
    opacity: 1;
    scale: 1; } }

@keyframes fadeOut {
  from {
    opacity: 1;
    scale: 1; }
  to {
    opacity: 0;
    scale: 0; } }

/* BVE bureau-member CRUD actions — surfaces in get_member_table on the
   BVE detail page. Election owner only, hidden when parent BVEC is sealed. */
.col--actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  align-items: center; }

.member-action-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  border-radius: 6px;
  color: var(--dark-blue);
  text-decoration: none;
  font-size: 13px;
  transition: background-color 120ms; }
  .member-action-link .material-icons {
    font-size: 18px; }
  .member-action-link:hover {
    background-color: rgba(5, 46, 102, 0.08); }
  .member-action-link--danger {
    color: var(--danger); }
    .member-action-link--danger:hover {
      background-color: rgba(179, 38, 30, 0.08); }

.member-add-link {
  display: inline-block;
  padding: 12px 16px 4px;
  text-decoration: none; }

.ensap-dashboard .hint, .ensap-deposit-detail .hint {
  color: var(--text-secondary);
  font-size: 14px;
  margin-bottom: 1rem; }

.ensap-dashboard .ensap-tiles, .ensap-deposit-detail .ensap-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
  margin-bottom: 1.5rem; }

.ensap-dashboard .ensap-tile, .ensap-deposit-detail .ensap-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  background: white;
  border: 1px solid var(--border-light);
  border-radius: 8px;
  padding: 14px 16px; }
  .ensap-dashboard .ensap-tile .material-icons, .ensap-dashboard .ensap-tile .material-symbols-outlined, .ensap-deposit-detail .ensap-tile .material-icons, .ensap-deposit-detail .ensap-tile .material-symbols-outlined {
    color: var(--light-blue);
    font-size: 22px; }
  .ensap-dashboard .ensap-tile .ensap-tile__value, .ensap-deposit-detail .ensap-tile .ensap-tile__value {
    font-size: 26px;
    font-weight: 600;
    color: var(--dark-blue); }
  .ensap-dashboard .ensap-tile .ensap-tile__label, .ensap-deposit-detail .ensap-tile .ensap-tile__label {
    font-size: 12px;
    color: var(--text-secondary); }
  .ensap-dashboard .ensap-tile.ensap-tile--warn, .ensap-deposit-detail .ensap-tile.ensap-tile--warn {
    border-color: var(--danger); }
    .ensap-dashboard .ensap-tile.ensap-tile--warn .ensap-tile__value, .ensap-deposit-detail .ensap-tile.ensap-tile--warn .ensap-tile__value {
      color: var(--danger); }
    .ensap-dashboard .ensap-tile.ensap-tile--warn .material-icons, .ensap-dashboard .ensap-tile.ensap-tile--warn .material-symbols-outlined, .ensap-deposit-detail .ensap-tile.ensap-tile--warn .material-icons, .ensap-deposit-detail .ensap-tile.ensap-tile--warn .material-symbols-outlined {
      color: var(--danger); }

.ensap-dashboard .ensap-table, .ensap-deposit-detail .ensap-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed; }
  .ensap-dashboard .ensap-table th, .ensap-dashboard .ensap-table td, .ensap-deposit-detail .ensap-table th, .ensap-deposit-detail .ensap-table td {
    padding: 12px 16px;
    text-align: left;
    vertical-align: middle; }
  .ensap-dashboard .ensap-table th.ensap-status, .ensap-dashboard .ensap-table td.ensap-status,
  .ensap-dashboard .ensap-table th.ensap-num, .ensap-dashboard .ensap-table td.ensap-num, .ensap-deposit-detail .ensap-table th.ensap-status, .ensap-deposit-detail .ensap-table td.ensap-status,
  .ensap-deposit-detail .ensap-table th.ensap-num, .ensap-deposit-detail .ensap-table td.ensap-num {
    text-align: center; }
  .ensap-dashboard .ensap-table th.ensap-num, .ensap-dashboard .ensap-table td.ensap-num, .ensap-deposit-detail .ensap-table th.ensap-num, .ensap-deposit-detail .ensap-table td.ensap-num {
    width: 80px; }
  .ensap-dashboard .ensap-table .status-chip, .ensap-deposit-detail .ensap-table .status-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap; }
  .ensap-dashboard .ensap-table thead th, .ensap-deposit-detail .ensap-table thead th {
    padding: 8px 16px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--text-secondary);
    opacity: 0.7;
    border-bottom: 1px solid var(--border-light); }
  .ensap-dashboard .ensap-table tbody td, .ensap-deposit-detail .ensap-table tbody td {
    font-size: 14px;
    color: var(--text-secondary);
    border-bottom: 1px solid var(--border-light); }
  .ensap-dashboard .ensap-table tbody tr:hover, .ensap-deposit-detail .ensap-table tbody tr:hover {
    background-color: #F5F9FF; }
  .ensap-dashboard .ensap-table .ensap-name b, .ensap-deposit-detail .ensap-table .ensap-name b {
    font-weight: 600;
    color: var(--dark-blue); }
  .ensap-dashboard .ensap-table .ensap-name .secondary, .ensap-deposit-detail .ensap-table .ensap-name .secondary {
    display: block;
    font-size: 12px;
    margin-top: 2px; }
  .ensap-dashboard .ensap-table .empty-row, .ensap-deposit-detail .ensap-table .empty-row {
    text-align: center;
    color: var(--text-secondary);
    font-style: italic;
    padding: 24px; }

.ensap-dashboard .ensap-envname, .ensap-deposit-detail .ensap-envname {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: monospace;
  font-size: 12px;
  vertical-align: bottom; }

.ensap-dashboard .ensap-envname--full, .ensap-deposit-detail .ensap-envname--full {
  white-space: normal;
  overflow: visible;
  word-break: break-all;
  font-size: 13px;
  color: var(--text-secondary); }

.ensap-dashboard .ensap-deposit-title, .ensap-deposit-detail .ensap-deposit-title {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap; }

.ensap-dashboard .ensap-timeline, .ensap-deposit-detail .ensap-timeline {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 1.5rem; }

.ensap-dashboard .ensap-step, .ensap-deposit-detail .ensap-step {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 0;
  position: relative; }
  .ensap-dashboard .ensap-step .material-icons, .ensap-deposit-detail .ensap-step .material-icons {
    color: #2E7D32; }
  .ensap-dashboard .ensap-step.ensap-step--pending .material-icons, .ensap-deposit-detail .ensap-step.ensap-step--pending .material-icons {
    color: var(--border-light); }
  .ensap-dashboard .ensap-step .ensap-step__body, .ensap-deposit-detail .ensap-step .ensap-step__body {
    display: flex;
    flex-direction: column; }
  .ensap-dashboard .ensap-step .ensap-step__label, .ensap-deposit-detail .ensap-step .ensap-step__label {
    font-weight: 600;
    color: var(--dark-blue); }
  .ensap-dashboard .ensap-step .ensap-step__when, .ensap-deposit-detail .ensap-step .ensap-step__when {
    font-size: 12px;
    color: var(--text-secondary); }
  .ensap-dashboard .ensap-step .ensap-step__extra, .ensap-deposit-detail .ensap-step .ensap-step__extra {
    font-size: 12px;
    color: var(--text-secondary);
    margin-top: 2px; }
  .ensap-dashboard .ensap-step.ensap-step--pending .ensap-step__label, .ensap-deposit-detail .ensap-step.ensap-step--pending .ensap-step__label {
    color: var(--text-secondary);
    font-weight: 500; }

.ensap-dashboard .ensap-deposit-meta, .ensap-deposit-detail .ensap-deposit-meta {
  margin-bottom: 1.5rem; }
  .ensap-dashboard .ensap-deposit-meta p, .ensap-deposit-detail .ensap-deposit-meta p {
    margin: 4px 0; }
  .ensap-dashboard .ensap-deposit-meta code, .ensap-deposit-detail .ensap-deposit-meta code {
    word-break: break-all; }

.ensap-dashboard .ensap-diffs, .ensap-deposit-detail .ensap-diffs {
  display: flex;
  flex-direction: column;
  gap: 4px; }

.ensap-dashboard .ensap-diff, .ensap-deposit-detail .ensap-diff {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px; }
  .ensap-dashboard .ensap-diff .ensap-diff__field, .ensap-deposit-detail .ensap-diff .ensap-diff__field {
    font-weight: 600;
    color: var(--text-secondary); }
  .ensap-dashboard .ensap-diff .ensap-diff__sent, .ensap-deposit-detail .ensap-diff .ensap-diff__sent {
    color: var(--danger);
    text-decoration: line-through; }
  .ensap-dashboard .ensap-diff .ensap-diff__ref, .ensap-deposit-detail .ensap-diff .ensap-diff__ref {
    color: #2E7D32;
    font-weight: 600; }
  .ensap-dashboard .ensap-diff .material-icons, .ensap-deposit-detail .ensap-diff .material-icons {
    font-size: 16px;
    color: var(--text-secondary); }

.ensap-dashboard .ensap-actions-bar,
.ensap-deposit-detail .ensap-actions-bar {
  margin: 4px 0 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: flex-start; }
  .ensap-dashboard .ensap-actions-bar .hint,
  .ensap-deposit-detail .ensap-actions-bar .hint {
    margin: 0;
    font-size: 12px; }

.ensap-dashboard .ensap-demo-bar form {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap; }

.ensap-demo-count {
  width: 72px;
  padding: 6px 8px;
  border: 1px solid var(--border-light);
  border-radius: 6px; }

.form.vote-form mdc-checkbox-list-item .mdc-checkbox,
.form.vote-form mdc-checkbox-list-item .mdc-checkbox__native-control,
.form.vote-form mdc-checkbox-list-item .mdc-checkbox__background {
  pointer-events: none; }

.form.vote-form mdc-checkbox-list-item candidate-manifesto-link,
.form.vote-form mdc-checkbox-list-item candidate-manifesto-link a {
  pointer-events: auto; }
