html {
	height: 100%;
    margin: 0;
	padding: 0;
}

body {
	height: 100%;
    margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 25em auto auto;
	grid-template-rows: 100%;
	grid-template-areas: 'logs receipts statusParams actions';
	grid-column-gap: 0.5em;
	font-family: Arial, sans-serif;
	background: #d0d0d0;

	/* this property helps firefox using less large fonts. */
	font-size-adjust: 0.5;
	

}

/*
 * Actions Panel.
 */
div.panelActions {
	overflow-x: hidden;
	overflow-y: scroll;
	margin: 0;
	padding: 0em 0.5em 0em 0em;
	box-sizing: border-box;
	grid-column: actions;
    grid-row: actions;
    width: 250px;
}

div.panelActions div.collapsed div.actionsGroup {
	/*display: none;*/
	overflow-y: hidden;
	height: 0;
	min-height: 0;
	padding-top: 0;
	padding-bottom: 0;
	visibility: hidden;

}

/*div.panelActions div.actionLine {
}*/

div.panelActions div.groupBox {
	background-color: #f8f8f8;
	border-radius: 0.5em;
	margin-top: 0.5em;
}

div.panelActions div.actionsGroup {
	padding: 0.25em 0.5em;
}

div.panelActions div.actionLine {
	padding: 0.25em 0em;
}

div.panelActions button {
	width: 100%;
	background-color: #d0d0d0;
	height: 2em;
	font-size: 100%;
	border-radius: 0.5em;
}

div.panelActions button:hover {
	filter: brightness(110%);
}

/*
 * Status and Parameters Panel.
 */
div.panelStatusParams {
	height: 100%;
	overflow-x: hidden;
	overflow-y: scroll;
	margin: 0;
	padding: 0;
	grid-column: statusParams;
	grid-row: statusParams;
}

div.panelStatusParams div.display {
	height: 6em;
	border: solid 2px #b0b0b0;
	background: #ceeb67;
	border-radius: 1em;
	font-size: 120%;
	font-family: monospace;
	font-weight: bold;
	box-sizing: border-box;
	margin-top: 0.5em;
	padding: 2em 1em 2em 1em;

	
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}


div.panelStatusParams div.status {
	margin-top: 1em;
	padding: 0;
	background: #f8f8f8;
}

div.panelStatusParams div.status div.statusLine {
	display: grid;
	grid-template-columns: 10em 1fr;
	grid-template-areas: 'label status';
	border-bottom: 2px solid #b0b0b0;
}

div.panelStatusParams div.status div.statusLine:first-child {
	border-top: 2px solid #b0b0b0;
}

div.panelStatusParams div.status div div.label {
	padding: 0.2em;
	grid-column: label;
	box-sizing: border-box;
	overflow: hidden;
}

div.panelStatusParams div.status div div.value {
	text-align: center;
	border-left: 2px solid #b0b0b0;
	box-sizing: border-box;
	padding: 0.2em;
	grid-column: status;
	overflow: hidden;
}

div.panelStatusParams div.status div div.value:hover {
	background-color: white;
}

div.panelStatusParams div.groupBox {
	margin-top: 0.5em;
}

div.panelStatusParams div.parameters {
	margin-top: 1em;
	padding: 0;
}

div.panelStatusParams div.parametersGroup {
	padding: 0.5em;
	background-color: #f8f8f8;
	border: none;
	border-bottom-left-radius: 0.35em;
	border-bottom-right-radius: 0.35em;
}

div.panelStatusParams div.collapsed div.parametersGroup {
	/*display: none;*/
	overflow-y: hidden;
	height: 0;
	min-height: 0;
	padding-top: 0;
	padding-bottom: 0;
	visibility: hidden;
}

div.panelStatusParams div.parameters div.parametersGroup div.parameter {
	display: grid;
	grid-template-columns: 10em 1fr;
	grid-template-areas: 'parameter value';
}

div.panelStatusParams div.parameters div.parametersGroup div.parameter div {
	padding: 0.1em;
	grid-column: parameter;
	overflow: hidden;
}

div.panelStatusParams div.parameters div.parametersGroup div.parameter input {
	font-size: 85%;
	background-color: white;
	border: 1px solid #ddd;
	padding: 0.2em;
	padding-left: 0.5em;
	grid-column: value;
	border-radius: 0.35em;

}
div.panelStatusParams div.parameters div.parametersGroup div.parameter input:hover {
	background-color: #e7f3ff;
}

div.panelStatusParams div.parameters div.parametersGroup div.parameter select {
	font-size: 85%;
	background: white;
	border: 1px solid #ddd;
	width: 100%;
	max-width: 200px;
	border-radius: 0.35em;
}
div.panelStatusParams div.parameters div.parametersGroup div.parameter select:hover {
	background-color: #e7f3ff;
}

div.panelStatusParams div.parameters div.parametersGroup div.parameter span {
	font-size: 85%;
}
div.panelStatusParams div.parameters div.parametersGroup div.parameter span:hover {
	background: #e7f3ff;
}

/*
 * Receipts Panel.
 */
div.panelReceipts {
	height: 100%;
	overflow-x: hidden;
	overflow-y: scroll;
	margin: 0;
	padding: 0;
	grid-column: receipts;
	grid-row: receipts;
}

div.panelReceipts div.receipts {
	height: 100%;
	background: #404040;
	overflow: auto;
	padding: 0em 0.5em;
}

div.panelReceipts div.receipts div.receipt {

	background: white;
	border-radius: 0.5em;
	margin: 0.5em 0em;
}

div.panelReceipts div.receipts div.receipt div.title {
	padding: 0.1em 0.5em 0.1em 0.5em;
	text-align: center;
	border-top-left-radius: 0.5em;
	border-top-right-radius: 0.5em;
}

div.panelReceipts div.receipts div.receipt.cardholder div.title {
	background: #bbd3be;
}

div.panelReceipts div.receipts div.receipt.merchant div.title {
	background: #e2cfcf;
}

div.panelReceipts div.receipts div.receipt.both div.title {
	background: #c5dadd;
}

div.panelReceipts div.receipts div.receipt div.content {
	padding: 0.25em;
	font-family: Courier New,Courier,Lucida Sans Typewriter,Lucida Typewriter,monospace; 
	/* transform: scaleX(0.85); */
	font-size: 75%;
	white-space: pre;

	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
}


/*
 * Logs Panel.
 */
div.panelLogs {
	height: 100%;
	display: flex;
	flex-flow: column;
	margin: 0;
	padding: 0;
	grid-column: logs;
	grid-row: logs;
	box-sizing: border-box;
	overflow-x: hidden;
	overflow-y: scroll;
	background: #404040;
}

div.panelLogs div.settings {
	color: white;
	flex: 0 1 auto;
	font-size: 75%;
}

div.panelLogs div.settings div.setting {
	border-right: solid 2px #b0b0b0;
	display: inline;
	padding: 0.25em 0.5em;
}

div.panelLogs div.settings div.setting #settingLogSize {
	width: 3em;
	height: 1em;
	margin-top: 0.5em;
}

div.panelLogs div.logs {
	flex: 1 1 auto;
	
	box-sizing: border-box;
	overflow: auto;
	margin: 0.5em;
}

div.panelLogs div.logs div {
	font-size: 70%;
	/*font-family: sans;*/
	font-family: Courier New,Courier,Lucida Sans Typewriter,Lucida Typewriter,monospace; 
	text-indent: -2em;
	padding-left: 2.5em;
	padding-right: 0.5em;
	white-space: pre-wrap;
}
div.panelLogs div.logs div.even {
	background: #e7f3ff;
}
div.panelLogs div.logs div.odd {
	background: #f8f8f8;
}



/*
 * Global
 */
.disabled {
	pointer-events: none;
	opacity: 0.4;
}

div.groupTitle {
	margin-top: 1em;
	padding: 0.25em;
	background: #2288c7;
	text-align: center;
	border-top-left-radius: 0.5em;
	border-top-right-radius: 0.5em;
	color: white;
	font-weight: bold;
}

div.groupTitle:first-child {
	margin-top: 0.1em;
}

div div.groupTitle::before {
	content: '▾ ';
}

div.collapsed div.groupTitle {
	border-bottom-left-radius: 0.5em;
	border-bottom-right-radius: 0.5em;
}

div.collapsed div.groupTitle::before {
	content: '▸ ';
}



/*
 * UI status.
 */

body.requestInProgress div.enableNoRequestInProgress {
	pointer-events: none;
	opacity: 0.4;
}

/*
body.trxtype_credit div#paramGroupAmount {
	pointer-events: none;
	opacity: 0.4;
}
*/

/*
body.trxtype_credit button#actionCancel {
	filter: opacity(50%);
}
*/

/* transaction reference number */
body div#paramGroupTrxRefNum {
	display: none;
}
body.trxtype_credit div#paramGroupTrxRefNum,
body.trxtype_finalizePurchase div#paramGroupTrxRefNum,
body.trxtype_cashAdvance div#paramGroupTrxRefNum {
	display: grid;
}

/* transaction sequence number */
body div#paramGroupTrxSeqNum {
	display: none;
}
body.trxtype_reversal div#paramGroupTrxSeqNum,
body.trxtype_finalizePurchase div#paramGroupTrxSeqNum,
body.trxtype_cashAdvance div#paramGroupTrxSeqNum {
	display: grid;
}

/* terminal transaction reference */
body div#paramGroupTrmTransRef {
	display: none;
}
body.trxtype_purchase div#paramGroupTrmTransRef,
body.trxtype_credit div#paramGroupTrmTransRef,
body.trxtype_reversal div#paramGroupTrmTransRef,
body.trxtype_preAuthorization div#paramGroupTrmTransRef,
body.trxtype_finalizePurchase div#paramGroupTrmTransRef,
body.trxtype_purchaseForcedAcceptance div#paramGroupTrmTransRef,
body.trxtype_cashAdvance div#paramGroupTrmTransRef,
body.trxtype_purchaseWithCashback div#paramGroupTrmTransRef,
body.trxtype_purchasePhoneAuthorized div#paramGroupTrmTransRef,
body.trxtype_purchasePhoneOrdered div#paramGroupTrmTransRef,
body.trxtype_purchaseMailOrdered div#paramGroupTrmTransRef,
body.trxtype_reservation div#paramGroupTrmTransRef,
body.trxtype_giro div#paramGroupTrmTransRef,
body.trxtype_combined div#paramGroupTrmTransRef,
body.trxtype_authorizeCredit div#paramGroupTrmTransRef,
body.trxtype_authorizeDeposit div#paramGroupTrmTransRef,
body.trxtype_collectPoints div#paramGroupTrmTransRef,
body.trxtype_loadVoucher div#paramGroupTrmTransRef {
	display: grid;
}

/* unattended language */
body div#paramGroupUnattendedLanguage {
	display: none;
}
body.guide_unattended div#paramGroupUnattendedLanguage {
	display: grid;
}

/* guide gastro */
body div#groupBoxParamGastro {
	display:none;
}
body.guide_gastro div#groupBoxParamGastro {
	display: grid;
}

body div#paramGroupAmountTip {
	display:none;
}
body.guide_gastro div#paramGroupAmountTip {
	display: grid;
}

/* guide advanced retail */
body div#groupBoxParamAdvRetail {
	display:none;
}
body.guide_advancedRetail div#groupBoxParamAdvRetail {
	display: grid;
}

body div#paramGroupAmountOther,
body div#paramGroupPhoneAuthCode {
	display:none;
}
body.guide_advancedRetail div#paramGroupAmountOther,
body.guide_advancedRetail div#paramGroupPhoneAuthCode {
	display: grid;
}

/* guide banking */
body div#groupBoxActionsBanking {
	display:none;
}
body.guide_banking div#groupBoxActionsBanking {
	display: grid;
}

/* guide vas */
body div#groupBoxActionsVAS {
	display:none;
}
body.guide_valueAddedServices div#groupBoxActionsVAS {
	display: block;
}


/*
 * Layout variations
 */
body.layoutReverse {
	grid-template-columns: auto auto 25em 1fr;
	grid-template-rows: 100%;
	grid-template-areas: 'actions statusParams receipts logs';
}
