/* Visual identity only. Existing form fields and voting behavior are preserved. */
:root { --gold: #e7bd69; --ink: #15120e; --muted: #bfb5a6; }
* { box-sizing: border-box; }
html { min-height: 100%; height: auto; background: #0d0c0a; }
body { min-height: 100vh; height: auto; margin: 0; background: radial-gradient(ellipse at 90% 0, #362516 0, transparent 45%), linear-gradient(140deg, #17130e, #090909 70%); color: #f5eee3; font-family: 'Raleway', Arial, sans-serif; font-size: 16px; line-height: 1.6; }
body { display: flow-root; }
input { font: inherit; }
input:focus-visible, a:focus-visible { outline: 3px solid #edc56c; outline-offset: 4px; }
a:link, a:visited { color: #ebc97f; }
a:hover, a:active { color: #fff0c6; }
.login-page { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 460px); justify-content: center; align-items: center; gap: 64px; min-height: 100svh; padding: 24px 32px; }
.campaign-poster { position: static; justify-self: center; width: min(100%, calc((100svh - 48px) * .8)); border: 1px solid #76532c; border-radius: 18px; overflow: hidden; box-shadow: 0 28px 80px #0008; }
.campaign-poster img { display: block; width: 100%; height: auto; }
#boxLogin { position: static; width: 100%; height: auto; min-height: 0; margin: 0; text-align: center; }
#boxLogin > img:first-of-type { width: 210px; max-width: 85%; height: auto; }
#boxLogin form { margin: 16px 0 0; padding: 24px; background: linear-gradient(135deg, #292219, #191612); border: 1px solid #6b5333; border-radius: 16px; box-shadow: 0 20px 60px #0004; text-align: left; }
#boxLogin form p:first-child { margin: 0 0 16px !important; font-size: 16px !important; line-height: 1.6; font-weight: 500 !important; color: #f4eee4 !important; letter-spacing: 0 !important; }
#boxLogin form .txt { width: calc(100% - 66px); min-width: 0; height: 52px; padding: 12px 14px; border: 1px solid #c7a564; border-radius: 8px; background: #fffcf5; color: #201a12; font-family: Arial, sans-serif; font-size: 22px; vertical-align: top; }
#boxLogin form .bt { width: 52px; height: 52px; margin: 0 0 0 8px; padding: 15px 12px; object-fit: contain; border: 1px solid #edc56c; border-radius: 8px; background: linear-gradient(135deg, #f6de9a, #c99440); cursor: pointer; }
#boxLogin form .bt:hover { background: #ffe5a4; }
#boxLogin form p { margin-top: 12px; font-size: 13px; color: #d4c7b2; }
#boxLogin form p.invalido { padding: 12px; border: 1px solid #d48974; border-radius: 6px; font-size: 16px; color: #ffc3af; }
#boxLogin > h3 { margin: 20px 0 8px !important; font-size: 12px !important; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; color: #bfb5a6 !important; }
#boxLogin > img:last-of-type { display: block; width: 104px; max-width: 100%; height: 80px; object-fit: contain; margin: 0 auto !important; }
#boxLogin #copy { padding: 14px 0 0; }
#copy, #boxLogin #copy { clear: both; width: auto; max-width: 100%; padding: 20px 16px; color: #bfb5a6; font-size: 11px; text-align: center; }
#copy a, #boxLogin #copy a { color: #dfc18a; }
#container { width: min(1040px, calc(100% - 48px)); margin: 36px auto 0; }
#container #content { float: none; width: 100%; margin: 0; padding: 32px; border: 1px solid #6b5333; border-radius: 18px; background: #f9f6ef; color: #332c22; box-shadow: 0 25px 75px #0005; }
#container #content #cab { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; float: none; width: auto; padding: 26px 28px; margin: -32px -32px 28px; border-bottom: 1px solid #99713c; border-radius: 17px 17px 0 0; background: radial-gradient(ellipse at 10% 0, #584024, transparent 65%), #17130f; color: #fff4dc; }
#container #content #cab img { float: none !important; width: 145px; max-width: 145px !important; height: auto; margin: 0 !important; }
#container #content #cab h1 { flex: 1; min-width: 180px; margin: 0 !important; padding: 0; font-size: 24px !important; font-weight: 600; font-style: normal; line-height: 1.35; overflow-wrap: anywhere; }
#container #content #cab a { float: none; padding: 8px 14px; border: 1px solid #8b6b3e; border-radius: 7px; color: #f1d496; font-size: 12px; font-weight: 500; text-decoration: none; }
#container #content > div[style] { padding: 0 4px; color: #655b4d; line-height: 1.75 !important; }
#container #content > div[style] p + p { margin-top: 12px; }
#container #content ul { margin: 0; padding: 0 0 20px; border-bottom: 1px solid #d8cbb4; font-size: 15px; }
#container #content ul li h1 { margin-bottom: 16px; padding: 20px 0 16px; border-top: 1px solid #d8cbb4; color: #49371c; font-size: 22px; line-height: 1.4; font-style: normal; font-weight: 700; }
#frm_cadastro li label { display: flex; align-items: center; gap: 12px; min-height: 48px; margin: 6px 0; padding: 12px 16px; border: 1px solid #e3dac9; border-radius: 8px; background: #fffdf8; cursor: pointer; line-height: 1.45; }
#frm_cadastro li label:hover { border-color: #bb913f; background: #fff8e7; }
#frm_cadastro li label:has(input:checked) { border-color: #a67a2d; background: #f7e9c9; color: #493414; }
#frm_cadastro input[type=checkbox] { flex-shrink: 0; width: 20px; height: 20px; margin: 0; accent-color: #896019; cursor: pointer; }
#frm_cadastro .input { width: 100% !important; min-height: 52px; margin-bottom: 12px; padding: 12px 14px; border: 1px solid #b6a17e; border-radius: 8px; background: #fffdf8; color: #332c22; font-size: 18px; }
#contador { margin-top: 16px; color: #73511c; font-size: 14px; }
#contador:empty { margin: 0; }
#frm_cadastro .btProximo, #frm_cadastro .btConcluir, #frm_cadastro .btAnterior { max-width: 100%; min-height: 50px; margin: 24px 8px 0 0; padding: 12px 24px; border: 1px solid #a77c37; border-radius: 8px; background: linear-gradient(135deg, #f5d78d, #d2a14f); box-shadow: none; color: #30220f; font-size: 15px; font-weight: 700; text-shadow: none; white-space: normal; cursor: pointer; }
#frm_cadastro .btAnterior { background: #f5f0e6; border-color: #c8b898; color: #65553e; }
#frm_cadastro input[type=submit]:hover { filter: brightness(1.06); }
#content .ok, #content .erro { float: none; width: 100%; margin: 16px 0; padding: 14px 16px 14px 60px; border-radius: 8px; background-position: 12px 16px; font-size: 15px; line-height: 1.5; }
@media (max-width: 760px) {
  .login-page { grid-template-columns: minmax(0, 440px); gap: 24px; padding: 24px 20px; }
  .campaign-poster { width: min(320px, 100%); margin: 0; border-radius: 12px; }
  #boxLogin { width: 100%; margin: 0; }
  #boxLogin > img:first-of-type { display: none; }
  #boxLogin form { padding: 22px; margin-top: 0; }
  #boxLogin form p:first-child { font-size: 16px !important; }
  #boxLogin form .txt { font-size: 18px; }
  #container { width: calc(100% - 24px); margin-top: 12px; }
  #container #content { padding: 20px 16px; border-radius: 12px; }
  #container #content #cab { gap: 12px; margin: -20px -16px 22px; padding: 20px 16px; border-radius: 11px 11px 0 0; }
  #container #content #cab img { width: 110px; max-width: 110px !important; }
  #container #content #cab h1 { min-width: 145px; font-size: 19px !important; }
  #container #content #cab a { margin-left: auto; }
  #container #content ul li h1 { font-size: 19px; }
  #frm_cadastro li label { padding: 12px; }
  #frm_cadastro .btProximo, #frm_cadastro .btConcluir, #frm_cadastro .btAnterior { width: 100%; margin: 16px 0 0; }
}

/* Participation regulation and acceptance, before the voting form. */
.regulation { max-width: 820px; margin: 0 auto; }
.regulation-eyebrow { color: #806025; font-size: 11px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; }
.regulation h2 { margin: 6px 0 10px; color: #49371c; font-size: 28px; line-height: 1.3; }
.regulation-intro { margin-bottom: 24px; color: #756956; font-size: 15px; }
.regulation-text { padding: 24px; border: 1px solid #e0d4bd; border-radius: 12px; background: #fffdf8; color: #514735; font-size: 15px; line-height: 1.75; }
.regulation-text h3 { margin: 0 0 12px; color: #49371c; font-size: 16px; font-weight: 700; }
.regulation-text p + p { margin-top: 12px; }
#container #content .regulation-list { margin: 12px 0 20px; padding: 0 0 0 32px; list-style: upper-roman; }
#container #content .regulation-list li { padding: 4px 0 4px 4px; list-style: upper-roman; }
.regulation-operational { padding-top: 20px; }
.regulation-text .regulation-note { margin-top: 24px; padding: 16px; border-left: 3px solid #c29a4c; border-radius: 0 8px 8px 0; background: #f7eedb; }
.regulation-form { margin-top: 24px; }
.regulation-accept { display: flex; align-items: flex-start; gap: 12px; padding: 18px; border: 1px solid #cdbb97; border-radius: 10px; background: #f5eddc; cursor: pointer; font-size: 15px; line-height: 1.6; }
.regulation-accept input { flex: 0 0 22px; width: 22px; height: 22px; margin: 1px 0 0; accent-color: #896019; cursor: pointer; }
.regulation-submit { display: flex; align-items: center; justify-content: center; gap: 20px; min-height: 52px; margin: 18px 0 0 auto; padding: 14px 24px; border: 1px solid #a77c37; border-radius: 8px; background: linear-gradient(135deg, #f5d78d, #d2a14f); color: #30220f; font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; }
.regulation-submit:hover { filter: brightness(1.06); }
.regulation-submit:focus-visible { outline: 3px solid #896019; outline-offset: 4px; }
.regulation-error { margin-top: 20px; padding: 14px 16px; border: 1px solid #b66c52; border-radius: 8px; background: #fff0e9; color: #872e15; font-size: 15px; }
@media (max-width: 760px) { .regulation h2 { font-size: 24px; } .regulation-text { padding: 18px 16px; font-size: 14px; } .regulation-submit { width: 100%; padding: 14px 16px; gap: 12px; } }

#frm_cadastro .category-limit { margin: 0 0 20px; padding: 12px 16px; border-left: 3px solid #b88a35; border-radius: 0 8px 8px 0; background: #f2e6cc; color: #62491f; font-size: 15px; line-height: 1.5; }

/* Opening text supplied by ACIC, with mandatory category quantities. */
.opening-subtitle { margin-top: 12px; font-size: 13px; font-weight: 700; line-height: 1.6; }
.opening-text h3 { margin-top: 28px; }
.opening-text h4 { margin: 24px 0 10px; color: #49371c; font-size: 16px; line-height: 1.5; }
.opening-limits { width: 100%; margin: 20px 0; border-collapse: collapse; font-size: 14px; line-height: 1.5; }
.opening-limits th, .opening-limits td { padding: 12px; border: 1px solid #dfd1b8; text-align: left; vertical-align: top; }
.opening-limits thead th { background: #f2e6cc; color: #49371c; font-weight: 700; }
.opening-limits tbody th { width: 54%; font-weight: 500; }
.opening-agreement { margin: 28px 0 0; color: #49371c; font-size: 15px; line-height: 1.5; }
@media (max-width: 760px) { .opening-limits { font-size: 13px; } .opening-limits th, .opening-limits td { padding: 10px 8px; overflow-wrap: break-word; } .opening-text h4 { font-size: 15px; } }

@media (min-width: 761px) and (max-height: 680px) {
  .login-page { gap: 48px; padding-top: 20px; padding-bottom: 20px; }
  #boxLogin > img:first-of-type { width: 180px; }
  #boxLogin form { padding: 20px; margin-top: 12px; }
  #boxLogin > h3 { margin-top: 14px !important; }
  #boxLogin > img:last-of-type { width: 88px; height: 68px; }
  #boxLogin #copy { padding-top: 10px; }
}
