:root {
  --font-light: #ffffff;
  --font-dark: #2f2234;
  --background-light: #ffffff;
  --body-background: #f7f9fc;
  --box-blue: #eef7fd;
  --header-font: #2f2234;
  --header-background: #ffffff;
  --footer-font: #f6edf8;
  --footer-link-font: #bce4fa;
  --footer-background: #55325B;
  --progress-active: #55325B;
  --progress-inactive: #b8b0be;
  --vote-nav-background: #55325B;
  --button-default: #d7a6cc;
  --button-default-hover: #c88dbc;
  --button-default-active: #b576a9;
  --button-blue: #55325B;
  --button-blue-hover: #823D90;
  --button-blue-active: #45274b;
  --button-grey: #8d6a94;
  --button-grey-hover: #7d5d84;
  --button-grey-active: #684d6e;
  --candidate-background-checked: #d7a6cc;
  --candidate-background-checked-hover: #c88dbc;
  --candidate-checkbox-checked: #55325B;
}
body {
  background:
    linear-gradient(180deg, rgba(188,228,250,.42) 0, rgba(188,228,250,.22) 220px, #f9fbfd 420px),
    radial-gradient(circle at top left, rgba(215,166,204,.22), transparent 24%),
    #f9fbfd;
  color: #2f2234;
}
.page {
  max-width: 1180px;
  margin: 22px auto;
  padding: 0 18px 20px;
}
.page-header {
  background: linear-gradient(135deg, #ffffff 0%, #fbfcff 70%, #f6fbfe 100%);
  border: 1px solid rgba(215,166,204,.55);
  border-top: 8px solid #55325B;
  border-radius: 24px;
  box-shadow: 0 16px 38px rgba(85,50,91,.08);
  padding: 24px 28px;
  margin-bottom: 18px;
  display: grid;
  grid-template-columns: minmax(230px, 320px) 1fr;
  gap: 20px;
  align-items: center;
}
.page-header__logo {
  min-width: 0;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.page-header__logo__image {
  width: 100%;
  max-width: 290px;
  max-height: 132px;
  object-fit: contain;
  margin: 0;
}
.page-header__titles {
  align-items: flex-start;
  text-align: left;
  max-width: none;
  padding: 0;
}
.page-header__titles__election-name,
#election_name { width: 100%; }
.page-header__titles__election-name span,
#election_name span {
  color: #2f2234;
  font-weight: 800;
  letter-spacing: -0.03em;
  font-size: clamp(2.2rem, 4vw, 4.4rem);
  line-height: 1.05;
}
.page-header__titles__election-description,
#election_description { color: #6f6175; }
#main > p:first-of-type {
  margin: 0 0 18px;
  color: #55325B;
  font-weight: 700;
  font-size: 1.1rem;
}
.nav-menu {
  background: #ffffff;
  border: 1px solid rgba(188,228,250,.95);
  border-left: 8px solid #BCE4FA;
  border-radius: 18px;
  padding: 0;
  margin-bottom: 18px;
  box-shadow: 0 8px 20px rgba(85,50,91,.04);
  overflow: hidden;
}
.nav-menu__item,
.nav-menu__item-blank {
  background: #ffffff !important;
  color: #55325B !important;
  border: 0 !important;
  padding: 12px 16px;
}
.nav-menu__item:hover,
.nav-menu__item:focus-within { background: #f4f9fe !important; }
.nav-menu__item a,
.nav-menu__item .nav-menu__link,
#nav_username { color: #55325B !important; }
#avatar { filter: none !important; }
.nav-menu__link, a { color: #823D90; }
.nav-menu__link:hover, a:hover { color: #55325B; }
.page-body {
  background: #ffffff;
  border: 1px solid rgba(215,166,204,.45);
  border-radius: 24px;
  box-shadow: 0 12px 32px rgba(85,50,91,.05);
  padding: 30px;
}
input[type=text], input[type=password], input[type=email], textarea, select,
.nice-text-input, .nice-password-input {
  border-radius: 12px !important;
  border: 1px solid #d9c7df !important;
  box-shadow: none !important;
}
input[type=text]:focus, input[type=password]:focus, input[type=email]:focus,
textarea:focus, select:focus, .nice-text-input:focus, .nice-password-input:focus {
  border-color: #55325B !important;
  box-shadow: 0 0 0 4px rgba(188,228,250,.55) !important;
  outline: none !important;
}
.nice-button, button, input[type=submit] {
  background: #55325B !important;
  border: 1px solid #55325B !important;
  border-radius: 999px !important;
  color: #fff !important;
  box-shadow: 0 10px 20px rgba(85,50,91,.18);
}
.nice-button:hover, button:hover, input[type=submit]:hover {
  background: #823D90 !important;
  border-color: #823D90 !important;
}
.embedded-login-form {
  background: linear-gradient(180deg, #fff 0%, #fbfdff 100%);
  border: 1px solid rgba(188,228,250,.95);
  border-radius: 18px;
  padding: 18px;
}
#main h1:first-child { color: #2f2234; }
.page-footer {
  background: linear-gradient(135deg, #55325B 0%, #6d3b78 100%);
  color: #f8f2f9;
  padding: 20px 10px 12px;
}
.page-footer a { color: #BCE4FA; }
.page-footer p { margin-top: 8px; color: rgba(255,255,255,.88); }
@media (max-width: 800px) {
  .page { margin: 10px auto; padding: 0 10px 12px; }
  .page-header { grid-template-columns: 1fr; gap: 14px; padding: 18px; border-radius: 18px; }
  .page-header__logo { justify-content: center; }
  .page-header__logo__image { max-width: 240px; max-height: 104px; }
  .page-header__titles { align-items: center; text-align: center; }
  .page-body { padding: 18px; border-radius: 18px; }
}
