  html, body {
    margin: 0;
    padding: 0; 
    width: 100%;  
    background-color: #fff;
    font-size: 14px;
    font-family: Arial, Sans-Serif;
    font-weight: normal;
  }
  
  div.header,
  div.footer  {
    float: left;
    display: block;
    width: 100%;
    background-color: #222; 
    color:#fff; 
    box-sizing: border-box;
    clear: both;
  }
  
  div.header { 
    margin-bottom: 20px;
  }

  div.header img {
    float: left;
    margin-right: 20px;  
  }
  
  div.header_top {
    float: left;
    display: block;
    width: 100%;
    background-color: #222;  
    color: #fff;
    padding: 20px 40px; 
    box-sizing: border-box;
    clear: both !important;
  }

  div.header_title {
    float: left;
    margin: 0 !important;
    padding: 0 !important;
    padding-top: 0px;
    padding-top: 10px !important;
    vertical-align: top !important;
    width: 470px !important;
    font-size: 2em;
    font-weight: bold;
    line-height: 1.5em;  
  }

  div.menu {
    background-color: #333;
    color: #fff;
    padding: 0 !important;
    margin: 0 !important;
    display: block;
    width: 100%;
    text-align: center;
  }
  
  div.inner {
    display: inline-block;
  }

  div.menu a {
    padding: 15px 20px;
    display: inline-block; 
    color: #fff;
    font-size: 0.9em;
    text-decoration: none;
    text-transform: uppercase;
  }

  div.menu a:hover {
    background-color: #282828;
  }

  div.instructions {
    display: block;  
    width: 100%;
    box-sizing: border-box;
    padding: 0 40px;
    margin: 20px 0 !important;
  }
  
  div.instructions p {  
    margin: 20px 0;
    background-color: #f2f2f2;
    padding: 20px;
  }
  
  div.voting_form table, 
  div.voting_form p {
    padding: 10px 40px;
  }

  div.voting_form table td {
    padding: 5px 10px 5px 0;
    vertical-align: top;
  }

  div.voter_info, 
  div.list_of_positions {
    display: block;  
    width: 100%;
    box-sizing: border-box;
    padding: 0 40px;
    text-align: center;
  }
  
  div.list_of_positions table {
    background-color: #f2f2f2;  
  }

  div.voter_info table, 
  div.list_of_positions table {
    width: 100%;  
  }
  
  div.voter_info table td {
    width: 50%;
    padding: 10px;
  }

  div.voter_info table td.prompt {
    text-align: right;
  }

  div.voter_info table td.value {
    text-align: left;  
  }
 
  div.list_of_positions table th {
    font-size: 1.5em;
    text-decoration: underline;
  }

  div.list_of_positions table th.prompt,
  div.list_of_positions table td.prompt {
    text-align: right;
    vertical-align: top;
    width: 50%;
    font-weight: bold;
    padding: 10px 20px;
    line-height: 1.5em;
  }
 
  div.list_of_positions table th.value, 
  div.list_of_positions table td.value {
    text-align: left;  
    vertical-align: top;
    width: 50%;
    padding: 10px 20px;
    line-height: 1.5em;
  }
  
  div.list_of_positions input { 
    padding:  5px;
    margin-bottom: 5px;
  }

  span.dflt_answer {
    font-size: 1.2em;
  }

  span.instructions { 
    font-size: 0.9em;
    display: block;
    padding: 2px 0;
  }

  span.field_prompt { 
    display: inline-block;
    width: 50px !important;
  }

  a.button_unpressed { 
    border: 1px solid #999;
    background-color: #ccc;
    padding: 4px 8px;
    border-radius: 4px;
  }

  a.button_pressed:hover,
  a.button_unpressed:hover { 
    border: 1px solid #999;
    background-color: #6699cc;
    color: #fff;
    cursor: pointer;
  }

  a.button_pressed { 
    border: 1px solid #999;
    background-color: #006699;
    color: #fff;
    padding: 4px 8px;
    border-radius: 4px;
  }


  div.voter_info input {
    padding: 10px;
  }
  
  p.button_ctr {
    text-align: center;
  }
  
  p.button_ctr input {
    padding: 10px 20px;
    font-size: 1.2em;
    font-weight: bold;
  }

  div.footer p {
    text-align: center;
    color: #f2f2f2;
  }

  @media all and (max-width: 900px) { 
    div.header_title {
      padding-top: 20px;
      max-width: 150px;
      white-space: normal;   
      font-size: 1.1em;
    }

    div.list_of_positions { 
      display: block;
      width: 100%;
    }
    
    div.list_of_positions table { 
      width: 100%;
    }

    div.list_of_positions table tr th {
      display: none;
    }

    div.list_of_positions table tr td {
      display: table-row;
    }

    div.list_of_positions table td.prompt {
      padding: 20px 10px 10px 10px !important;
      text-align: left;
      font-size: 1.2em;
      border-bottom: 1px solid #111;
    }

    div.list_of_positions table td.value {
      padding: 10px 10px 10px 10px !important;
    }
  }
 
  @media print {
    #main-menu-container,
    #main-menu-container *  { 
      display: none !important;
    }

    form *, table, table tr, table tr td {
      visibility: visible !important;
      display: block !important;
    }

    table * {
      width: 700px !important;
    }
  }