/* ========== Base ========== */

body {
	background-color: #FFFFFF;
	font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
	line-height: 1.33;
}

/* ========== Typography ========== */

.title {
	font-size: 1em;
	font-weight: bold;
}

.subtitle {
	font-size: 0.95em;
}

.bigtext {
	font-size: 1.3em;
	line-height: 1.50;
}

.text {
	font-size: 0.9em;
}

.smalltext {
	font-size: 0.8em;
}

.label {
	font-size: 0.9em;
	font-weight: bold;
}

.redlabel {
	font-size: 0.9em;
	font-weight: bold;
	color: #FF0000;
}

.smalllabel {
	font-size: 0.8em;
}

.text TD {
	font-size: 1em;
}

.submenu {
	font-family: Geneva, Verdana, Arial, Helvetica, sans-serif;
	font-size: 0.9em;
}

.submenu TD {
	font-family: Geneva, Verdana, Arial, Helvetica, sans-serif;
	font-size: 1em;
	font-weight: bold;
}

.submenu TD A {
	font-family: Geneva, Verdana, Arial, Helvetica, sans-serif;
	font-weight: normal;
	text-decoration: none;
	color: #000000;
}

.submenu TD A:hover {
	font-family: Geneva, Verdana, Arial, Helvetica, sans-serif;
	font-weight: normal;
	text-decoration: underline;
	color: #000000;
}

.redtitle {
	font-size: 1em;
	font-weight: bold;
	color: #FF0000;
}

.bigblue {
	font-size: 1.3em;
	line-height: 1.50;
	font-weight: bold;
	color: #0000FF;
}

.greenlabel {
	font-size: 1.3em;
	line-height: 1.50;
	font-weight: bold;
	color: #00FF00;
}

.littlegreenlabel {
	font-size: 0.8em;
	font-weight: bold;
	color: #00FF00;
}

/* ========== Search ========== */

.searchResultsHeader {
	background: #AAAAAA;
	text-align: center;
	font-size: 0.9em;
	font-weight: bold;
	color: #FF0000;
}

.sortFieldHighlight {
	background: #EEEEEE;
}

/* ========== Forms ========== */

INPUT, SELECT, TEXTAREA {
	font-family: inherit;
	color: #000000;
	font-size: 14px;
}

/* ========== Various Artists Validation ========== */

INPUT.artist-error {
	border: 2px solid #FF0000;
	background-color: #FFF0F0;
}

.artist-error-message {
	display: none;
	color: #FF0000;
	font-size: 11px;
	font-weight: bold;
	margin-top: 4px;
	padding: 4px 8px;
	background-color: #FFF0F0;
	border: 1px solid #FF0000;
	border-radius: 3px;
}

/* ========== Live Search ========== */

.search-input-container {
	display: inline-block;
	position: relative;
}

#searchInput {
	width: 400px;
	padding: 10px 14px;
	font-size: 16px;
}

#searchInfoIcon {
	display: inline-block;
	margin-left: 8px;
	width: 22px;
	height: 22px;
	line-height: 22px;
	text-align: center;
	border-radius: 50%;
	background-color: #666;
	color: #fff;
	font-size: 14px;
	font-weight: bold;
	cursor: pointer;
	text-decoration: none;
	vertical-align: middle;
}

#searchInfoIcon:hover {
	background-color: #888;
}

#liveResults {
	display: none;
	margin-top: 20px;
	text-align: left;
}

.live-results-summary {
	margin-bottom: 15px;
	text-align: center;
	font-size: 0.95em;
	line-height: 1.5;
}

/* ========== Entry Tables ========== */

.entry-table { border-collapse: collapse; width: 100%; }
.entry-header { background: #444; color: #fff; }
.entry-header th { padding: 10px 8px; font-weight: bold; text-align: left; }
.entry-row { transition: background-color 0.15s ease; }
.entry-row td { padding: 8px; border-bottom: 1px solid #ddd; }
.entry-row-even { background-color: #f9f9f9; }
.entry-row-odd { background-color: #fff; }
.entry-row:hover { background-color: #e8e8e8; }
.entry-row a { color: #000; text-decoration: none; }
.entry-row a:hover { color: #CC0000; text-decoration: underline; }

.talkset-row { background: #555; }
.talkset-row td { padding: 8px; border-bottom: 1px solid #ddd; font-weight: bold; color: #DDDD22; }
.breakpoint-row { background: #444; }
.breakpoint-row td { padding: 8px; border-bottom: 1px solid #ddd; font-weight: bold; color: #80c880; text-align: center; }

.sortable-header {
	cursor: pointer;
	user-select: none;
}

.sortable-header:hover {
	background-color: #555;
}

.sortable-header.sorted {
	background-color: #666;
}

.live-results-status {
	margin-top: 15px;
	text-align: center;
	font-size: 0.85em;
	color: #666;
}

.live-results-loading-more {
	text-align: center;
	padding: 15px;
	font-size: 0.9em;
	color: #666;
}

.live-results-loading,
.live-results-error,
.live-results-empty {
	text-align: center;
	padding: 20px;
	font-size: 0.95em;
}

.live-results-error {
	color: #FF0000;
}

/* ========== Show Info Bar ========== */

.show-info-bar { border-collapse: separate; border-spacing: 2px; width: 100%; background: #AAAAAA; }
.show-info-bar th, .show-info-bar td { padding: 4px 8px; background: #AAAAAA; text-align: center; }
.show-info-bar a { color: #CC0000; }

/* ========== Capsule Badges ========== */

.request-capsule {
  display: inline-block;
  background: #CC0000;
  color: #fff;
  font-size: 0.7em;
  font-weight: bold;
  padding: 2px 8px;
  border-radius: 9999px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

.rotation-capsule {
  display: inline-block;
  background: #555;
  color: #fff;
  font-size: 0.7em;
  font-weight: bold;
  padding: 2px 8px;
  border-radius: 9999px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

.exclusive-capsule {
  display: inline-block;
  background: #7B2D8E;
  color: #fff;
  font-size: 0.7em;
  font-weight: bold;
  padding: 2px 8px;
  border-radius: 9999px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

/* ========== Navigation Bar ========== */

.nav-bar {
	background-color: #333;
	padding: 8px 0;
	margin-bottom: 10px;
}

.nav-bar ul {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: center;
}

.nav-bar li {
	display: inline-block;
	margin: 0;
	padding: 0;
}

.nav-bar a {
	display: inline-block;
	color: #fff;
	text-decoration: none;
	padding: 8px 16px;
	font-size: 0.85em;
	font-weight: bold;
}

.nav-bar a:hover {
	background-color: #555;
	text-decoration: none;
}

.nav-bar a.active {
	background-color: #CC0000;
}

/* ========== Modal ========== */

.modal-overlay {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
	z-index: 1000;
	justify-content: center;
	align-items: center;
}

.modal-content {
	background-color: #fff;
	padding: 20px 30px;
	border-radius: 8px;
	max-width: 600px;
	max-height: 80vh;
	overflow-y: auto;
	position: relative;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.modal-close {
	position: absolute;
	top: 10px;
	right: 15px;
	font-size: 24px;
	font-weight: bold;
	color: #666;
	cursor: pointer;
	line-height: 1;
}

.modal-close:hover {
	color: #000;
}

.modal-title {
	margin-top: 0;
	margin-bottom: 15px;
	font-size: 1.1em;
}

.modal-content ul {
	text-align: left;
	padding-left: 25px;
}

.modal-content li {
	padding: 4px 0;
}

/* ========== Buttons ========== */

input[type="submit"] {
	color: #fff;
}

/* ========== Utility ========== */

.hidden {
	display: none !important;
}

.wxyc-visible {
	display: block !important;
}

.wxyc-flex {
	display: flex;
}

/* ========== Disabled Fields ========== */

input:disabled,
select:disabled,
textarea:disabled {
	background-color: #C0C0C0;
}

/* ========== Inline Validation ========== */

.validation-message {
	display: none;
	color: #FF0000;
	font-size: 0.85em;
	font-weight: bold;
	margin-top: 6px;
	padding: 6px 10px;
	background-color: #FFF0F0;
	border: 1px solid #FF0000;
	border-radius: 3px;
	text-align: center;
}

.validation-message.visible {
	display: block;
}

/* ========== Print ========== */

@media print {
	.nav-bar {
		display: none;
	}

	body {
		font-size: 9pt;
	}

	.entry-table td,
	.entry-table th {
		padding: 2px 4px !important;
	}
}
