/* STICKY FOOTER — keeps footer at bottom without excess space below */
html { height: 100%; }
body { display: flex; flex-direction: column; min-height: 100%; }
article { flex: 1 0 auto; }
footer { flex-shrink: 0; }

/* BACKGROUND COLORS */
.bgDarkBlue 	{background-color:#102142}
.bgDarkBlueOn	{background-color:#1A2B4C}
.bgMediumBlue 	{background-color:#214263}
.bgLightBlue	{background-color:#E6F5FF}
.bgOrange	 	{background-color:#F97515} /*'FF5732*/
.bgLightOrange  {background-color:#FFC449} /*'#FFC449}*/
.bgYellow	 	{background-color:#FFD34B}
.bgRed			{background-color:#FF5A00}
.bgGrey1		{background-color:#FFFFFF}
.bgGrey2		{background-color:#F0F0F0}
.bgGrey3		{background-color:#E5E5E5}
.bgGrey4		{background-color:#CCCCCC}
.bgGrey5		{background-color:#9E9E9E}
.bgGrey6		{background-color:#808080}
.bgGrey7 		{background-color:#444444}
.bgGrey8        {background-color:#252525}
.bgWhite		{background-color:#FFFFFF}
.bgBlack		{background-color:#000000}

.bg-bak			{background-image:url(images/bak.gif);}

/* BORDER STYLES */
.FrameBorder    {border:1px solid #808080}
.FrameBorder7   {border:2px solid #444444}
.Border1		{border:1px solid #FFFFFF}
.Border2		{border:1px solid #F0F0F0}
.Border3		{border:1px solid #E5E5E5}
.Border4		{border:1px solid #CCCCCC}
.Border5		{border:1px solid #9E9E9E}
.Border6		{border:1px solid #808080}
.Border7		{border:1px solid #444444}
.DarkBorder 	{border:1px solid #000000}
.BlueBorder		{border: 1px solid #33405A}

/* TEXT */
.txtDarkBlue 	{color:#102142}
.txtDarkBlueOn	{color:#1A2B4C}
.txtMediumBlue  {color:#214263}
.txtLightBlue	{color:#E6F5FF}
.txtOrange      {color:#F97515} /*'FF5732*/
.txtLightOrange {color:#FFC449} /*'#FFC449}*/
.txtYellow      {color:#FFD34B}
.txtRed         {color:#FF5A00}
.txtGrey		{color:#808080}
.txtBlack       {color:#000000}
.txtWhite       {color:#FFFFFF}
.txtBold        {font-weight:bold}

/* FONT SIZES */
.font9  {font-size:9px}
.font10 {font-size:10px}
.font11 {font-size:11px}
.font12 {font-size:12px}
.font13 {font-size:13px}
.font14 {font-size:14px}
.font15 {font-size:15px}
.font18 {font-size:18px}
.nowrap {white-space:nowrap}

/* PADDING */
.p1313 {padding:1px 3px 1px 3px;}
.p4 {padding:4px;}
.p10 {padding:10px;}
.left4 {padding-left:4px;}
.left10 {padding-left:10px;}
.m10 {margin:10px;}
.m5 {margin:5px;}

/* ALIGNMENT */
.vab {vertical-align:bottom;}

/* GRID */
.col1 { width: 20% }
.col2 { width: 40% }
.col3 { width: 60% }
.col4 { width: 80% }
.col5 { width: 100% }

BODY {
		background-color: #000000;
		color : #FFFFFF;
		font-family: sans-serif;
	   	scrollbar-face-color: #353535;
	  	scrollbar-highlight-color: #000000;
	   	scrollbar-shadow-color: #000000;
	   	scrollbar-3dlight-color: #FFAA29;
	   	scrollbar-arrow-color: #FF8A29;
	   	scrollbar-track-color: #999999;
	   	scrollbar-darkshadow-color: #171137;
		margin-top : 0px;
		margin-left : 0px;
		margin-right : 0px;
		margin-bottom : 55px;
		}
	DIV{font-size: 11px;}
	IMG{border:0px;}
	A:link {
		color: #FF8A29;
		background: transparent;
		text-decoration: none;
		font-weight : bold;
		}
	A:active {
		color:  #FF8A29;
		background: transparent;
		text-decoration: blink
		}
	A:visited {
		color: #FF8A29;
		background: transparent;
		text-decoration: none;
		font-weight : bold;
		}
	A.lightorange{
		color : #FFC449;
	}
	A.selected{
		color: #102142;
		background-color:#FFC449;
	}
	A.boldlink{
		color : #FF5A00;
	}
	A.submenulink{
		font-family : monospace;
		font-size : 13px;
		font-weight : bold;
	}
	A.submenulinkon{
		color : #FFC449;
		font-family : monospace;
		font-size : 13px;
		font-weight : bold;
	}
	A:hover {
		text-decoration: underline
		}
	.onlink{
		color : #FFC449;
	}
	.link{
		color : #FF8A29;
	}
	
	
/* FORM STYLES */
	FORM{
			margin: 0px;
		}
	Input.small{
		vertical-align : text-bottom;
		border : 1px solid Gray;
		background-color : #AAAAAA;
		font-size:10px;
	}
	Input.button {
	    padding:3px;	
		border-top: 1px solid Gray;
		border-right:1px solid #444444;
		border-bottom:1px solid #444444;
		border-left:1px solid Gray;
		background-color : #102142;
		color : #FFC449;
		font-weight : bold;
		font-size: 11px;
		}
	.buttons {
		vertical-align : text-bottom;
		border : 2px ridge Gray;
		background-color : #102142;
		color : #FF8A29;
		font-weight : bold;
		font-size: 11px;
		}
	SELECT{ 
		background-color: #102142;
		background-image: url(./images/bak.gif);  
		color: #FFC449;
		font-weight: bold;  
		font-size: 11px;  
		vertical-align: text-bottom;  
		font-family: sans-serif; 
		}
	SELECT.MAIN{ 
		background-image: url(./images/bak.gif);
		font-size : 14pt;
		font-family : monospace;
		font-weight : bold;
		color : #FFC449;
		}
	SELECT.SUB{ 
		background-image: url(./images/bak.gif);
		font-size : 10pt;
		font-family : monospace;
		font-weight : bold;
		color : #FFC449;
		}	
	selectset{ 
		vertical-align: text-top; 
		}
	textarea {
	    scrollbar-face-color: #353535;
	    scrollbar-highlight-color: #000000;
	    scrollbar-shadow-color: #000000;
	    scrollbar-3dlight-color: #FFAA29;
	    scrollbar-arrow-color: #FF8A29;
	    scrollbar-track-color: #999999;
	    scrollbar-darkshadow-color: #171137;
		background : Silver;
	  	}
		
/* TEXT STYLES */
	.tickets{
		font-size: 25px;
		}
	tickets.a{
		color:#FFFFFF;
		font-size:15px;
	}
	.bodytext{
		font-size: 11px;
		}
	.mynote{
	    font-size:12px;
	    color:#FF5A00;
	    }
	.headertext{
		font-size: 12px;
		color: #214263;
		}
	.itemtitle{
		font-size : 11px;
		font-weight : bold;
		color: #214263;
		}
	.setitem{
		font-size : 11px;
		font-weight : bold;
		color: #FFC449;
		}
	.smallsetitem{
		font-size : 10px;
		font-weight : bold;
		color: #FFC449;
		}
	.statcontent{
		font-size:10px;
		color:#FFFFFF;
	}
	.detail {
		font-size:9px;
		}
	.detailgreen {
		font-size:9px;
		color:#FFC449;
		}
	.detail3 {
		font-size:9px;
		color:#E5E5E5;
		}
	.detail5 {
		font-size:9px;
		color:#9E9E9E;
		}
	.detailitem{
		font-size:9px;
		color:#FFC449;
	}
	.submenulink{
		font-family : monospace;
		font-size : 10px;
		font-weight : bold;
		color : #FF8A29;
	}
	.smallsubmenulink{
		font-family : monospace;
		font-size : 8pt;
		font-weight : bold;
		color : #FF8A29;	
		}
	.smallsubmenulinkon{
		font-family : monospace;
		font-size : 8pt;
		font-weight : bold;
		color : #FFC449;
		}
	.news{
		font-size : 10px;
		}
	.newsitem{
		font-size : 11px;
		font-weight : bold;
		color : #FFC449;
	}
	.bignewsitemon{
	    font-size : 14px;
	    font-weight : bold;
	    font-family : sans-serif;
	    color : red;
    }
	.smallnewsitem{
		font-size : 11px;
		font-weight : bold;
		color : #FFD34B;
	}
	.smallnewsitemgreen{
		font-size : 11px;
		font-weight : bold;
		color : #008080;
	}
	.reportlink{
		font-size : 12px;
		font-weight : bold;
		color: #FFFFFF;
	}
	.smallreportlink{
		font-size : 11px;
		font-weight : bold;
	}
	.headeritem {
		font-size : 11px;
		font-weight : bold;
	}
	.subtitle{
		font-size : 18px;
		font-family : monospace;
		font-weight : bold;
		color : #FFC449;
	}
	.newsitemon{
		font-size : 10px;
		font-weight : bold;
		color : #FF5A00;
	}
	.overliblink{
		font-size : 12px;
		font-weight : bold;
		color : #FF8A29;
		text-decoration: none;
	}
	a.overliblink:hover {
		cursor: default;
		text-decoration: none;
	}
	.grey4{
		color : #CCCCCC;
	}
	.lightorange{
		color: #FFC449;
	}
	.errortext{
		color: #FF5A00;
		font-size:11px;
		font-weight:bold;
	}
	.my-cell {
		font-weight: bold;
		color: #102142;
		background-color: #FFD34B;
		text-align: center;
		border: 1px solid #808080;
	}
	.text-small-caps {
		font-variant: small-caps;
	}
	.highlightcell {
		color: #102142;
		background-color: #FFC449;
	}

	/* Tour Opener/Closer classes */
	.tour-role-to { border-top: 1px solid #808080; }
	.tour-role-tc { border-bottom: 1px solid #808080; }

	/* Slot classes */
	.slot-opener	 { background-color: #006666 !important; }
	.slot-set1closer { background-color: #336699 !important; }
	.slot-set2opener { background-color: #004040 !important; }
	.slot-midset	 { background-color: #2E2E2E !important; }
	.slot-closer	 { background-color: #214263 !important; }
	.slot-encore	 { background-color: #660000 !important; }
	.slot-2ndencore  { background-color: #CC0000 !important; }

	.slot-encore-break { border-top: 1px solid #FFC449; }


/* TEXT JUSTIFICATION */
.lj { text-align: left; }
.cj { text-align: center; }
.rj { text-align: right; }
.jj { text-align: justify; }

.indent { padding-left: 10px; }

/*TABLE STYLES */
.tabpadding{
	padding:10px 5px 10px 5px;
}
.threedeetable{
	border-top:1px solid #808080;
	border-left:1px solid #808080;
	border-right:1px solid #4F4F4F;
	border-bottom:1px solid #4F4F4F;
}
.threedeetab{
	border-top:1px solid #808080;
	border-left:1px solid #808080;
	border-right:1px solid #4F4F4F;
	
}
.threedeetabheader{
	border-top:1px solid #808080;
	border-left:1px solid #808080;
	background-color:#214263;
	border-bottom:1px solid #000000;
}
.threedeetabfooter{
	border-top:1px solid #808080;
	border-right:1px solid #4F4F4F;
	background-color:#214263;
	border-bottom:1px solid #000000;
}
.threedeetabcell{
	border-top:1px solid #808080;
	background-color:#214263;
	border-bottom:1px solid #000000;
}
	
.fadeddetail {
	color: #A49FA4;
	font-size:7pt;
	font-weight : bold;
}
.newslogcell{
		border : 2px solid #808080;
		empty-cells : show;
}
.columnheader {
	color: #CCCCCC;
	font-size: 10px;
	font-weight : bold;
	}
.headerpanel{
		background-color:#102142;
		border-bottom: 1px solid #808080;
		font-size:11px;
		padding:2px 4px 2px 4px;
		color:#FFFFFF;
	}

/* CELL STYLES */
	.headercell{
		background-color:#102142;
		border-bottom: 1px solid #808080;
		font-size:11px;
		padding:2px 4px 2px 4px;
		color:#FFFFFF;
	}
/* CELL STYLES */

/* BOX STYLES */
	.darkheadercell{
		font-size:12px;
		padding-left:3px;
		color:#FFFFFF;
		font-weight: bold;
		background-color:#214263;
		}
	.lightheadercell{
		font-size:12px;
		padding-left:3px;
		color:#FFFFFF;
		font-weight: bold;
		background-color:#F97515;
		}

/* ALTERNATING ROW COLOR TABLE*/
/* Add 'alternating' class to table & use standard thead + tbody structure */
table.alternating {
    padding: 0;
    border-spacing: 0;
}
table.alternating td,
table.alternating th {
    font-size: 11px;
    padding: 1px 4px;
    border-right: 1px solid #808080;
}
table.alternating th {
    font-weight: bold;
    background-color: #214263;
	font-variant:small-caps;
}
table.alternating tbody tr { background-color: #1A2B4C; }
table.alternating tbody tr:nth-child(odd) { background-color: #102142; }

table.show-list td,
table.show-list th { border-right: none; }
table.show-list th { font-variant: normal; }

@media only screen and (max-width: 576px) {
	table.alternating td,
	table.alternating th {
		font-size: 14px;
	}
}

/* MENU LIST */
ul.menu-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

ul.menu-list > li a {
	display: block;
	height: 100%;
	background-color: #102142;
	padding: 4px 5px;
}
ul.menu-list > li a:hover { background-color: #1A2B4C; text-decoration: none; color: #FFC449; }
ul.menu-list > li { border-bottom: 1px solid #214263; }
ul.menu-list > li:last-child { border-bottom: none; }
ul.menu-list > li.hr { border-bottom: 3px solid #214263; display: block; }

/* Filter Grouping */
.filter-group {
	list-style: none;
	padding: 0;
	background-color: #252525;
	border: 1px solid #808080;
}

.filter-group .filter-group-header {
	background-color: #102142;
	border-bottom: 1px solid #808080;
	font-size: 11px;
	padding: 2px 4px 2px 4px;
	color: #ffffff;
}

.filter-group .filter-group-item,
.filter-group .filter-group-item-group,
.filter-group .filter-group-sub-item {
	position: relative;
	padding: 6px 8px;
	margin: 0;
	transition: background-color 0.1s;
}

.filter-group .filter-group-item-group {
	border-top: 1px solid #444444;
}

.filter-group .filter-group-sub-item {
	padding-left: 14px;
	background-color: #2E2E2E;
}

.filter-group .filter-group-item:hover,
.filter-group .filter-group-sub-item:hover {
	background-color: #1A2B4C;
}

.filter-group .filter-group-item a,
.filter-group .filter-group-sub-item a {
	text-decoration: none;
}

/* Stretched-link: the entire <li> is the tap target, not just the anchor text */
.filter-group .filter-group-item > a::after,
.filter-group .filter-group-sub-item > a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.filter-group .selected {
	background-color: #FFC449;
	color: #000000;
	font-weight: bold;
}

.filter-group .selected:hover {
	background-color: #FFC449;
}

@media only screen and (max-width: 576px) {
	.filter-group .filter-group-item,
	.filter-group .filter-group-item-group,
	.filter-group .filter-group-sub-item {
		padding: 10px 8px;
	}
	.filter-group .filter-group-sub-item {
		padding-left: 18px;
	}
}

/* FLOATING DIV STYLES */
.left {
	float: left;
	text-align: left;
	}
	
.right {
	float: right;
	text-align: right;
	}

.hidden {
	display: none;
}

/* ID STYLES */
	#msg {
		position: absolute;
		left: 30%;
		top:100px;
		width: 30%;
		background: White;
		border: 2px solid Red;
		font: 12px;
		color: Red;
		text-align: center;
		z-index: 2;
		}

/* Mobile Formatting */
@media only screen and (max-width: 576px) {
	/* Body-weight text — readable phone size */
	.bodytext, .news, .statcontent,
	table.alternating td,
	table.alternating th {
		font-size: 14px;
	}

	/* Setlist Last/MyLast cells: keep the orange count + marker text (TD, LIB, etc.)
	   compact so it doesn't dominate the dense per-row info. */
	.setcell .bodytext {
		font-size: 12px;
	}

	/* Detail/secondary text — was 9px desktop, raise to readable size on phones */
	.detail, .detail3, .detail5, .detailitem, .detailgreen {
		font-size: 12px;
	}

	/* Faded counts and column headers — was 7pt / 10px, no longer microscopic */
	.fadeddetail, .columnheader {
		font-size: 11px;
	}

	.sticky-top {
		top: 50px;
	}
}

/********** Year Grid — Mobile **********/
/* Transforms horizontal year columns into vertical blocks with dates flowing inline */
@media (max-width: 767.98px) {
	.year-grid,
	.year-grid > tbody,
	.year-grid > tbody > tr {
		display: block;
		width: 100%;
	}
	.year-grid > tbody > tr > td,
	.year-grid > tbody > tr > td.yearcell {
		display: block;
		border-right: none;
		border-bottom: 1px solid #808080;
	}
	.year-grid td > table {
		width: 100%;
	}
	.year-grid td > table > tbody {
		display: flex;
		flex-wrap: wrap;
	}
	.year-grid td > table > tbody > tr {
		display: contents;
	}
	.year-grid .headerpanel {
		flex-basis: 100%;
		position: sticky;
		top: 0;
		z-index: 2;
	}
	.year-grid .ic {
		border-bottom: none;
		border-right: 1px solid #3A3A3A;
		padding: 3px 6px;
	}
}

/********** Homepage Show Cards (LatestShows / NextShows / HistoryShows) **********/
/* Inline-list show entries on Default.aspx — each "card" is one row with date + info + venue. */
.show-card {
	white-space: nowrap;
	padding: 0;
	text-align: left;
}

.show-card .show-date-link {
	display: inline-block;
	padding: 1px 0;
}

.show-card .show-location {
	font-size: 10px;
}

@media only screen and (max-width: 576px) {
	.show-card {
		padding: 4px 5px;
		border-bottom: 1px solid #1A2B4C;
	}

	.show-card:last-child {
		border-bottom: none;
	}

	.show-card .show-date-link {
		padding: 6px 4px;
		min-height: 36px;
		font-size: 14px;
	}

	.show-card .show-location {
		font-size: 13px;
	}
}

/********** Album Spread Bar Chart **********/
/* DMB.Output.AlbumSpread renders a list of album rows with horizontal bars. */
table.album-spread {
	border-spacing: 0;
	width: 100%;
	table-layout: fixed;
}

table.album-spread .album-spread-name {
	padding-top: 4px;
	font-size: 12px;
	white-space: normal;
	word-wrap: break-word;
	overflow-wrap: break-word;
}

table.album-spread .album-spread-bar {
	background-color: #214263;
	height: 14px;
	min-width: 30px;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: 0 4px;
}

table.album-spread .album-spread-count {
	font-size: 12px;
	font-weight: bold;
	color: #FFFFFF;
}

@media only screen and (max-width: 576px) {
	table.album-spread .album-spread-name {
		font-size: 13px;
	}
	table.album-spread .album-spread-count {
		font-size: 13px;
	}
}

/********** Song Search (autocomplete dropdown) **********/
/* Used by m/partials/song-search.ascx — reusable across pages that need to pick a song. */
.song-search {
	background-color: #102142;
	border: 1px solid #444444;
	margin-bottom: 12px;
	max-width: 480px;
}

.song-search .card-body {
	background-color: #102142;
	padding: 10px 14px;
}

/* Compact variant — drops the card chrome so the input fits inline in a nav bar */
.song-search-compact {
	background: transparent;
	border: none;
	margin-bottom: 0;
	max-width: none;
	flex: 1;
	min-width: 0;
}

.song-search-label {
	color: #FFC449;
	font-weight: bold;
	font-size: 13px;
	margin-bottom: 4px;
	display: block;
}

.song-search-wrap {
	position: relative;
}

.song-search-input.form-control {
	background-color: #252525;
	color: #FFC449;
	border: 1px solid #444444;
	font-size: 14px;
}

.song-search-input.form-control::placeholder {
	color: #808080;
}

.song-search-input.form-control:focus {
	background-color: #252525;
	color: #FFC449;
	border-color: #FFC449;
	box-shadow: 0 0 0 0.15rem rgba(255, 196, 73, 0.25);
}

.song-search-suggestions {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 100;
	max-height: 280px;
	overflow-y: auto;
	background-color: #252525;
	border: 1px solid #444444;
	border-top: none;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);
}

.song-search-suggestion {
	padding: 8px 12px;
	color: #FFC449;
	font-size: 14px;
	cursor: pointer;
	border-bottom: 1px solid #1A2B4C;
}

.song-search-suggestion:last-child {
	border-bottom: none;
}

.song-search-suggestion:hover {
	background-color: #1A2B4C;
}

.song-search-suggestion.selected {
	background-color: #FFC449;
	color: #102142;
}

@media (max-width: 576px) {
	.song-search { max-width: 100%; }
	.song-search-input.form-control {
		font-size: 16px; /* Prevent iOS zoom on focus */
		padding: 10px 12px;
	}
	.song-search-suggestion {
		padding: 12px 14px;
		font-size: 15px;
	}
}

/********** Fantasy Section — modern form controls **********/
/* Scoped to .fantasy-page so the rest of the site keeps its legacy form styling. */
.fantasy-page input[type="text"],
.fantasy-page input[type="number"],
.fantasy-page input[type="email"],
.fantasy-page input[type="password"],
.fantasy-page input[type="search"],
.fantasy-page textarea,
.fantasy-page select {
	background-color: #252525;
	color: #FFC449;
	border: 1px solid #444444;
	border-radius: 3px;
	padding: 6px 10px;
	font-size: 14px;
	font-family: sans-serif;
	font-weight: normal;
	background-image: none;
	transition: border-color 0.15s, box-shadow 0.15s, background-color 0.15s;
}

.fantasy-page input[type="text"]:focus,
.fantasy-page input[type="number"]:focus,
.fantasy-page input[type="email"]:focus,
.fantasy-page input[type="password"]:focus,
.fantasy-page input[type="search"]:focus,
.fantasy-page textarea:focus,
.fantasy-page select:focus {
	border-color: #FFC449;
	outline: none;
	box-shadow: 0 0 0 0.15rem rgba(255, 196, 73, 0.25);
}

.fantasy-page textarea {
	min-height: 80px;
	background: #FFFFFF;
	color: #102142;
}

/* Primary buttons — gold-on-navy action style. Compact to match surrounding text/icons. */
.fantasy-page input[type="submit"],
.fantasy-page input[type="button"],
.fantasy-page button[type="submit"],
.fantasy-page button[type="button"]:not(.nav-link):not([data-bs-toggle]) {
	background-color: #FFC449;
	background-image: none;
	color: #102142;
	border: 1px solid #FFC449;
	border-radius: 3px;
	padding: 2px 8px;
	font-size: 11px;
	font-weight: 600;
	font-family: sans-serif;
	cursor: pointer;
	line-height: 1.3;
	margin: 1px 2px;
	transition: background-color 0.15s, color 0.15s, transform 0.05s;
}

.fantasy-page input[type="submit"]:hover,
.fantasy-page input[type="button"]:hover,
.fantasy-page button[type="submit"]:hover,
.fantasy-page button[type="button"]:not(.nav-link):not([data-bs-toggle]):hover {
	background-color: #FFD34B;
	color: #102142;
}

.fantasy-page input[type="submit"]:active,
.fantasy-page input[type="button"]:active,
.fantasy-page button[type="submit"]:active,
.fantasy-page button[type="button"]:not(.nav-link):not([data-bs-toggle]):active {
	transform: translateY(1px);
}

.fantasy-page input[type="submit"]:disabled,
.fantasy-page input[type="button"]:disabled,
.fantasy-page button:disabled {
	background-color: #555555;
	color: #AAAAAA;
	border-color: #555555;
	cursor: not-allowed;
}

/* Checkboxes — bigger, gold accent */
.fantasy-page input[type="checkbox"],
.fantasy-page input[type="radio"] {
	width: 18px;
	height: 18px;
	margin: 0 6px 0 0;
	cursor: pointer;
	accent-color: #FFC449;
	vertical-align: middle;
}

/* Labels (next to checkboxes etc) — white text, tappable */
.fantasy-page label {
	color: #FFFFFF;
	font-size: 14px;
	cursor: pointer;
	vertical-align: middle;
}

/* AjaxControlToolkit ComboBox renders as a <table> wrapping an <input>+<select>;
   neutralize the table chrome so it inherits our modern input look. */
.fantasy-page .ajax__combobox_textboxcontainer input[type="text"],
.fantasy-page .ajax__combobox_inputcontainer input[type="text"] {
	background-color: #252525;
	color: #FFC449;
	border: 1px solid #444444;
	font-weight: bold;
}

.fantasy-page .ajax__combobox_buttoncontainer button,
.fantasy-page .ajax__combobox_buttoncontainer input[type="button"] {
	background-color: #102142;
	color: #FFC449;
	border: 1px solid #444444;
	min-height: 28px;
	padding: 0 8px;
}

@media (max-width: 576px) {
	.fantasy-page input[type="text"],
	.fantasy-page input[type="number"],
	.fantasy-page input[type="email"],
	.fantasy-page input[type="password"],
	.fantasy-page input[type="search"],
	.fantasy-page textarea,
	.fantasy-page select {
		font-size: 16px; /* prevent iOS zoom on focus */
		padding: 8px 10px;
		width: 100%;
		max-width: 100%;
	}
	.fantasy-page input[type="submit"],
	.fantasy-page input[type="button"],
	.fantasy-page button[type="submit"],
	.fantasy-page button[type="button"]:not(.nav-link):not([data-bs-toggle]) {
		padding: 4px 10px;
		font-size: 12px;
	}
	.fantasy-page input[type="checkbox"],
	.fantasy-page input[type="radio"] {
		width: 22px;
		height: 22px;
	}
}

/********** Fantasy Section — shared mobile-friendly chrome **********/
/* Used by /fantasy/Default, MainScreen, MatchScreen, SetScreen, F_SongChecklist */
.fantasy-page {
	min-height: 100vh;
	padding: 10px;
}

.fantasy-page .fantasy-header {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	gap: 10px;
	padding: 5px;
	margin-bottom: 10px;
}

.fantasy-page .fantasy-banner img {
	max-width: 100%;
	height: auto;
}

.fantasy-page .fantasy-title {
	max-width: 100%;
	margin: 10px auto;
	padding: 8px 10px;
	text-align: center;
	font-size: 22px;
}

.fantasy-page .fantasy-card {
	background-color: #102142;
	border: 1px solid #808080;
	padding: 10px;
	margin-bottom: 10px;
}

.fantasy-page .fantasy-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	margin-bottom: 10px;
}

.fantasy-page .fantasy-banners {
	text-align: center;
	padding-top: 20px;
}

.fantasy-page .fantasy-banners img {
	max-width: 100%;
	height: auto;
	margin-bottom: 6px;
}

/* Mobile bumps for the legacy fantasy table classes (10–11px desktop becomes microscopic on phones) */
@media (max-width: 576px) {
	.fantasy-page .setcell,
	.fantasy-page .endcell {
		font-size: 12px !important;
		padding: 4px 4px !important;
		white-space: normal !important;
		vertical-align: top;
		word-break: break-word;
	}
	.fantasy-page .setcolumn,
	.fantasy-page .setendcolumn {
		font-size: 11px !important;
		padding: 4px 4px !important;
		white-space: normal !important;
	}
	.fantasy-page .fantasy-title {
		font-size: 18px;
	}

	/* Tighten outer chrome on mobile */
	.fantasy-page { padding: 6px; }
	.fantasy-page .fantasy-card { padding: 8px; }
	.fantasy-page .fantasy-title { padding: 6px 8px; margin: 8px 0; }

	/* Form controls fill width on mobile */
	.fantasy-page .form-select,
	.fantasy-page .form-control {
		max-width: 100% !important;
		width: 100%;
		font-size: 16px;
		min-height: 44px;
	}

	/* Keep the natural table layout on mobile — just compact it so all columns
	   fit the screen width without horizontal scrolling. */
	.fantasy-page .fantasy-table-wrap {
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
	.fantasy-page .fantasy-table-wrap table {
		width: 100%;
		table-layout: auto;
	}
}

/********** Bootstrap Popover Theme **********/
/* Replaces legacy overlib hover tooltips. Triggered via data-bs-toggle="popover" attributes
   emitted by DMB.Output.BasicOverlib / InfoOverlib / etc. */
.popover {
	background-color: #102142;
	border: 1px solid #808080;
	color: #FFC449;
	font-family: sans-serif;
	font-size: 13px;
	max-width: 320px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);
}

.popover .popover-body {
	color: #FFC449;
	padding: 8px 12px;
	line-height: 1.4;
}

.popover .popover-body a,
.popover .popover-body a:link,
.popover .popover-body a:visited {
	color: #FF8A29;
}

.popover .popover-body a:hover {
	color: #FFC449;
	text-decoration: underline;
}

.popover .popover-body .setitem {
	color: #FFC449;
}

/* Arrow color overrides — match popover background to dark navy */
.bs-popover-top > .popover-arrow::after,
.bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after {
	border-top-color: #102142;
}
.bs-popover-bottom > .popover-arrow::after,
.bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after {
	border-bottom-color: #102142;
}
.bs-popover-start > .popover-arrow::after,
.bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after {
	border-left-color: #102142;
}
.bs-popover-end > .popover-arrow::after,
.bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after {
	border-right-color: #102142;
}
.bs-popover-top > .popover-arrow::before,
.bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::before {
	border-top-color: #808080;
}
.bs-popover-bottom > .popover-arrow::before,
.bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::before {
	border-bottom-color: #808080;
}
.bs-popover-start > .popover-arrow::before,
.bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::before {
	border-left-color: #808080;
}
.bs-popover-end > .popover-arrow::before,
.bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::before {
	border-right-color: #808080;
}

/* Info-popover trigger — keep image baseline-aligned and provide a tap-friendly hit area */
a.info-popover {
	display: inline-block;
	padding: 4px;
	vertical-align: middle;
}

/********** All-Time Stats Grid (TourShow.aspx no-year view) **********/
/* Generated by admin/updatestats.asp into alltime*.htm; included via SSI on TourShow.aspx. */
.alltime-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: flex-start;
}

.alltime-grid-table {
	flex: 1 1 0;
	min-width: 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.alltime-grid-aggregates {
	flex: 0 0 220px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.stat-panel {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
	padding: 6px 10px;
	background-color: #102142;
	border: 2px solid #808080;
}

.stat-panel-label {
	flex: 1;
	min-width: 0;
}

.stat-panel-value {
	flex-shrink: 0;
}

/* Block variant — for Top Ten lists / multi-line content inside an aggregate panel */
.stat-panel-block {
	display: block;
	flex-direction: column;
	align-items: stretch;
	padding: 8px 10px;
	line-height: 1.5;
}

.year-section-header {
	background-color: #000000 !important;
}

.year-section-header > td {
	padding: 6px 8px !important;
	border-bottom: 1px solid #808080;
}

@media (max-width: 767.98px) {
	.alltime-grid {
		gap: 8px;
	}
	.alltime-grid-table { flex: 1 1 100%; }
	.alltime-grid-aggregates {
		flex: 1 1 100%;
		flex-direction: row;
		flex-wrap: wrap;
	}
	.stat-panel {
		flex: 1 1 calc(50% - 4px);
		min-width: 140px;
	}
}

/* Mobile (xs): only the active tab pane is visible. The .alltime-grid wrapper
   is not a Bootstrap .tab-content container, so we provide our own hide rule. */
@media (max-width: 575.98px) {
	.alltime-grid > .tab-pane:not(.active) {
		display: none !important;
	}
	/* Pad the page above the fixed-bottom tab bar so the last row isn't hidden */
	.alltime-stats {
		padding-bottom: 60px;
	}
}

/********** Mobile Bottom Tab Bar **********/
.fixed-bottom.nav-underline .nav-link {
	color: #999999;
	text-transform: uppercase;
	font-size: 13px;
	letter-spacing: 0.05em;
	border-bottom-color: transparent;
}
.fixed-bottom.nav-underline .nav-link.active {
	color: #FFC449;
	font-weight: bold;
	border-bottom-color: #FFC449;
}

/********** Responsive Date / Inline Text Class **********/
/* Used by show-list date links — readable size, gold link color preserved by parent <a> */
.text-resp {
	font-size: 13px;
	font-weight: bold;
}

@media only screen and (max-width: 576px) {
	.text-resp {
		font-size: 15px;
	}
}

/********** Stat-Type Pill Navigation **********/
/* Replaces inline pipe-separated text links (e.g. "shows | songs | guests | venues")
   on TourShow.aspx, Releases.aspx, Venues.aspx, etc. */
.stat-pill-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	justify-content: center;
	padding: 6px;
	background-color: #000000;
}

.stat-pill-nav a,
.stat-pill-nav .setitem {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 8px 16px;
	background-color: #102142;
	font-size: 12px;
	font-weight: bold;
	border-radius: 3px;
	text-decoration: none;
	transition: background-color 0.15s, color 0.15s;
}

.stat-pill-nav a {
	color: #FF8A29;
}

.stat-pill-nav a:hover {
	background-color: #1A2B4C;
	color: #FFC449;
	text-decoration: none;
}

.stat-pill-nav .setitem {
	background-color: #FFC449;
	color: #102142;
	cursor: default;
}

.stat-pill-nav-label {
	display: inline-flex;
	align-items: center;
	padding: 8px 8px 8px 0;
	font-size: 12px;
	font-weight: bold;
	color: #FFFFFF;
}

@media (max-width: 576px) {
	.stat-pill-nav a,
	.stat-pill-nav .setitem {
		min-height: 44px;
		padding: 10px 14px;
		font-size: 13px;
	}
	.stat-pill-nav-label {
		display: none;
	}
}