* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	color: #333;
	background-color: #f9f9f9;
}

p {
	margin-bottom: 1em;
}
a {
	text-decoration: none;
	color: inherit;
}

.data-table {
  border-collapse: separate; /* Required for border-radius to work */
  border-spacing: 0;         /* Removes gaps between cells */
  border-radius: 12px;       /* Keeps the corners rounded */
  border: 2px solid #999;    /* Your visible outer border */
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.wide-table {
	width: 100%;
}

/* Style the headers and data cells */
.data-table th, 
.data-table td {
  padding: 10px;
  border-top: 1px solid #333333;
  border-left: 1px solid #333333;
}

/* Clean up borders on outermost edges */
.data-table tr:first-child th,
.data-table tr:first-child td {
  border-top: none;
}
.data-table th:first-child,
.data-table td:first-child {
  border-left: none;
}

/* Style the header row with a grey background */
.data-table th {
  background-color: #e9e9e9; 
}

/* Resizing table */
.resizetable table {
      table-layout: fixed; /* Crucial for controlling widths explicitly */
    }

.resizetable th, td {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

.resizetable th {
      position: relative; /* Anchor for the absolute positioned resizer */
    }

.resizer {
  position: absolute;
  top: 0;
  right: 0;
  width: 5px;
  height: 100%;
  cursor: col-resize;
  user-select: none; /* Prevents text selection while dragging */
  background-color: black;
  z-index: 1;
}

/* Visual feedback on hover/drag */
.resizer:hover,
.resizing .resizer {
  background-color: #0066cc;
  width: 4px;
}

/* Global class applied during drag to keep cursor consistent */
.resizing {
  cursor: col-resize;
}
	
/* ==========================================
   SMOOTH CORNER FIX: Target specific cells
   Formula used: Inner Radius = Parent Radius - Parent Border Thickness
   12px (table radius) - 2px (table border) = 10px inner cell radius
   ========================================== */

/* Top-Left Cell (First header element) */
.data-table tr:first-child th:first-child {
  border-top-left-radius: 10px;
}

/* Top-Right Cell (Last header element) */
.data-table tr:first-child th:last-child {
  border-top-right-radius: 10px;
}

/* Bottom-Left Cell (First cell in the last row) */
.data-table tr:last-child td:first-child {
  border-bottom-left-radius: 10px;
}

/* Bottom-Right Cell (Last cell in the last row) */
.data-table tr:last-child td:last-child {
  border-bottom-right-radius: 10px;
}


/* --- Top Green Bar --- */
.top-bar {
	background-color: #2bbb73;
	color: white;
	height: 60px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 20px; /* Base padding */
}

.logo-container {
	margin-left: -10px; /* Adjusts the icon to be indented roughly 10px from edge */
	display: flex;
	align-items: center;
}

.logo-icon {
	width: 40px;
	height: 40px;
	object-fit: contain;
	border-radius: 4px;
}

.user-menu {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 15px;
}

.avatar-icon {
	width: 32px;
	height: 32px;
	object-fit: contain;
	background-color: rgba(255, 255, 255, 0.3); /* Placeholder styling */
	border-radius: 50%;
}

.auth-links {
	display: flex;
	gap: 10px;
	font-size: 0.9rem;
}

.auth-links a:hover {
	text-decoration: underline;
}

/* --- Navigation Menu Bar --- */
.nav-bar {
	background-color: #fff;
	border-bottom: 1px solid #e0e0e0;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.nav-menu {
	display: flex;
		justify-content: center; /* <-- Add this line to center the items inside */
	list-style: none;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}

	
.nav-item {
	position: relative;
}

.nav-link {
	display: block;
	padding: 15px 20px;
	color: #444;
	font-weight: 500;
	transition: background 0.2s;
}

.nav-link:hover {
	background-color: #f5f5f5;
	color: #2bbb73;
}

/* Dropdown Logic */
.dropdown-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background-color: white;
	min-width: 150px;
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);
	border: 1px solid #e0e0e0;
	list-style: none;
	z-index: 100;
}

.dropdown-menu a {
	display: block;
	padding: 10px 15px;
	color: #555;
	font-size: 0.9rem;
}

.dropdown-menu a:hover {
	background-color: #2bbb73;
	color: white;
}

.nav-item:hover .dropdown-menu {
	display: block;
}

/* side menu Logic */
.side-menu {
	display: none;
	position: absolute;
	top: 0%;
	left: 100%;
	background-color: white;
	min-width: 150px;	
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);
	border: 1px solid #e0e0e0;
	list-style: none;
	z-index: 100;
}

.side-menu a {
	display: block;
	padding: 10px 15px;
	color: #555;
	font-size: 0.9rem;
}

.side-menu a:hover {
	background-color: #2bbb73;
	color: white;
}

.nav-item-side {
	position: relative; /* <--- CRITICAL: Establishes a boundary for the side-menu */
}
.nav-item-side:hover .side-menu {
	display: block;
}

.nav-item-side .nav-link {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%; /* Ensures the link stretches to fill the menu width */
}

/* Optional: Add a little breathing room to the left of the arrow */
.align-right {
    margin-left: auto; 
    padding-left: 10px;
}

/* --- Main Content Area --- */
.content {
	flex: 1;
	max-width: 90%;
	width: 100%;
	margin: 0 auto;
	padding: 20px 20px;
}

.intro-text {
	font-size: 1.1rem;
	margin-bottom: 40px;
	font-style: italic;
	color: #666;
}

/* Typography Demo Styling */
.typography-demo {
	background: white;
	padding: 30px;
	border-radius: 8px;
	border: 1px solid #e0e0e0;
}

.typography-demo div {
	margin-bottom: 20px;
	padding-bottom: 10px;
	border-bottom: 1px dashed #eee;
}

.typography-demo div:last-child {
	border-bottom: none;
	margin-bottom: 0;
}

.label {
	font-size: 0.8rem;
	color: #999;
	text-transform: uppercase;
	margin-bottom: 5px;
	display: block;
}

/* --- Footer --- */
footer {
	background-color: #333333;
	color: #b0b0b0;
	text-align: center;
	padding: 20px;
	font-size: 0.85rem;
	margin-top: auto;
}

.centered {
  display: flex;
  justify-content: center; /* Centers the child horizontally */
}

.form-container {
	width: 300px;
	background: #fff;
	padding: 20px;
	border-radius: 8px;
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.form-container-wide {
	background: #fff;
	padding: 20px;
	border-radius: 8px;
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.container-super-wide {
	width: 100%;
	background: #fff;
	padding: 20px;
	border-radius: 8px;
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.form-container-wide input, textarea, select {
	padding:4px;
}

.form-container a {
	background-color: #DDD;
	color: #000;
	padding: 4px;
	display: block;
}

.form-container a:hover {
	background-color: #f5f5f5;
	color: #2bbb73;
}

/* --- Forms --- */
.form-group {
	margin-bottom: 15px;
}

.form-group label {
	display: block;
	margin-bottom: 5px;
	font-weight: bold;
}

.form-group input {
	width: 100%;
	padding: 8px;
	box-sizing: border-box;
	border: 1px solid #ccc;
	border-radius: 4px;
}

button {
	width: 100%;
	padding: 10px;
	background-color: #007BFF;
	color: white;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 16px;
}

button:hover {
	background-color: #0056b3;
}

.standalone-button {
	width: initial;
}

#message {
	margin-top: 15px;
	font-weight: bold;
}

.error {
	color: red;
}

.form-message {
	font-weight: bold;
	text-align: center;
}

#full-page-error {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 9999; /* High z-index ensures it stays above other elements */
    
    background-color: rgba(255, 255, 255, 0.95); 

    display: none;
    justify-content: center;
    align-items: center;

    color: red;
    font-size: 24pt;
    text-align: center;
}

.tooltip-icon {
  position: relative;
  display: inline-block;
  cursor: copy;
  background-color: #e0e0e0;
  color: #333;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  text-align: center;
  line-height: 18px;
  font-size: 12px;
  font-weight: bold;
  margin-left: 4px;
}

/* The Tooltip Bubble */
.tooltip-icon::after {
  /* Pull the text from the data-tooltip attribute */
  content: attr(data-tooltip);
    
  /* Positioning */
  position: absolute;
  bottom: 125%; /* Places it above the icon */
  left: 50%;
  transform: translateX(-50%) scale(0.8); /* Centered and slightly shrunk for animation */
  
  /* Styling */
  background-color: #333;
  color: #fff;
  padding: 6px 10px;
  border-radius: 4px;
  font-size: 12px;
  white-space: nowrap; /* Prevents text wrapping */
  box-shadow: 0 2px 5px rgba(0,0,0,0.2);
  
  /* Visibility & Animation */
  opacity: 0;
  pointer-events: none; /* Prevents accidental hovering issues */
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.required {
	color: red;
}

.listbox {
	border: 2px solid grey;
}
/* Listbox*/
.custom-listbox {
  list-style-type: none; /* Removes default bullet points */
  padding: 0;
  margin: 0;
  border: 1px solid #ccc;
  border-radius: 4px;
}

.custom-listbox item-row {
  padding: 4px;
  border-bottom: 1px solid #eee;
  cursor: pointer;
  background-color: #fff;
  display: block; /* Ensures the whole row is clickable */
  overflow: hidden;
  text-overflow: ellipsis;
}

.custom-listbox .selectedItem {
font-weight: bold;
}
/* Remove the border from the very last item */
.custom-listbox item-row:last-child {
  border-bottom: none;
}

/* Add a brief hover effect so users know it is interactive */
.custom-listbox item-row:hover {
  background-color: #f5f5f5;
}