/* =========================
   Accessibility: Focus Styles
   ========================= */
th:focus,
td:focus {
  outline: 2px solid #ffe066;
  outline-offset: 2px;
  background: #2d0036;
}

/* =========================
   Responsive Design
   ========================= */
@media (max-width: 700px) {
  main {
    width: 98%;
    padding: 0.5rem;
  }
  table {
    font-size: 0.95rem;
    margin-block: 10px;
  }
  th, td {
    padding: 8px;
    font-size: 0.95rem;
  }
  h1 {
    font-size: 1.2rem;
  }
  caption {
    font-size: 1rem;
  }
}
/* =========================
   Accessibility Styles
   ========================= */

main:focus {
  outline: 3px solid #ffe066;
  outline-offset: 4px;
}

table:focus {
  outline: 3px solid #ff81ff;
  outline-offset: 4px;
}
/* =========================
   Base & Layout Styles
   ========================= */

* {
  box-sizing: border-box;
  font-family: 'Merriweather Sans', sans-serif;
  font-size: 1rem;
  line-height: 1.6;
}

body {
  margin: 0;
  padding: 0;
  background-color: #570057;
  color: #fff;
}


main {
  width: 85%;
  margin: 0 auto;
  overflow-x: auto; /* Responsive table for small screens */
}

/* =========================
   Table Structure & Layout
   ========================= */
table {
  border-collapse: collapse;
  width: 100%;
  margin-block: 30px;
  border: 5px solid #ff81ff;
  background-color: #2d0036;
  color: #fff;
  box-shadow: 0 4px 24px rgba(0,0,0,0.2);
}

caption {
  margin-bottom: 20px;
}

/* =========================
   Typography
   ========================= */
h1 {
  color: #ffe066;
  background: none;
  font-size: 2rem;
  text-shadow: 1px 1px 4px #000;
  text-align: center;
  margin: 0 auto 16px;
  font-family: Merriweather, serif;
}

/* =========================
   Table Header & Row Styles
   ========================= */
thead th {
  background-color: #4b005c;
  color: #ffe066;
  font-size: 1.2rem;
  letter-spacing: 1px;
}

/* NOTE: :has() selector is not supported in all browsers (e.g., Firefox). Consider using a class for cross-browser support. */
tr.property-row {
  border-top: 5px solid #ff81ff;
}

/* =========================
   Table Cell Styles
   ========================= */
th, td {
  border: 1px solid #ff81ff;
  padding: 12px;
  text-align: left;
}

tbody th {
  background-color: #75008f;
  color: #ffe066;
  font-weight: bold;
}

.code-property,
.code-value {
  font-weight: 900;
  font-size: 1.1rem;
  font-family: monospace;
  background-color: #7b0096;
}

.code-property {
  font-size: 1.3rem;
  border-right: 5px solid #ff81ff;
}