/*Begin Basics*/
* {
  margin: 0;
  padding: 0;
}
html {
  font-size: 10px;
  user-select: none;
}
svg, canvas {
  touch-action: none;
}
body {
  font-family: "Mukta", "HelveticaNeue", sans-serif;
  font-weight: 400;
}
img {
  max-width: 100%;
  height: auto;
  border: 0;
  vertical-align: bottom;
}
h1, h2, h3, h4, h5 {
  margin-bottom: .1rem;
  font-weight: 600;
}
h1 {
  font-size: 2.8rem;
  margin-bottom: .5rem;
  font-weight: 900;
}
h2 {
  font-size: 2.6rem;
  margin-bottom: .3rem;
  font-weight: 800;
}
h3 {
  font-size: 2rem;
}
h4 {
  font-size: 1.9rem;
}
h5 {
  font-size: 1.8rem;
}
p {
  font-size: 1.8rem;
  line-height: 2.2rem;
  margin-bottom: .5rem;
}
ul {
  font-size: 1.8rem;
  line-height: 2.2rem;
  margin-left: 2em;
  margin-bottom: 1em;
}
li {
  margin-bottom: .5em;
}
ol {
  margin-left: 2em;
  margin-bottom: 1em;
}
a:link, a:visited, a:hover, a:active {
  color: #000000;
}
/*End Basics*/
#home_external iframe {
  width: 100%;
  height: 25rem;
  border: none;
}
#home_external .number {
  font-size: 9rem;
  font-weight: bolder;
}
#home_external .dollar {
  font-size: 2.2rem;
  top: -4.2rem;
  position: relative;
}
#home_external .panel {
  margin-top: 4rem;
}
#home_external .button {
  background-color: #000000;
  border: none;
  border-radius: .3rem;
  color: #FFFFFF;
  font-weight: bolder;
  padding: 1.5rem 3.2rem;
  text-align: center;
  text-decoration: none;
  font-size: 1.8rem;
  cursor: pointer;
  margin-top: 1rem;
  max-width: 10rem;
  margin-top: 1rem;
  display: inline-block;
}
#home_external .item1 {
  padding: 3rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  border: solid 2px;
  background-color: gold;
  /*  border-bottom: .2rem solid;*/
}
#home_external .item2 {
  /*  border-top: .2rem solid;*/
  margin-top: 1rem;
  border: solid 2px;
  text-align: center;
  padding: 3rem;
  padding-top: 1rem;
  padding-bottom: 2rem;
  background-color: gold;
}
#home_external .item3 {
  padding: 3rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  border: solid 2px;
  background-color: gold;
  margin-bottom: 1rem;
  text-align: center;
  /*  border-bottom: .2rem solid;*/
}
#home_external .item4 {
  padding: 3rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
  border: solid 2px;
  background-color: gold;
  margin-bottom: 1rem;
  text-align: center;
  margin-top: 1rem;
  /*  border-bottom: .2rem solid;*/
}
#home_external ul {
  list-style: disc;
  font-size: 1.6rem;
  line-height: 1.9rem;
  margin-left: 2rem;
}
#teacher form {
  border-radius: .3rem;
  border: solid 1px;
  padding: 5rem;
  margin-top: 1rem;
}
#teacher .box {
  border-radius: .3rem;
  border: solid 1px;
  padding: 2rem;
  margin-bottom: 1rem;
}
#teacher .student_access_message {
  background-color: #ffff91;
  font-weight: 600;
}
#student .box {
  border-radius: .3rem;
  border: solid 1px;
  padding: 2rem;
  margin-bottom: 1rem;
}
/**/
/*Begin Architecture*/
#column_wrapper {
  display: flex;
}
#middle_column {
  width: 780px;
  padding: 1rem;
  padding-top: 0;
}
#left_column {
  flex-grow: 1;
}
#right_column {
  flex-grow: 1;
}
/*End Site Architecture*/
/**/
/*Begin Activity Grid  */
#grid_container {
  display: flex;
  flex-wrap: wrap;
}
#grid_container .item {
  flex: auto;
  width: 40%;
  text-align: center;
  background-color: #FFFFFF;
  border-radius: 0rem;
  border: .2rem solid;
  padding: 1.5rem;
  margin: .3rem;
}
#grid_container a {
  text-decoration: none;
  color: #000000;
}
#grid_container .title {
  font-size: 1.6rem;
  font-weight: 500;
  margin-top: 1rem;
}
#grid_container .board {
  border-radius: 0rem;
  border: .2rem solid;
  padding-top: 8rem;
  padding-bottom: 8rem;
}
/*End Activity Grid  */
/**/
/*Begin Game*/
#game_container {
  display: none;
}
#game {
  position: relative;
}
#loading_div {
  position: relative;
  padding-bottom: 10rem;
  text-align: center;
  font-weight: bold;
}
#loading_div .action {
  font-size: 1.2rem;
}
/*End Game*/
/**/
/* Begin Footer */
#footer {
  padding: 5rem 1rem 1rem;
  font-size: 1.4rem;
  display: flex;
  flex-direction: column;
  align-items: center; /* <-- Ensure center alignment */
  text-align: center;
}
#footer .footer-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem; /* Cleaner spacing between items */
  margin-bottom: 1rem;
}
#footer .menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 0;
  margin: 0;
  list-style: none;
}
#footer .menu-item {
  margin: 0 1rem;
  font-weight: 700;
}
#footer .copyright {
  font-size: 1.3rem;
  display: flex;
  justify-content: center;
  text-align: center;
  width: 100%;
  margin-top: .8rem;
}
#menu-footer a {
  font-weight: normal;
  text-decoration: none;
}
/*End Footer */
/**/
/*Begin Contact*/
#contact {
  padding-top: 10rem;
  padding-bottom: 10rem;
  text-align: center;
}
#contact .section_margin {
  margin-top: 1rem;
}
/*End Contact */
/**/
/*Begin Media Query*/
@media all and (max-width: 30em) {
  #loading_div {
    padding-top: 10rem;
  }
}
@media all and (min-width: 30em) {
  #grid_container .item {
    width: 20%;
  }
}
@media all and (min-width: 40em) {
  html {
    font-size: 10px;
  }
  #grid_container a {
    font-size: 1.4rem;
    line-height: 1.6rem;
  }
  #grid_container .item {
    width: 16%;
  }
  #loading_div {
    padding-top: 10rem;
  }
}
/**/
/* Begin Contact*/
#contact {
  padding: 2rem;
}
#contact .upper {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
#contact h1 {
  font-size: 3.4rem;
  font-weight: bolder;
}
#contact p {
  text-align: center;
  font-size: 1.5rem;
}
#contact .panel {
  padding: 5rem;
  padding-bottom: 3rem;
  margin: 3rem;
  border: solid 1px;
  border-radius: 1rem;
}
/*End Contact */
/**/
/* Begin Privacy Terms*/
#privacy_terms {
  font-size: 16px;
  line-height: 24px;
}
#privacy_terms h2 {
  font-size: 1.8rem;
  margin-bottom: .4rem;
}
#privacy_terms ul {
  display: inline-block;
  text-align: left;
  margin-bottom: 1rem;
  margin-left: 3rem;
}
#privacy_terms ol {
  display: inline-block;
  text-align: left;
  margin-top: 1rem;
  margin-bottom: 1rem;
  margin-left: 3rem;
}
#privacy_terms ol ul {
  list-style-type: disc;
}
#privacy_terms a {
  word-break: break-all;
}
#privacy_terms ul {
  display: inline-block;
  text-align: left;
  margin-bottom: 1em;
  margin-left: 3em;
}
#privacy_terms ol {
  display: inline-block;
  text-align: left;
  margin-top: .2em;
  margin-bottom: 1em;
  margin-left: 3em;
}
#privacy_terms ol ul {
  list-style-type: disc;
}
#privacy_terms li {
  font-size: 1.8rem;
  line-height: 1.4em;
  margin-bottom: 1.1em;
}
#privacy_terms a {
  word-break: break-all;
}
/* End Privacy Terms*/
/**/
/*Begin Search Box*/
#search_header {
  margin-top: 2rem;
  margin-bottom: 2rem;
  display: -ms-flexbox;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
#search_header .search_main {
  display: inline-block;
  width: 250px;
}
#search_header .search_query_results {
  font-weight: bold;
  color: #234d61;
}
#form_search input[type=search] {
  width: 80%;
  padding: .5rem;
  font-size: 1.6rem;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  background-color: #ffffff;
}
#form_search button {
  float: right;
  height: 32px;
  width: 15%;
  padding: 0;
  background-color: #010313;
  border: none;
  color: white;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  cursor: pointer;
  text-transform: uppercase;
  font-size: 1rem;
  border-radius: .5rem;
}
/*End Search Box*/
/**/
/*Begin Form */
input:not([type="radio"]):not([type="checkbox"]) {
  -webkit-appearance: none;
}
input[type=text], input[type=password], input[type=email], input[type=search] {
  width: 100%;
  border-radius: 0;
  padding: .5rem;
  margin-bottom: 1rem;
  font-size: 1.6rem;
  font-weight: 500;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
input [type=button], input[type=submit], input[type=reset] {
  width: 100%;
  max-width: 100rem;
  background-color: #000000;
  color: #FFFFFF;
  font-size: 1.6rem;
  font-weight: 700;
  padding: 1.4rem 2rem;
  margin: 0;
  border-radius: .8rem;
  cursor: pointer;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  border: none;
  outline: none;
}
select {
  padding: .5rem;
  font-size: 1.6rem;
  font-weight: 500;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
label {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: .2rem;
  text-align: left;
}
/*End Form */
/*ul {
  list-style: none;
  margin: 0;
}
a {
  text-decoration: none;
  color: inherit;
}*/
.teacher-dashboard {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  margin-top: 30px;
}
.teacher-main {
  flex: 2;
  min-width: 300px;
}
.teacher-sidebar {
  flex: 1;
  min-width: 280px;
}
.teacher-sidebar ul li {
  font-size: 1.7rem; /* Adjust size as needed */
}
.teacher-dashboard h1 {
  font-size: 3rem; /* Adjust as needed */
  line-height: 3.2rem;
  margin-bottom: 0.5rem;
}
.teacher-dashboard h2 {
  font-size: 2.4rem; /* Adjust as needed */
  line-height: 2.6rem;
  margin-top: 1.2rem;
  margin-bottom: 0.4rem;
}
.welcome-box, .info-box, form {
  background: #fff;
  border: 1px solid #ddd;
  padding: 24px;
  margin-bottom: 20px;
  border-radius: 8px;
}
.info-box.light {
  background: #f9f9f9;
}
form label {
  display: block;
  margin-top: 12px;
  font-weight: bold;
}
form input[type="text"], form input[type="submit"], form button {
  width: 100%;
  margin-top: 8px;
  padding: 10px;
  font-size: 16px;
  box-sizing: border-box;
}
form input[type="submit"], form button {
  margin-top: 16px;
  background: #007bff;
  color: #fff;
  border: none;
  cursor: pointer;
}
form button {
  background: #444;
}
form button:hover, form input[type="submit"]:hover {
  opacity: 0.9;
}
@media (max-width: 768px) {
  .teacher-dashboard {
    flex-direction: column;
  }
}
.icon-header {
  text-align: center;
  margin-bottom: 10px;
}
.icon-header .material-icons {
  display: block;
  font-size: 36px;
  margin: 0 auto 6px;
  color: #333;
}
.icon-header h2 {
  margin: 0;
  font-size: 20px;
}
.student-hero {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  padding: 2rem;
  max-width: 1200px;
  margin: 0 auto;
  font-size: 1.125rem; /* Base text size for the whole section */
  line-height: 1.6;
}
.student-main {
  flex: 2;
  min-width: 280px;
}
.student-sidebar {
  flex: 1;
  min-width: 220px;
  background-color: #f8f8f8;
  padding: 1.5rem;
  border-radius: 8px;
  font-size: 1rem;
}
.welcome-box h1 {
  font-size: 2rem;
  margin-bottom: 0.75rem;
}
.welcome-box p {
  font-size: 1.125rem;
  margin-bottom: 1rem;
}
.info-box h2 {
  font-size: 1.25rem;
  margin-bottom: 0.5rem;
}
.info-box p, .info-box ul {
  font-size: 1rem;
  margin-bottom: 0.75rem;
}
.info-box ul {
  padding-left: 1.25rem;
  list-style-type: disc;
}
@media (max-width: 768px) {
  .student-hero {
    flex-direction: column;
    padding: 1rem;
  }
}
/* Nav container */
.container {
  max-width: 768px;
  margin: 0 auto;
  padding: 0 1rem;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.navbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1rem;
  background: white;
  position: relative;
  z-index: 1000;
}
/* Logo */
.navbar .logo {
  font-size: 1.5rem;
  font-weight: 600;
}
/* Menu links (desktop) */
.navbar .nav-menu {
  display: flex;
  gap: 1.5rem;
}
.navbar .nav-menu a {
  text-decoration: none;
  color: #444;
  font-size: 2rem;
}
/* Hamburger for mobile */
.navbar .hamburger {
  display: none;
  font-size: 3rem;
  cursor: pointer;
}
/* Mobile menu overlay */
.mobile-menu {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  background: white;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  overflow: hidden;
}
.mobile-menu a {
  display: block;
  padding: 2rem;
  color: #444;
  text-decoration: none;
  font-size: 2rem;
}
.hamburger {
  display: none;
  font-size: 4rem;
  cursor: pointer;
  padding: 1rem;
  user-select: none;
}
.mobile-menu {
  display: none;
  position: absolute;
  top: 100%;
  right: 1rem;
  background: white;
  border: 1px solid #ddd;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  z-index: 1000;
}
.mobile-menu a {
  display: block;
  padding: 1rem 1.5rem;
  color: #333;
  text-decoration: none;
  white-space: nowrap;
}
/* Responsive behavior */
@media (max-width: 768px) {
  .navbar .nav-menu {
    display: none;
  }
  .navbar .hamburger {
    display: block;
  }
}
.section {
  text-align: center;
  padding: 4rem 2rem;
  max-width: 800px;
  margin: 0 auto 6rem;
}
h1 {
  font-size: 4.2rem;
  margin-bottom: 2.5rem;
  line-height: 1.2;
}
h2 {
  font-size: 3.5rem;
  margin-bottom: 2rem;
  line-height: 1.3;
}
.subhead {
  font-size: 2.8rem;
  margin-bottom: 2rem;
  color: #444;
}
.sub-description {
  font-size: 2rem;
  max-width: 60rem;
  margin: 0 auto 3rem;
  line-height: 1.7;
  color: #333;
}
.cta-button {
  display: inline-block;
  background-color: #0070c1;
  color: #fff !important;
  padding: 1.4rem 2.8rem;
  font-size: 2.5rem;
  font-weight: 600;
  border: none;
  border-radius: 8px;
  text-decoration: none;
  margin: 2rem auto;
  transition: background-color 0.3s ease;
}
.cta-button:hover {
  background-color: #005fa3;
}
.trial-note {
  font-size: 2rem;
  color: #555;
  margin-bottom: 0.5rem;
}
.section-divider {
  border: none;
  height: 1px;
  background-color: #ddd;
  margin: 4rem auto;
  width: 80%;
}
.tool-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  justify-items: center;
  margin: 4rem 0;
}
.tool-tile {
  border-radius: 10px;
  width: 100%;
  max-width: 220px;
  height: 220px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  font-size: 1.25rem;
}
.tool-tile img {
  display: block;
  margin-bottom: 0.5rem;
}
/* === Larger text for final sections === */
.faq-list, .faq-item, .faq-item p, .faq-item strong {
  font-size: 1.8rem;
  line-height: 1.7;
}
/* FAQ styles – tightened spacing */
.faq-list {
  text-align: left;
  margin: 0 auto;
  max-width: 800px;
}
.faq-item {
  margin-bottom: 2rem;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
  background: none;
}
.faq-item strong {
  display: block;
  margin-bottom: 0.5rem;
  color: #222;
}
.faq-item p {
  margin: 0;
  color: #444;
}
.faq-subhead {
  border-top: 1px solid #e2e2e2;
  padding-top: 2.4rem;
  margin-top: 3.2rem;
  font-size: 2rem;
  font-weight: 600;
}
/* === SECTION: Teachers and FAQ === */
.section:last-of-type, .section:nth-last-of-type(2), .faq-list, .faq-item, .faq-item p, .faq-item strong {
  font-size: 2rem; /* Larger base font */
  line-height: 1.8; /* More vertical spacing for clarity */
}
.faq-subhead {
  font-size: 2.2rem;
  font-weight: 600;
  margin-top: 3.5rem;
  padding-top: 2.5rem;
  border-top: 1px solid #e2e2e2;
}
.section {
  text-align: center;
  padding: 3rem 2rem;
  max-width: 800px;
  margin: 0 auto 4rem; /* was 6rem, now tighter */
}
.section-divider {
  margin: 3rem auto; /* was 4rem */
}
@media (max-width: 600px) {
  .tool-grid {
    grid-template-columns: 1fr; /* stack in one column */
    gap: 2.5rem;
    margin: 3rem 0;
  }
  .tool-tile {
    font-size: 2rem; /* bigger titles */
    align-items: center;
    height: auto;
    padding: 1.5rem 0;
  }
  .tool-tile img {
    max-width: 160px; /* much larger */
    height: auto;
    margin-bottom: 1rem;
  }
}
@media (max-width: 600px) {
  h1 {
    font-size: 3.4rem;
    line-height: 3.6rem;
  }
  .subhead {
    font-size: 2.2rem;
    margin-bottom: 1.5rem;
  }
}
.faq-list {
  font-size: 1.8rem;
  line-height: 1.6; /* slightly tighter */
}
.sub-description, .trial-note {
  font-size: 2rem;
  line-height: 1.5;
}
.cta-button {
  font-size: 2rem;
  padding: 1rem 2.5rem;
}
.tool-tile {
  font-size: 2rem; /* Up from 1.25rem */
}
.tool-grid {
  gap: 2rem;
  margin: 4rem 0;
}
.nav-menu {
  display: flex;
  gap: 0.5em; /* spacing between buttons */
  align-items: center;
}
.cta-nav-link {
  background-color: #007acc; /* or match your CTA color */
  color: white !important;
  padding: 0.4em 0.8em;
  border-radius: 6px;
  text-decoration: none !important;
  font-weight: bold;
  display: inline-block;
  transition: background-color 0.3s;
}
.cta-nav-link:hover {
  background-color: #005fa3;
  color: white !important;
  text-decoration: underline !important;
}
.mobile-menu {
  display: none;
  flex-direction: column;
  gap: 0.75em; /* more space between items */
  padding: 1em;
  position: absolute;
  top: 60px; /* below navbar */
  right: 0;
  z-index: 1000;
  background: white; /* or transparent */
  border: 1px solid #ccc;
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.mobile-menu.open {
  display: flex !important;
}
/* Base style for mobile and desktop buttons */
.mobile-menu .cta-nav-link {
  background-color: #007acc; /* Solid CTA blue */
  color: white !important;
  padding: 0.5em 1em;
  border-radius: 6px;
  text-decoration: none !important;
  font-weight: bold;
  display: block;
  border: none;
  margin-bottom: 0.5em; /* spacing between buttons */
  text-align: center;
}
/* Hover is still nice for desktop */
.mobile-menu .cta-nav-link:hover {
  background-color: #005fa3;
}
.student-login-header {
  text-align: center;
  margin-bottom: 2.5rem;
}
.student-login-title {
  font-size: 2.75rem; /* ˜ 44px */
  margin-bottom: 1rem;
  color: #222;
}
.student-login-note {
  font-size: 1.75rem; /* ˜ 28px */
  color: #444;
  line-height: 1.6;
  padding: 0 1rem;
}
.teacher-dashboard {
  font-size: 2rem; /* 16px x 1.6 = 25.6px */
  line-height: 2rem;
}
.teacher-dashboard p, .teacher-dashboard li, .teacher-dashboard label, .teacher-dashboard input, .teacher-dashboard h1, .teacher-dashboard h2 {
  font-size: inherit;
}
.teacher-dashboard ul {
  font-size: 1.7rem;
}
.student-home-wrapper {
  max-width: 900px;
  margin: 3rem auto;
  padding: 0 2rem;
  color: #333;
}
.welcome-section h1 {
  font-size: 3.2rem;
  margin-bottom: 1rem;
}
.welcome-section p {
  font-size: 2rem;
  line-height: 1.4;
  margin-bottom: 2.5rem;
}
.category-link {
  display: block;
  text-decoration: none;
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  transition: box-shadow 0.2s ease, background-color 0.2s ease;
}
.category-section h2 {
  font-size: 2.4rem;
  margin-bottom: 0.3rem; /* reduced from 0.5rem */
  color: #333;
}
.category-description {
  font-size: 2rem;
  line-height: 1.4; /* slightly tighter line height */
  color: #555;
}
.final-search-form {
  display: flex;
  justify-content: center;
  margin: 2rem auto;
}
.input-group {
  display: flex;
  align-items: stretch; /* ?? ensures equal height */
  border: 1px solid #ccc;
  border-radius: 5px;
  overflow: hidden; /* ?? trims radius neatly */
}
/* Input field */
.search-input {
  padding: 0.6em 1em;
  font-size: 1rem;
  border: none;
  outline: none;
  flex: 1 1 auto;
  min-width: 240px;
  box-sizing: border-box;
}
/* Button */
.search-button {
  padding: 0 1.2em;
  font-size: 1rem;
  border: none;
  background-color: #0073aa;
  color: white;
  font-weight: 600;
  cursor: pointer;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

/* Desktop & global layout */
.search-panel {
  margin: 16px 0;
  display: flex;
  justify-content: center;
}
.search-panel input, .search-panel button {
  font-size: 1rem;
  line-height: 1.2; /* ensures consistent text height */
  padding: 10px 12px; /* slightly more vertical padding */
  border: 2px solid #0080FF;
  box-sizing: border-box;
  font-family: inherit;
  height: 42px; /* explicit height ensures match */
}
.search-panel input {
  font-size: 2rem;
  width: 300px;
  border-right: none;
  border-radius: 4px 0 0 4px;
  outline: none;
}
.search-panel button {
  background-color: #0080FF;
  color: #fff;
  border-radius: 0 4px 4px 0;
  cursor: pointer;
  border-left: none;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
/* Remove Firefox inner padding */
.search-panel button::-moz-focus-inner {
  border: 0;
  padding: 0;
}
/* Mobile adjustments */
@media (max-width: 768px) {
  .search-panel {
    margin: 24px 0;
  }
  .search-panel input {
    width: 70%;
    font-size: 2rem;
  }
}
.math-card {
  position: relative;
  cursor: pointer;
}
.math-card .card-link {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  /* Keep link transparent so underlying text is visible */
  text-indent: -9999px;
  background: transparent;
  display: block;
}
.math-card > * {
  position: relative;
  z-index: 2; /* Ensure content appears above the link overlay */
}
.search-panel form {
  display: flex;
  justify-content: center;
  margin: 16px 0;
}
.search-panel input, .search-panel button {
  font-size: 2rem;
  line-height: 1.2;
  padding: 10px 12px;
  border: 2px solid #0080FF;
  box-sizing: border-box;
  font-family: inherit;
  margin: 0;
}
.search-panel input {
  width: 300px;
  border-right: none;
  border-radius: 4px 0 0 4px;
  outline: none;
}
.search-panel button {
  background-color: #0080FF;
  color: #fff;
  border-left: none;
  border-radius: 0 4px 4px 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
/* Firefox fix to normalize button height */
.search-panel button::-moz-focus-inner {
  border: 0;
  padding: 0;
}
/* Mobile adjustments */
@media (max-width: 768px) {
  .search-panel form {
    margin: 24px 0;
  }
  .search-panel input {
    width: 70%;
    font-size: 1.6rem;
  }
}
.final-search-form .input-group {
  display: flex;
  max-width: 400px;
  margin: 0 auto;
}
.search-input, .search-button {
  font-size: 1rem;
  padding: 10px 14px;
  border: 2px solid #0080FF;
  box-sizing: border-box;
  font-family: inherit;
  margin: 0;
}
.search-input {
  flex: 1;
  border-right: none;
  border-radius: 4px 0 0 4px;
  outline: none;
}
.search-button {
  background-color: #0080FF;
  color: #fff;
  border-left: none;
  border-radius: 0 4px 4px 0;
  cursor: pointer;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.search-button::-moz-focus-inner {
  border: 0;
  padding: 0;
}
/* Mobile tweaks */
@media (max-width: 768px) {
  .search-input {
    font-size: 3rem !important;
  }
}
.student-home-wrapper {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.top-panel {
  display: flex;
  align-items: stretch;
  gap: 16px;
  height: 300px;
}

/* Math column */
.math-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1.5;
}

.math-card,
.categories-dropdown {
  background-color: #006cf1;
  color: #fff;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.math-card {
  flex: 3;
  font-size: 2.5rem;
  font-weight: bold;
  text-align: center;
}

.categories-dropdown {
  flex: 1;
  padding: 8px;
  flex-direction: column;
}

.categories-dropdown .dropdown-title {
  margin-bottom: 6px;
  font-size: 1.2rem;
  text-transform: uppercase;
}

.categories-dropdown select {
  width: 90%;
  padding: 6px;
  font-size: 1.6rem;
  border-radius: 4px;
  border: none;
  color: #00008B;
}

/* Category buttons column */
.category-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}

.category-btn {
  flex: 1;
/*  padding: 24px 16px;*/
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  font-weight: bold;
  text-transform: uppercase;
  text-decoration: none;
    color: #fff;
  border-radius: 6px;
}

/* Individual category colors */
.category-btn.art { background-color: #fd5c62; }
.category-btn.literacy { background-color: #edbc05; }
.category-btn.science { background-color: #168b03; }
.category-btn.feelings { background-color: #ea2da1; }

/* Extra button (half height) */
.category-btn.feelings {
  flex: .5;
}

/* Category title styling */
#category_title {
  text-align: center;
  margin: 16px 0;
}

#category_title h1 {
  width: 100%;
  padding: 8px 0;
  font-size: 2.5rem;
  border: 2px solid #000;
  border-radius: 4px;
  box-sizing: border-box;
  background: transparent;
  color: #000;
}

.top-panel a {
  color: #fff;
}


/* Responsive adjustments */
@media (max-width: 768px) {
  .top-panel {
    flex-direction: column;
    height: auto;
    gap: 0;
  }

  .math-col,
  .category-col {
    width: 100%;
    flex: none;
  }

  .math-card,
  .categories-dropdown,
  .category-btn {
    padding: 24px 0;
  }

  .category-col {
    margin-top: 16px;
  }
}
