/* Legacy CSS Bundle - will be migrated to Tailwind */

/* reset.css */
/*
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 0.11.3
*/
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}
table{border-collapse:collapse;border-spacing:0;}
fieldset,img{border:0;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}
ol,ul {list-style:none;}
caption,th {text-align:left;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
q:before,q:after{content:'';}

/* tablesorter.css */
/* tables */
table.tablesorter {
	font-family:arial;
	background-color: #CDCDCD;
	/*margin:10px 0pt 15px;
	font-size: 8pt;
	width: 100%;
	text-align: left;*/
}
table.tablesorter thead tr th, table.tablesorter tfoot tr th {
	background-color: #e6EEEE;
	border: 1px solid #FFF;
	/*font-size: 8pt;*/
	padding: 4px;
        padding-right:15px;
}
table.tablesorter thead tr .header {
	background-image: url(/assets/bg-9d9d54644c7b40b4c2bcb62db3e967a4fea92d5fbb35d4564111ef99aad44b9f.gif);
	background-repeat: no-repeat;
	background-position: center right;
	cursor: pointer;
}
table.tablesorter tbody td {
	color: #3D3D3D;
	padding: 4px;
	background-color: #FFF;
	vertical-align: top;
}
table.tablesorter tbody tr.odd td {
	background-color:#F0F0F6;
}
table.tablesorter thead tr .headerSortUp {
	background-image: url(/assets/asc-f79a1e432c73561b199307721fb9d3a7f607e1019bbfee72c783c57b8b2d9d85.gif);
}
table.tablesorter thead tr .headerSortDown {
	background-image: url(/assets/desc-dff0c122869c48afc3e6de0ad69595c598478375eba79c457a40f29407969340.gif);
}
table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {
background-color: #8dbdd8;
}


/* namegame.css.scss */
.name-game-btn {
  margin: auto;
  transition: all 0.2s ease;
}
.name-game-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.name-game-btn:active {
  transform: translateY(0);
}

.modal-overlay {
  display: none;
  position: fixed;
  z-index: 999;
  left: 0px;
  top: 0px;
  height: 100%;
  width: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(2px);
  animation: fadeIn 0.3s ease;
}
.modal-overlay.show {
  display: block;
}
@media (prefers-reduced-motion) {
  .modal-overlay {
    animation: none;
  }
}

.name-game {
  margin: 10% auto;
  width: 90%;
  max-width: 900px;
  min-height: 150px;
  opacity: 1;
  background-color: white;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
  border-radius: 8px;
  overflow: hidden;
  animation-name: namegameopen;
  animation-duration: 0.8s;
  display: flex;
  flex-direction: column;
}
@media (max-width: 768px) {
  .name-game {
    width: 95%;
    margin: 30% auto;
  }
}
@media (prefers-reduced-motion) {
  .name-game {
    animation: none;
  }
}

.name-game-header {
  background: linear-gradient(135deg, #002b61 0%, #003d7a 100%);
  padding: 20px 30px;
  margin: 0px;
  color: #fff;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
}
.name-game-header h2 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  flex: 1;
}

.name-game-cards {
  flex: 1;
  min-height: 300px;
  width: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0;
  background-color: #fafafa;
}
@media (max-width: 768px) {
  .name-game-cards {
    min-height: 250px;
  }
}

.name-game-card {
  display: none;
  flex-wrap: nowrap;
  flex-direction: row;
  justify-content: flex-start;
  align-items: stretch;
  gap: 20px;
  opacity: 1;
  background-color: white;
  padding: 20px;
  height: 300px;
  border-bottom: 1px solid #e5e7eb;
}
.name-game-card.active {
  display: flex;
}
@media (max-width: 768px) {
  .name-game-card {
    flex-direction: column;
    height: auto;
    align-items: center;
    gap: 15px;
  }
}
.name-game-card img {
  border-radius: 8px;
  object-fit: cover;
}

.name-game-card > div {
  width: 250px;
}

.name-game-name {
  font-size: 1.375rem;
  font-weight: 500;
  line-height: 1.3;
  animation-name: namegameopen;
  animation-duration: 2s;
}

.name-game-close {
  font-size: 28px;
  color: rgba(255, 255, 255, 0.8);
  cursor: pointer;
  transition: color 0.2s ease, transform 0.2s ease;
  padding: 0;
  line-height: 1;
  background: none;
  border: none;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
}
.name-game-close:hover {
  color: #fff;
  background-color: rgba(255, 255, 255, 0.1);
  transform: scale(1.1);
}
.name-game-close:focus {
  outline: 2px solid rgba(255, 255, 255, 0.4);
  outline-offset: 2px;
}
.name-game-close:active {
  transform: scale(0.95);
}

.close:hover, .close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
}

.name-game-mark-confidence {
  padding: 8px 16px;
  margin: 4px 4px;
  background-color: #f3f4f6;
  border: 2px solid #e5e7eb;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 500;
  transition: all 0.2s ease;
  color: #374151;
}
.name-game-mark-confidence:hover {
  background-color: #e5e7eb;
  border-color: #d1d5db;
}
.name-game-mark-confidence:focus {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}
.name-game-mark-confidence:active {
  transform: scale(0.98);
}
.name-game-mark-confidence.selected {
  background-color: #2563eb;
  color: white;
  border-color: #1d4ed8;
}

.name-game-next-card {
  padding: 8px 16px;
  margin: 4px 4px;
  background-color: #002b61;
  border: none;
  border-radius: 6px;
  color: white;
  cursor: pointer;
  font-size: 0.875rem;
  font-weight: 600;
  transition: all 0.2s ease;
}
.name-game-next-card:hover:not(:disabled) {
  background-color: #003d7a;
  box-shadow: 0 2px 8px rgba(0, 43, 97, 0.3);
}
.name-game-next-card:focus {
  outline: 2px solid #2563eb;
  outline-offset: 2px;
}
.name-game-next-card:active:not(:disabled) {
  transform: scale(0.98);
}
.name-game-next-card:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.play-button {
  background: none;
  border: none;
  color: white;
  font-size: 48px;
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0;
}
.play-button:hover {
  transform: scale(1.2);
}
.play-button:focus {
  outline: 2px solid rgba(255, 255, 255, 0.5);
}

@keyframes namegameopen {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* four11.css */
html, body {
  font-family: 'Roboto', 'Helvetica', sans-serif;
}
a {
  color: #2563eb; /* was #4072ff (4.14:1); 5.17:1 meets WCAG AA */
}
ul, ol {
  line-height:18px;
}
h5 {
  margin-top: 5px;
  margin-left: 10px;
}
.mdl-tooltip {
  max-width:350px;
}
.mdl-tooltip.is-active {animation:none; transform: scale(1); opacity: 1; visibility:visible;}
.student-cards {
  line-height:6px;
}
.four11-avatar {
  width: 48px;
  height: 48px;
  border-radius: 24px;
}
.four11-layout .four11-header .mdl-textfield {
  padding: 0px;
  margin-top: 41px;
}
span.important {
  color:red;
}
.four11-layout .four11-header .mdl-textfield .mdl-textfield__expandable-holder {
  bottom: 19px;
}
.mdl-layout--fixed-drawer.is-upgraded:not(.is-small-screen)>.mdl-layout__header {
  margin-left: 210px;
  width: calc(100% - 210px);
}

.mdl-layout--fixed-drawer.is-upgraded:not(.is-small-screen)>.mdl-layout__content {
  margin-left: 210px;
}
.mdl-layout__drawer {
  width: 210px;
}
.mdl-card__title-text > .material-icons {
  padding-right:10px;
  font-size: 28px;
  
}
#student-cards .mdl-card__title-text {
  padding-right:10px;
  font-size: 18px;
  font-weight: 500;
}
.four11-layout .mdl-layout__header .mdl-layout__drawer-button {
  color: rgba(0, 0, 0, 0.54);
}

#section-attendance.mdl-data-table {
    border:none;
}

.mdl-layout__drawer .avatar {
  margin-bottom: 16px;
}
.four11-drawer {
  border: none;
}
/* iOS Safari specific workaround */
.four11-drawer .mdl-menu__container {
  z-index: -1;
}
.four11-drawer .four11-navigation {
  z-index: -2;
}
/* END iOS Safari specific workaround */
.four11-drawer .mdl-menu .mdl-menu__item {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.four11-drawer-header {
  box-sizing: border-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  padding: 16px;
  min-height: 120px;
}
.four11-avatar-dropdown {
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
}

.four11-navigation {
  -webkit-flex-grow: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
}
.mdl-layout__drawer .mdl-navigation .mdl-navigation__link {
  padding: 2px 2px 2px 25px;
  
}
.four11-layout .four11-navigation .mdl-navigation__link {
  display: -webkit-flex !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-flex-direction: row;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  color: rgba(255, 255, 255, 0.56);
  font-weight: 500;
}
.four11-layout .four11-navigation .mdl-navigation__link:hover {
  background-color: #ffc107;
  color: #37474F;
}
.four11-navigation .mdl-navigation__link .material-icons {
  font-size: 20px;
  color: rgba(255, 255, 255, 0.56);
  margin-right: 16px;
}

.four11-content {
  max-width: 1600px;
}

.four11-charts {
  -webkit-align-items: center;
      -ms-flex-align: center;
              -ms-grid-row-align: center;
          align-items: center;
}

.four11-cards {
  -webkit-align-items: flex-start;
      -ms-flex-align: start;
              -ms-grid-row-align: flex-start;
          align-items: flex-start;
  -webkit-align-content: flex-start;
      -ms-flex-line-pack: start;
          align-content: flex-start;
}
.four11-cards .four11-separator {
  height: 32px;
}

.four11-cards .mdl-card__title.mdl-card__title-text {
  color: grey;
  font-size: 24px;
  font-weight: 400;
}
.section-card .mdl-card__title {
  padding:12px;
  padding-bottom: 4px;
  text-align:left;
  
}
.section-card .mdl-card__title-text {
  font-size: 20px;
  padding: 0px;
}
.section-card .mdl-card__supporting-text {
  padding:0px;
  text-align:center;
  margin:auto;
}
#section-attendance .mdl-textfield {
  padding:0px;
}
#section-attendance label.mdl-textfield__label {
  top:6px
}
#section-attendance label.mdl-textfield__label::after {
  bottom:4px;
}
table#accommodation-table th{
    padding:0px;
}
table#accommodation-table {
    border:none;
}
table#accommodation-table tbody tr{
    height:30px;
}
table#accommodation-table td{
    border-right:solid grey 1px;
    padding:0px;
    text-align:center;
}
th.rotate {
  /* Something you can count on. Transform never affects an ancestor's
     layout size, so this explicit height is the ONLY thing giving a
     rotated label room to swing - it must clear the longest label's
     un-rotated width * sin(45deg). Longest one seen so far ("Computer /
     Assistive Technology for Tests") needs ~212px; this leaves margin. */
  height: 260px;
  white-space: nowrap;
  text-align: left;
  /* Anchors the rotated div (and its rotation pivot, see below) at the
     bottom of the cell, right above the column it labels. */
  vertical-align: bottom;
}

th.rotate > div {
  transform:
    /* Magic Numbers */
    translate(17px, -6px)
    /* 45 is really 360 - 45 */
    rotate(315deg);
  /* Without this, rotation pivots on the div's own center. A long label
     overflows this 30px-wide div well past its right edge (nowrap), and
     rotating that overflow around a center pivot swings it UP past the
     cell's own height, past the table's top edge entirely. Pivoting at
     bottom-left instead keeps the whole swing inside the 180px cell,
     however long the label. */
  transform-origin: bottom left;
  width: 30px;
}
th.rotate > div > span {
  border-bottom: 1px solid #ccc;
  padding: 5px 0px;
}
div#section-freq {
    display: flex;
    flex-wrap: wrap;
    flex: 1 1 auto;
}
div#section-freq mdl-card{
  min-height:40px;
}
#section-freq .mdl-card__title-text {
  overflow:visible;
  }
.four11-cards ul {
  padding: 0;
}
.four11-cards h3 {
  font-size: 1em;
}
.four11-updates .mdl-card__title {
  min-height: 60px;
}
.four11-cards .mdl-card__actions a {
  color: #00BCD4;
  text-decoration: none;
}

.four11-options h3 {
  margin: 0;
}
.four11-options .mdl-checkbox__box-outline {
  border-color: rgba(255, 255, 255, 0.89);
}
.four11-options ul {
  margin: 0;
  list-style-type: none;
}
.four11-options li {
  margin: 4px 0;
}
.four11-options .material-icons {
  color: rgba(255, 255, 255, 0.89);
}
.mdl-card {
  min-height:80px;
}
.four11-options .mdl-card__actions {
  height: 64px;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  box-sizing: border-box;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
}
.mdl-data-table tbody tr {
  height:40px;
}
.mdl-data-table td {
  padding:0px;
  padding-left:12px;
  height: 40px;
}
table#strengths-grid {}
table#strengths-grid thead {}
table#strengths-grid thead tr {}
table#strengths-grid thead tr th {text-align:center;border-right:solid grey 1px;padding:2px;padding-top:0px;}
table#strengths-grid tbody {}
table#strengths-grid tbody tr {
  height: 18px;
}
table#strengths-grid tbody tr td {
    text-align:center;
    padding:0px;
    min-width:12px;
    border-right:solid grey 1px;
    font-size:11px;
}

#strengths-grid.mdl-data-table td {
    height: 13px;
}
#strengths-grid td.move-icons {
  border-right:none;
  font-size:2px;
}
td.strength {
    background-color:red;
    color:white;
    font-weight:bold;
}
div#student-cards {
    display:flex;
    flex-wrap: wrap;
    flex: 1 1 auto;
}

.section-card.four11-graphs.mdl-shadow--2dp.mdl-color--white {
    height:138px;
}
table.schedule td{
  overflow:hidden;
  max-width:250px;
}
table.schedule .mdl-checkbox {
  padding-left:15px;
}
.section-card .mdl-card__title-text {
  height:45px;
  vertical-align:top;
}

.mdl-data-table th {
  text-align: left;
  font-size: 18px;
}

#free_table {
  /*overflow-x: scroll;
  max-width: 1300px;*/
}

.free.mdl-data-table td {
  max-width: 120px;
  /*width: 150px;*/
  text-align: left;
  overflow: hidden;
  padding: 0 6px;
}

.free.mdl-data-table td:first-child {
  border: 1px solid rgba(0,0,0,.12);
  text-align: left;
  padding-left: 0px;
  max-width: 160px;
}

.free.mdl-data-table td:first-child .material-icons {
  margin-right: 0px;
}

.free.mdl-data-table td .free {
  color: gold;
  background-color: rgb(255,215,64);
  padding: 0 40px;
}
.mdl-icon-toggle.is-checked .mdl-icon-toggle__label {
    color: gold;
}

#old_four10 {
    padding: 10px;
    background-color: #ccc;
    color: black;
    margin-bottom: 10px;
}

.attendance_bar {
  margin-left: 3px;
}
.attendance_bar .mdl-progress {
  width: 110px;
  height: 6px;
}

.attendance_bar .mdl-progress>.progressbar {
  background-color: green;
}
.attendance_bar .mdl-progress>.bufferbar {
  background: darkorange;
}
.attendance_bar .mdl-progress>.auxbar {
  background: darkred !important;
  mask: none !important;
  -webkit-mask: none !important;
  -ms-mask: none !important;
  -o-mask: none !important;
  -ms-mask: none !important;
}
.mdl-data-table td:first-of-type {
    padding-left: 5px;
}
.directory {
  margin:10px auto;
}
.directory_title {
  text-align: center;
  font-size: 24px !important;
}
.free .material-icons {
  font-size: 14px;
  margin-right: 10px;
}
.stu_title {
  font-size: 18px !important;
  margin: 20px 0px 0px 0px; 
}
.stu_title:first-child {
  margin:0;
}
.mdl-tooltip.emailer {
  display: flex;
  flex-flow: row wrap;
  max-width: 270px;
}
.emailer_stu {
    margin-right: 10px;
    flex: 1 1 auto;
}

.emailer_stu .mdl-chip {
    max-width: 100px;
    overflow: hidden;
}
.grade.mdl-data-table td {
  /*max-width: 120px;
  width: 150px;*/
  text-align: left;
}

.grade.mdl-data-table td:first-child {
  border: 1px solid rgba(0,0,0,.12);
  text-align: left;
  padding: 10px;
}

.grade.mdl-data-table td:first-child .material-icons {
  margin-right: 0px;
}

.a-grade.mdl-data-table td {
  text-align: left;
}

.adv-card.mdl-card__title {
  background-color: lightgray;
}

.adv-card.mdl-card__title .mdl-card__title-text {
  height: 30px;
}

.advising.mdl-card__supporting-text {
  padding-bottom: 10px;
  text-align: left;
}

.advising .mdl-grid {
  padding: 0px;
}

.advising .mdl-cell {
  margin: 0px;
}

.advising .material-icons {
  vertical-align: middle;
  line-height: 18px;
  font-size: 14px;
}

.mdl-tabs__panel {
  overflow-x: auto;
}

/* directory.css */
/*
  COLOR PALETE
  EPS blue #003e74  #002b61
  EPS gold #edac00 #f0b300
  green  #a2ad00
  orange #eb7125
  yellow #ffda00
  gray #9da299
  periwinkle #7a6691
  skyblue #93c3df
  brown #a45d0e
*/

form {
  display: block;
  width: 100%;
}

.tab-panel {
  display: none;
  padding: 20px;
}

/* overflow is NOT set here: application.tailwind.css's `.tab-panel { overflow:
   auto; max-height: calc(100vh - 14rem); }` needs to win so an overflowing
   panel scrolls internally instead of spilling into whatever follows it on
   the page. A `.tab-panel.active-panel { overflow: visible }` rule here would
   out-specify that single-class rule and silently break it. */
.tab-panel.active-panel {
  display: block;
}

.tab-button {
  cursor: pointer;
  transition: all 0.2s ease;
}

/* Tab styling is now handled by Tailwind classes in the helper */

#strengths-grid {
  display: block !important;
  width: 100% !important;
  margin-top: 20px;
  font-size: 16px;
}

#strengths-grid h2 {
  display: block !important;
  margin-top: 0;
  margin-bottom: 20px;
  font-size: 24px;
  font-weight: 600;
  color: #1f2937;
  line-height: 1.2;
  height: auto;
}

.student-strength {
  display: block !important;
  width: 100% !important;
  padding: 15px;
  border-bottom: 1px solid #e5e7eb;
  background-color: #ffffff;
  box-sizing: border-box;
  height: auto;
  font-size: 16px;
  line-height: 1.5;
}

.student-strength strong {
  display: block !important;
  font-weight: 600;
  color: #374151;
  margin-bottom: 5px;
  line-height: 1.4;
  font-size: 16px;
  height: auto;
}

.student-strength div {
  display: block !important;
  color: #6b7280;
  font-size: 14px;
  line-height: 1.5;
  height: auto;
}
#section_freq{
 display:inline-block;
 vertical-align:top;
 min-width:180px;
 max-width:250px;
 margin:20px;
 margin-top:4px;
 text-align:left; 
}
#section_freq h2{
 margin-top:0px;
 padding-bottom:10px;
 text-align:center;
}
#section_freq li {
  border-bottom:1px dashed blue;
  padding:2px;
  margin-left:20px;
}
#section_freq li a.counter {
 text-decoration:none;
 display:inline-block;
 margin-left:-26px;
 border:1px solid blue;
 border-radius:2px;
 padding:2px;
 width:16px;
 text-align:center;
 font-weight:bold; 
} 
#section_freq li a span.tooltip {
  margin-top:0px;
  margin-left:-5px;
  text-align:left;
  font-weight:normal;
}
#section_freq li a span.tooltip li {
 border:none; 
}
textarea#user_emails,textarea#parent_emails {
  width: 300px;
  height: 150px;
}
textarea#parent_emails {
  height: 300px;
}
span.emailbox span{
  display:block;
  padding-bottom:2px;
}

/* The attendance P/T/A/R button styling that used to live here (a chunky
 * 56x44 redesign) conflicted with the MDL parity rules in
 * application.tailwind.css: its min-height leaked through and stretched the
 * buttons. MDL's own values now live in the parity layer as the single
 * definition. */

/* Tooltip styling for attendance history */
.attendance-tooltip {
  position: relative;
  display: inline-block;
}

.attendance-tooltip .tooltip-text {
  visibility: hidden;
  width: 250px;
  background-color: #1f2937;
  color: #f9fafb;
  text-align: left;
  padding: 10px 12px;
  border-radius: 6px;
  position: absolute;
  z-index: 1000;
  bottom: 125%;
  left: 50%;
  margin-left: -125px;
  opacity: 0;
  transition: opacity 0.3s;
  border: 1px solid #374151;
  font-size: 12px;
  max-height: 200px;
  overflow-y: auto;
  white-space: pre-wrap;
  word-break: break-word;
}

.attendance-tooltip .tooltip-text::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #1f2937 transparent transparent transparent;
}

.attendance-tooltip:hover .tooltip-text {
  visibility: visible;
  opacity: 1;
}

/* Stat bar styling */
.attendance-bar {
  height: 8px;
  background-color: #e5e7eb;
  border-radius: 4px;
  overflow: hidden;
  margin-top: 8px;
  position: relative;
}

.attendance-bar-fill {
  height: 100%;
  display: flex;
  border-radius: 4px;
  transition: width 0.3s ease;
}

.attendance-bar-present {
  background-color: #22c55e;
}

.attendance-bar-tardy {
  background-color: #ffda00;
}

.attendance-bar-absent {
  background-color: #ef4444;
}

/* rounded_sliders.css.scss */
/* Rounded sliders */
.switch {
  position: relative;
  display: inline-block;
  width: 54px;
  height: 28px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 20px;
  width: 20px;
  left: 4px;
  bottom: 4px;
  background-color: white;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}

input:checked + .slider {
  background-color: #2196F3;
}

input:focus + .slider {
  box-shadow: 0 0 1px #2196F3;
}

/* The input itself is invisible, so the track carries the focus ring. */
input:focus-visible + .slider {
  outline: 2px solid #1d4ed8;
  outline-offset: 2px;
}

input:disabled + .slider {
  opacity: 0.4;
}

input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

.form-reveal.closed {
  opacity: 0;
  height: 5px;
  overflow: hidden;
  /* Without this, collapsed questions stay in the tab order and are read
     aloud even though they are invisible. Inputs still submit. */
  visibility: hidden;
}

.form-reveal {
  transition-property: opacity, visibility;
  transition-duration: 0.8s;
  transition-timing-function: linear;
  transition-delay: 0.1s;
  overflow: clip;
  opacity: 1;
}

form h6 {
  margin: 15px 0px 0px 0px;
}

