/* ------------------ Global Reset ------------------ */
html, body {
  height: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden; /* prevent horizontal scroll */
}

body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  background-color: #ffffff;
  color: #000000;
  line-height: 1.6;
  -webkit-overflow-scrolling: touch;
  display: flex;
  flex-direction: column; /* header + main + footer */
}

/* ------------------ Main Content ------------------ */
main {
  flex: 1; /* fills available vertical space */
  padding: 10px;
  max-width: 600px;
  margin: 0 auto;
  margin-top: 70px;   /* offset for fixed header */
  padding-bottom: 50px; /* offset for fixed footer */
  text-align: center;
  box-sizing: border-box; /* include padding in width calculations */
}
main ol,
main ul {
  text-align: left;       /* left-align list text */
  margin: 1rem auto;      /* space above/below, auto center container */
  padding-left: 1.5rem;   /* indent list markers nicely */
  max-width: 600px;       /* optional: constrain width for readability */
}
/* Page Titles */
h1, .page-title {
  font-size: 1.6rem;
  font-weight: bold;
  margin-bottom: 16px;
}
h2, .page-title {
  font-size: 1.4rem;
  font-weight: bold;
  margin-bottom: 16px;
}
h3 {
  font-size: 1.2rem;
  font-weight: bold;
  margin-bottom: 16px;
}
/* Links */
a {
  color: #cc0000;
  text-decoration: none;
  word-break: break-word;       /* allows breaking long words/URLs */
  overflow-wrap: anywhere;      /* ensures breaking anywhere if needed */
  display: inline-block;        /* respects container width */
  max-width: 100%;              /* prevents link from exceeding container */
}

a:hover, a:focus {
  text-decoration: underline;
}

/* ------------------ Header ------------------ */
.site-header {
  border-bottom: 1px solid black;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background-color: #cc0000;
  color: #ffffff;
  padding: 0.5rem;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  position: relative;
}

.logo a {
  color: #ffffff;
  text-decoration: none;
  font-weight: 700;
  font-size: 2rem;
  -webkit-text-stroke: 0.5px black;
}

/* Menu Toggle Button */
.menu-toggle {
  font-size: 2rem;
  background: #cc0000;
  color: #ffffff;
  border: none;
  border-radius: 6px;
  padding: 6px 10px;
  cursor: pointer;
  font-weight: 600;
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}

.menu-toggle:hover,
.menu-toggle:focus {
  background: #cc0000;
  color: #ffffff;
}

/* ------------------ Menu ------------------ */
.menu {
  position: absolute;
  right: 16px;
  top: 60px;
  background: #ffc0cb;
  color: #000000;
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.15);
  width: 250px;
  z-index: 1000;
}

.menu.closed {
  display: none;
}

.menu.open {
  display: block;
}

.menu ul {
  list-style: none;
  margin: 0;
  padding: 6px 0;
}

.menu li {
  border-bottom: 1px solid rgba(0,0,0,0.06);
}

.menu li:last-child {
  border-bottom: 0;
}

.menu a {
  display: block;
  padding: 10px 16px;
  color: #000000;
  text-decoration: none;
  text-align: center;
  font-size: 1.5rem;
  font-weight: 600;
}

.menu a:hover, .menu a:focus {
  color: #ffffff;
  background-color: #cc0000;
}

/* ------------------ Form Styling ------------------ */
form label {
  display: block;
  margin-bottom: 12px;
  text-align: center;
}

form input {
  display: block;
  width: 300px;      /* default width for larger screens */
  max-width: 100%;   /* responsive */
  padding: 8px;
  margin: 4px auto 12px auto; /* centers horizontally */
  border: 2px solid #cc0000;
  border-radius: 15px;
  box-sizing: border-box;
  font-size: 1.5rem;
  text-align: center;
}
.points {
  display:block;
  width: 100%;
  border:2px solid #000;
  border-radius:15px;
  margin-bottom: 2rem;
  background: #fff;
  font-size: 1rem;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box
}
.coupon {
  display:none;
  width: 100%;
  border:2px solid #333;
  border-radius:15px;
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  padding-left: 20px;
  padding-right: 20px;
  background: #ffe4e1;
  box-sizing: border-box
}
.reward-notes {
	width: 90%;
	height: 80px;
	text-align: center;
	font-size: 1rem;
	border: 2px solid #000;
	border-radius: 10px;
}
.task-notes {
	width: 90%;
	height: 80px;
	text-align: center;
	font-size: 1rem;
	border: 2px solid #000;
	border-radius: 10px;
}
.claim-btn, .redeem-btn, .misc-btn {
	width: 300px;
	border: 2px solid #fff;
	border-radius: 50px;
	background: #cc0000;
	color: #fff;
	text-align: center;
	font-size: 2rem;
	padding: 15px;
	margin-top: 20px;
}
table {
  width: 100%;
  border:2px solid #333;
  border-radius:15px;
  border-collapse: separate;
  border-spacing: 0;
  margin-bottom: 2rem;
  padding: 0;
  background: #cc0000;
  box-sizing: border-box
}

td {
  padding: 5px 5px 5px 5px;
  border: 0;
  background: #ffe4e1;
}

th {
  cursor: pointer;
  background: #cc0000;
  color: #fff;
  padding: 5px 5px 5px 5px;
}

th.sorted-asc::after {
  content: " ▲";
}

th.sorted-desc::after {
  content: " ▼";
}

tbody tr:nth-child(even) {
  background: #f9f9f9;
}
/* top corners on the header row */
thead tr:first-child th:first-child {
  border-top-left-radius: 13px;
}
thead tr:first-child th:last-child {
  border-top-right-radius: 13px;
}
/* bottom corners on last row */
tbody tr:last-child td:first-child {
  border-bottom-left-radius: 13px;
}
tbody tr:last-child td:last-child {
  border-bottom-right-radius: 13px;
}
/* ------------------ Footer ------------------ */
.footer {
  position: fixed;     /* floating like header */
  bottom: 0;           /* anchor to bottom */
  left: 0;
  width: 100%;
  z-index: 1000;
  border-top: 1px solid black;
  background-color: #cc0000;
  color: #ffffff;
  padding: 0.25rem 0;

  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 3rem;
  font-size: 1.5rem;
}

.footer a {
  color: #ffffff;
  text-decoration: none;
  font-size: 2rem;
}

.footer a:hover {
  color: #ffcccc;
}