/* ****************************************************************
 * Setup a bunch of global defaults for the entire site.  In order
 * to change the default size, change font-size in body, p, td and
 * th.  Then for the rest of the css file, reference font sizes in
 * em, not % or px.
 */

body {
	margin: 0;
	font-family: arial, sans-serif;
	font-size: 1rem;
	background-color: #f4f6f8;
	color: #333;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

a {
	color:#1074ba;
	text-decoration:none;
}

a:hover {
	text-decoration:underline;
}

header {
	background: #FFF;
	padding: 1rem 2rem;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

header a {
	color: #2ecc71;
	text-decoration: none;
}

header a:hover {
	text-decoration:underline;
}
header h1 {
	margin: 0;
	color: #27ae60;
	font-size: 2rem;
}
header p {
	margin-top: 0.5rem;
	color: #666;
}

.footer {
	text-align: center;
	font-size: 0.9rem;
	color: #888;
	background-color:#363636;
	padding: 1rem;
	width: 100%;
	box-sizing: border-box;
}

.banner {
	display: block;
    margin-left: auto;
	margin-right: auto;
	height: 104px;
}

body {
	height: 100%;
	min-height: 100%;
}

html {
	height: 100%;
}

.footer p {
	color: #888;
}

.footer a {
	color: #2ecc71;
	margin: 0 0.5rem;
	text-decoration: none;
}

.footer a:hover {
	text-decoration:underline;
}

.nav_container p {
	margin: 0.2rem;
}

/* .container {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	margin: 2rem;
	gap: 2rem;
	min-width: 400px;
} */

.container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  max-width: 1200px;
  min-width: 400px;
  margin: auto;
}

.card_grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	justify-items: left;
	gap: auto;
}

.tb_form_grid {
	grid-column: span 2;
	justify-self: center;
}

.card_grid_text {
	grid-column: span 1;
}

.card_grid_btn {
	grid-column: span 1;
	margin-top: auto;
	margin-bottom: auto;
	justify-self: right;
}

 @media (max-width: 1000px) {
	body {
		font-size: 1.2rem !important;
	}
	header h1 {
		font-size: 3rem !important;
	}
	.card h2 {
		font-size: 2rem !important;
	}
	input[type="text"], input[type="password"], input[type="date"] {
		font-size: 1.5rem !important;
	}
	.dropdown {
		font-size: 1.5rem !important;
	}
	input[type="submit"], input[type="button"] {
		font-size: 1.5rem !important;
	}
	.footer {
		font-size: 1.5rem !important;
	}
	/* main {
		margin-bottom: 20vh !important;
	} */

	.card {
		grid-column: span 2;
		margin: auto;
		min-width: 600px;
		width: 95% !important;
		max-width: 100% !important; 
	}
	.card_wide {
		min-width: 600px;
		width: 95% !important;
		max-width: 100% !important; 
	}
	.card_grid_text {
		grid-column: span 2;
	}

	.card_grid_btn {
		grid-column: span 2;
		justify-self: center;
	}
}

 /* @media (max-width: 700px) {
	main {
		margin-bottom: 30vh !important;
	}
 } */

.msg_date {
	width: 200px;
}

.msg_link {
	word-wrap: anywhere;
}

.sub_container {
	display:flex;
	justify-content: space-around;
	gap: 2rem;
	margin-top: 2rem;
	flex-direction: row;
}

@media (max-width: 600px) {
  .sub_container {
    flex-direction: column;
  }
}

.flex_card {
	flex: 1;
	flex-flow: row nowrap;
	width: 50%;
	align-items: right;
}

.table_header {
	color: #27ae60;
    background-color: #363636;
    padding: 5px;
    height: 25px;
    text-align: center;
	width:100%;
	font-weight:bold;
}

.cust_summary_new {
	width: 100%;
	padding: 5px 5px 5px 15px;
	color: #000000;
	background-color: #ffffff;
}

.card {
	background: #ffffff;
	padding: 1rem;
	border-radius: 12px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	text-align: center;
	max-width: 420px;
	min-width: 420px;
	justify-self: end;
}

.card_right {
	justify-self: start;
}

.card p {
	text-align: left;
}

.card_centered {
	background: #ffffff;
	padding: 1rem;
	border-radius: 12px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	grid-column: span 2;
	text-align: center;
	margin: 0 auto;
	max-width: 420px;
	min-width: 420px;
}

.card_wide {
	background: #ffffff;
	padding: 1rem;
	border-radius: 12px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	grid-column: span 2;
	max-width: 900px;
	width: 900px;
	justify-self: center;
}

.card h2 {
	font-size: 1.5rem;
	margin-bottom: 1rem;
}

.card_find {
	background: #ffffff;
	padding: 2rem;
	border-radius: 12px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	width: 350px;
	text-align: center;
	font-size: 0.9em;
	line-height: 1.2em;
}

.card_cust_home_half {
	background: #ffffff;
	padding: 1rem;
	margin: 1rem;
	border-radius: 12px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	width: 500px;
	text-align: left;
}

main {
  flex: 1;
  padding: 1rem;
}

.wrapper {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.column {
	display: flex;
	flex-flow: column wrap;
}

.row {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-around;
	align-items: center;
	height: 100%;
}

.form-group {
	display: flex;
	align-items: center;
	margin-bottom: 15px;
	position: relative;
}
.form-group label {
	flex: 0 0 150px;
	margin-right: 10px;
	font-weight: bold;
}
.form-group input, .form-group select {
	flex: 1;
	padding: 8px;
	font-size: 1rem;
}
.toggle-visibility {
	position: absolute;
	right: 10px;
	cursor: pointer;
	user-select: none;
}
.hidden {
	display: none !important;
}
.form-section {
	margin-top: 20px;
	border: 1px solid #ddd;
	padding: 15px;
	border-radius: 8px;
}

.card_cust_home {
	background: #ffffff;
	padding: 1rem;
	margin: 1rem;
	border-radius: 12px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	width: 1000px;
	text-align: center;
}

.card_cust_home_half h2 {
	text-align: center;
}

.card_item {
	border-radius: 12px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	background: #d4d2d2;
	margin: 1%;
	padding: 1%;
	width: 44%;
}


.cust_home_wrapper {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

input[type="text"], input[type="password"], input[type="date"] {
	padding: 0.8rem;
	margin: auto;
	border: 1px solid #ccc;
	border-radius: 8px;
	font-size: 1rem;
	width: 70%;
	color: #000000;
	background-color: #ffffff;
}

.dropdown {
	padding: 0.8rem;
	margin: auto;
	border: 1px solid #ccc;
	border-radius: 8px;
	font-size: 1rem;
	width:30%;
	color: #000000;
	background-color: #ffffff;
}

.toggle_acct {
	background-color: #ffffff;
	color: black;
	height: 1rem;
	font-size: 1rem;
	width: 1rem;
}

.toggle_acct:hover {
	background-color: #ffffff;
}

input[type="submit"], input[type="button"] {
	background-color: #2ecc71;
	color: black;
	border: none;
	padding: 0.8rem 1.5rem;
	font-size: 1rem;
	border-radius: 8px;
	cursor: pointer;
	transition: background-color 0.3s ease;
}
input[type="submit"]:hover, input[type="button"]:hover {
	background-color: #27ae60;
}

.tb {
    max-width: 800px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
}

P {
    color: #000000;
}

td {
	vertical-align: center;
}

.small {
	font-size: 0.8em;
}

.tiny_text {
	font-size: 0.6em;
}

.right {
	text-align: right;
}

H1 {
	color: #006900;
	font-weight: bold;
	margin-top: 5px;
}

.red {
	color: #ff0000;
}

.error {
	color: #ff0000;
	font-weight: bold;
}

.center {
	text-align: center !important;
	align-items: center;
	margin: 0 auto;
	width: 100%;
}

.padded_captcha {
	width: 100%;
	margin: 0 auto;
	padding: 2% 13%;
}

ol li {
    padding-bottom: 5px;
}

pre {
	font-size: 1.2em;
}

.results {
	font-size: 1.3em;
	color: #3333FF;
	font-weight: bold;
}

.pending_pmt {
    font-weight: bold;
	color: #e14400;
}

.hide-payment-opt {
	background-color:#666 !important;
}

/* ****************************************************************
 * Title bar
 */

.header_bar {
	display: flex;
	flex-flow: row-reverse wrap;
	justify-content: space-between;
}

.title_banner {
	padding: 5px 0 0 0;
	margin: 0px;
	text-align: center;
}

.title_language {
	padding: 25px 25px 5px 0px;
	min-width: 100px;
	justify-content: flex-end;
}

.title_language a {
	color: black;
	text-decoration: underline;
}

.title_spacer {
	padding: 0 0 0 25px;
	min-width: 100px;
	width: 100px;
	justify-content: flex-start;
}

/* ****************************************************************
 * Define the styles for the left-hand navigation bar and the
 * borders around the main body, etc.
 */

table.main_body {
	padding: 0px;
	width: 770px;
}

table.left_nav {
	padding: 0px;
	width: 100%;
}

table.left_nav td {
	padding: 5px 5px 5px 10px;
	border-bottom: 2px solid #006900;
}

table.left_nav a {
	text-decoration: none;
	color: #0000cc;
}

table.left_nav a:hover {
	text-decoration: underline;
}

table.left_nav a:visited {
	color: #0000cc;
}

td.main_body {
	border-left: 2px solid #006900;
	padding: 0px;
}

.margin {
	margin: 5px;
	text-align: left;
	width: 770px;
}

/* ****************************************************************
 * TrashBilling form
 */

table.pay_form {
	border-radius: 8px;
	text-align: left;
	margin: 0px;
	padding: 0px;
	font-size: 0.9em;
    line-height: 1.2em;
	display: flex;
	justify-content: center;
	border: 0;
}

table.pay_form td {
	padding: 2px;
}

table.tb_form {
	border-radius: 8px;
	text-align: left;
	margin: 0px;
	padding: 0px;
	font-size: 0.9em;
    line-height: 1.2em;
	width: 100%;
}

table.tb_form th {
	color: black;
	background-color: #27ae60;
	padding: 5px;
	height:25px;
	text-align: center;
}
table.tb_form td {
	color: #000000;
	background-color: #FFF;
	padding: 5px;
	vertical-align: middle;
	text-align: left;
	/* border-right: 1px solid #D3D3D3;
    border-left: 1px solid #D3D3D3;
    border-bottom: 1px solid #D3D3D3; */
	padding:1%;
}

.input_cls {
	width: 100%;
}

.full_width {
	width: 100%;
}

td.tb_form_right {
	text-align: right !important;
}

table.inner_tb_form {
	text-align: left;
	width: 100%;
	margin: 0px;
	padding: 0px;
}

table.inner_tb_form th {
	color: black;
	background-color: #27ae60;
	padding: 5px;
	height:25px;
	text-align: center;
}

table.inner_tb_form td {
	color: #000000;
	padding: 5px;
	vertical-align: top;
	border: 0 !important;
}

tr.odd_row td {
	background-color: #dadada !important;
}

tr.even_row td {
	background-color: #ffffff !important;
}

/* ****************************************************************
 * Login form
 */

table.login_form {
	margin: 5px;
	border: 1px solid #006900;
}

table.login_form th {
	color: #ffffff;
	background-color: #006900;
	padding: 5px;
	text-align: center;
}

table.login_form td {
	color: #000000;
	background-color: #ccffcc;
	padding: 5px;
}

/* ****************************************************************
 * Index Page
 */

/* Generated by: http://spiffybox.com/ */
/* set the image to use and establish the lower-right position */
.redbox, .redbox_body, .redbox_head, .redbox_head h2 {
	background: transparent url(/images/redbox.png) no-repeat bottom right;
}
.greenbox, .greenbox_body, .greenbox_head, .greenbox_head h2 {
	background: transparent url(/images/greenbox.png) no-repeat bottom right;
}
.bluebox, .bluebox_body, .bluebox_head, .bluebox_head h2 {
	background: transparent url(/images/bluebox.png) no-repeat bottom right;
}
.redbox, .greenbox, .bluebox {
	/* intended total box width - padding-right(next) */
	width: 200px !important; /* IE Win = width - padding */
	width: 185px; /* the gap on the right edge of the image (not content padding) */
	padding-right: 5px; /* use to position the box */
	margin: 35px 5px 5px 5px;
	float: left;
	text-align: center;
}
/* set the top-right image */
.redbox_head, .greenbox_head, .bluebox_head {
	background-position:top right; /* pull the right image over on top of border */
	margin-right:-5px; /* right-image-gap + right-inside padding */
	padding-right: 5px
}
/* set the top-left image */
.redbox_head h2, .greenbox_head h2, .bluebox_head h2 {
	background-position:top left;
	margin:0; /* reset main site styles*/
	border:0; /* ditto */
	/* padding-left = image gap + interior padding ... no padding-right */
	padding: 5px 0 5px 10px;
	height:auto !important; height:1% /* IE Holly Hack */
}
/* set the lower-left corner image */
.redbox_body, .greenbox_body, .bluebox_body {
	background-position:bottom left;
	margin-right: 0px; /* interior-padding right */
	padding: 5px 0 5px 10px /* mirror .redbox_head right/left */
}

a.black_link {
	color: black;
	text-decoration: none;
}

a.black_link link {
	color: black;
}

/* ****************************************************************
 * Customer Summary
 */

table.cust_summary {
	margin: 0px;
	/* width: 770px; */
	font-size: 0.9em;
}

table.cust_summary th {
	color: black;
	background-color: #27ae60;
	padding: 5px;
	text-align: center;
}

table.cust_summary td {
	color: #000000;
	background-color: #ccffcc;
	padding: 5px 5px 5px 15px;
	border-right: 1px solid #363636;
	border-left: 1px solid #363636;
	border-bottom: 1px solid #363636;
}

/* Inner table, pretty much the same as tb_form but we need this */
/* to make it span the whole width of the table cell.            */
table.inner_table {
	width: 100%;
	text-align: left;
}



#account_history {
	/* margin: 0;
	padding: 0;
	border: 0; */
	display: none;
}

table.invoice_app {
	margin: 0px;
	/* width: 770px; */
	font-size: 0.9em;
}

table.invoice_app th {
	color: black;
	background-color: #27ae60;
	padding: 5px;
	text-align: center;
}

table.invoice_app td {
	color: #000000;
	background-color: #FFF;
	padding: 5px 5px 5px 15px;
	/* border-right: 1px solid #666666;
	border-left: 1px solid #666666; */
	border-bottom: 1px solid #666666;
}

table.invoice_app input[type=text] {
	width: 100px;
}

/* ****************************************************************
 * Admin tables
 */

table.admin {
	margin: 5px;
	border: 1px solid #006900;
}

table.admin th {
	color: #ffffff;
	background-color: #006900;
}

table.admin td {
	padding: 4px;
	border: 1px solid #006900;
}

/* ****************************************************************
 * General stuff
 */

.home_card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-flow: row wrap;
	width: 100%;
}

.nav_container {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-flow: row wrap;
	width: 100%;
	padding: 5px;
}

.span2 {
	grid-column: span 2;
}

div.nav_btn {
	float: right;
	padding: 3px 15px 3px 15px;
	margin-top: 5px;
}

.unread_msgs {
	font-weight: bold;
	color: #990000;
}

/* Pending Payments */
div.pp {
	padding: 3px 15px 3px 15px;
	border: 1px solid red;
}

div#handling_fee, div#total_pmt, div#handling_fee2, div#total_pmt2, div#handling_fee3, div#pmt_amt2, div#pmt_amt3, div#total_pmt3 {
    display: inline;
}

div#hfeetxt, div#hfeetxt2, div#hfeetxt3 {
    visibility: hidden;
    display: inline;
    text-align: center;
}

/* Light Box 
.underlay {
	display:none;
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:1500px;
	background-color:#000;
	-moz-opacity:0.5;
	opacity:.50;
	filter:alpha(opacity=50);
	z-index:8888;
}
.lightbox {
	display:none;
	position:fixed;
	top:5%;
	left:5%;
	width:90%;
	background-color:#fff;
	z-index:9999;
}*/
/* ****************************************************************
 * Popup Calendar in make_payments.php
 */

.cpYearNavigation, .cpMonthNavigation {
	background-color:#006900;
	text-align:center;
	vertical-align:center;
	text-decoration:none;
	color:#FFFFFF;
	font-weight:bold;
}
.cpDayColumnHeader,
.cpYearNavigation,
.cpMonthNavigation,
.cpCurrentMonthDate,
.cpCurrentMonthDateDisabled,
.cpOtherMonthDate,
.cpOtherMonthDateDisabled,
.cpCurrentDate,
.cpCurrentDateDisabled,
.cpTodayText,
.cpTodayTextDisabled,
.cpText	{
	font-family:arial;
	font-size:8pt;
}
td.cpDayColumnHeader {
	background-color:#006900;
	text-align:right;
	border:solid thin #006900;
	border-width:0 0 1 0;
}
.cpCurrentMonthDate,
.cpOtherMonthDate,
.cpCurrentDate
			{
			text-align:right;
			text-decoration:none;
			}
.cpCurrentMonthDateDisabled,
.cpOtherMonthDateDisabled,
.cpCurrentDateDisabled
			{
			color:#D0D0D0;
			text-align:right;
			text-decoration:line-through;
			}
.cpCurrentMonthDate
			{
			color:#006900;
			font-weight:bold;
			}
.cpCurrentDate
			{
			color: #Ff0000;
			font-weight:bold;
			}
.cpOtherMonthDate
			{
			color:#808080;
			}
TD.cpCurrentDate
			{
			color:#FFFFFF;
			background-color: #006900;
			border-width:1;
			border:solid thin #000000;
			}
TD.cpCurrentDateDisabled
			{
			border-width:1;
			border:solid thin #FFAAAA;
			}
TD.cpTodayText,
TD.cpTodayTextDisabled
			{
			border:solid thin #006900;
			border-width:1 0 0 0;
			}
A.cpTodayText,
SPAN.cpTodayTextDisabled
			{
			height:20px;
			}
A.cpTodayText
			{
			color:#006900;
			font-weight:bold;
			}
SPAN.cpTodayTextDisabled
			{
			color:#D0D0D0;
			}
.cpBorder
			{
			border:solid thin #006900;
			}

table.cpBorder td {
	padding: 1px;
}


/* Lightbox background */
.lightbox {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.7);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 999;
}

/* Lightbox content */
.lightbox-content {
	background: white;
	padding: 20px;
	border-radius: 8px;
	width: 90%;
	max-width: 90%;
	/* height: 90%; */
	max-height: 90%;
	box-shadow: 0 0 10px rgba(0,0,0,0.3);
	position: relative;
	margin: 1rem auto;
	overflow-y: scroll;
	top: 0;
}

.lightbox_x {
	position: fixed;
	top: -5px;
	right: -5px;
	z-index: 9999;
}
