/* $Id$ */

/* general styles */
body, p, li, td, th, ul, ol, center, dt, dd, dl, input, textarea, table, select, option {
	margin: 0;  
	font-family:"Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif;
	font-size:0.9em;
	color:black;
	background-color:white;
	text-decoration:none;
}
/* set box-sizing of form inputs to 'border-box', so that they can be aligned by setting the same width */
input,select,option  {
	-moz-box-sizing: border-box;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
}
img {
	border:0px solid #FFFFFF;
}

br.clear {
	clear: both;
}

/* header bar including navigation URLs */
#header {
	height:90px;
	margin:0px 0px 0px 0px;
	padding:20px 20px 20px 20px;
	border:0px solid #FFFFFF;
	color: black;
	background:white;
	z-index:0;
}
#header a {
	float: left;
	display: inline;
}
#header h1 {
	float: right;
	display: inline;
}
#navigation {
	height:20px;
	margin: 0;
	padding: 0px 6px 0px 0px;
	color: white;
	background:#00da84;
	z-index:0;
	text-align:right;
}
#navigation a { 
	color: white;
	text-decoration:none;
}
#navigation a:hover {
	text-decoration:underline
}
#navigation div.lang {
    display: inline;
}
#navigation div.lang.selected {
	color: #38373C
}


/* footer area */
#footer {
	position:relative;
	margin-top:60px;
}


/* login form */
#loginform {
	margin: 1em auto;
	width: 44em;
    border: 1px solid #EEEEEE;
    padding: 1em;
}

#loginform .logintitle {
	font-size: 1.3em;
	font-weight:bold;
	margin: 0.4em 0.2em 1.2em 0.2em;
}

#loginform div.field {
	margin: 0.8em 0.2em;
	clear: both;
}

#loginform label {
	text-align: right;
	width: 50%;
	margin-right: 1em;
	float: left;
	display: inline;
	padding-top: 5px;
}

#loginform div.optional label{
	font-weight:normal;
}

#loginform div.required label{
	font-weight:bold;
}

#loginform div.field input {
    padding: 4px;  
    display: block;
}

#loginform div.field select {
    padding: 4px;
    display: inline-block;
}

#loginform div.image label {
	width: 0;
}

#loginform div.image img {
	display: block;
    margin: auto;
}

#loginform div.text input, #loginform div.pw-text input, #loginform div.select select {
    background: none repeat scroll 0 0 #FAFAFA;
    border: 1px solid #DDDDDD;
    width: 45%;
}

#loginform div.radio input, #loginform div.checkbox input {
	float: none;
	vertical-align: middle;
	margin: 0 0 0.4em;
	padding: 0;
}

#loginform div.field input:hover, #loginform div.field input:focus, #loginform div.field select:hover, #loginform div.field select:focus {
	background: none repeat scroll 0 0 #FFFFFF;
    border-color: #C5C5C5;
}

#loginform div.invalid label{
	color : red;
}
#loginform div.invalid input {
	background-color: #FFCCCC;
}
#loginform div.invalid select {
        background-color: #FFCCCC;
}


#loginform div.missing label {
	color : red;
}
#loginform div.missing input{
	background-color: #FFCCCC;
}
#loginform div.missing select {
        background-color: #FFCCCC;
}

#loginform p.validationMessage {
	display: none;
	font-weight: normal;
}

#loginform div.invalid p.validationMessage {
	display: block;
}

#loginform div.error, #loginform div.info {	
	background-position: 10px center;
    background-repeat: no-repeat;
    font-size: 1em;
    padding: 10px 10px 10px 55px;
}

/* error messages: red, bold and bigger */
#loginform div.error {
	color: #D8000C;
	background-image: url('../twint-images/error.png');
}

/* info messages: bigger */
#loginform div.info {
	background-image: url('../twint-images/info.png');
}

/* buttons at bottom of form (rendered separately, after all other fields)*/

#loginform .formfooter {
	margin: 1em auto 0.3em;
        text-align: center;
}

#loginform .links {
        margin: 1em auto 0.3em;
        text-align: center;
}

.links a, .links a:visited {
    color: #000066;
    font-weight: bold;
    text-decoration: none;
}

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

#loginform .formfooter .button {
    border-radius: 0.2em;
    -webkit-border-radius: .2em; 
	-moz-border-radius: .2em;
	
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2);
	-moz-box-shadow: 0 1px 2px rgba(0,0,0,.2);
	
    cursor: pointer;
    display: inline-block;

    margin: 0 0.2em;
    outline: medium none;
    padding: 0.3em 1.0em 0.4em;
    text-align: center;
    text-decoration: none;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.3);
    vertical-align: baseline;
}

#loginform .button:hover {
    text-decoration: none;
}

#loginform .button:active {
    position: relative;
    top: 1px;
}


/********************************************************
 * BUTTON COLORs
 ********************************************************/

/* black */
.black {
	color: #d7d7d7;
	border: solid 1px #333;
	background: #333;
	background: -webkit-gradient(linear, left top, left bottom, from(#666), to(#000));
	background: -moz-linear-gradient(top,  #666,  #000);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#666666', endColorstr='#000000');
}
.black:hover {
	background: #000;
	background: -webkit-gradient(linear, left top, left bottom, from(#444), to(#000));
	background: -moz-linear-gradient(top,  #444,  #000);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#444444', endColorstr='#000000');
}
.black:active {
	color: #666;
	background: -webkit-gradient(linear, left top, left bottom, from(#000), to(#444));
	background: -moz-linear-gradient(top,  #000,  #444);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#000000', endColorstr='#666666');
}

/* gray */
.gray {
	color: #e9e9e9;
	border: solid 1px #555;
	background: #6e6e6e;
	background: -webkit-gradient(linear, left top, left bottom, from(#888), to(#575757));
	background: -moz-linear-gradient(top,  #888,  #575757);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#888888', endColorstr='#575757');
}
.gray:hover {
	background: #616161;
	background: -webkit-gradient(linear, left top, left bottom, from(#757575), to(#4b4b4b));
	background: -moz-linear-gradient(top,  #757575,  #4b4b4b);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#757575', endColorstr='#4b4b4b');
}
.gray:active {
	color: #afafaf;
	background: -webkit-gradient(linear, left top, left bottom, from(#575757), to(#888));
	background: -moz-linear-gradient(top,  #575757,  #888);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#575757', endColorstr='#888888');
}

/* white */
.white {
	color: #606060;
	border: solid 1px #b7b7b7;
	background: #fff;
	background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#ededed));
	background: -moz-linear-gradient(top,  #fff,  #ededed);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed');
}
.white:hover {
	background: #ededed;
	background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#dcdcdc));
	background: -moz-linear-gradient(top,  #fff,  #dcdcdc);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#dcdcdc');
}
.white:active {
	color: #999;
	background: -webkit-gradient(linear, left top, left bottom, from(#ededed), to(#fff));
	background: -moz-linear-gradient(top,  #ededed,  #fff);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#ffffff');
}

/* red */
.red {
	color: #faddde;
	border: solid 1px #980c10;
	background: #d81b21;
	background: -webkit-gradient(linear, left top, left bottom, from(#ed1c24), to(#aa1317));
	background: -moz-linear-gradient(top,  #ed1c24,  #aa1317);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ed1c24', endColorstr='#aa1317');
}
.red:hover {
	background: #b61318;
	background: -webkit-gradient(linear, left top, left bottom, from(#c9151b), to(#a11115));
	background: -moz-linear-gradient(top,  #c9151b,  #a11115);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#c9151b', endColorstr='#a11115');
}
.red:active {
	color: #de898c;
	background: -webkit-gradient(linear, left top, left bottom, from(#aa1317), to(#ed1c24));
	background: -moz-linear-gradient(top,  #aa1317,  #ed1c24);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#aa1317', endColorstr='#ed1c24');
}

/* blue */
.blue {
	color: #d9eef7;
	border: solid 1px #0076a3;
	background: #0095cd;
	background: -webkit-gradient(linear, left top, left bottom, from(#00adee), to(#0078a5));
	background: -moz-linear-gradient(top,  #00adee,  #0078a5);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#00adee', endColorstr='#0078a5');
}
.blue:hover {
	background: #007ead;
	background: -webkit-gradient(linear, left top, left bottom, from(#0095cc), to(#00678e));
	background: -moz-linear-gradient(top,  #0095cc,  #00678e);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#0095cc', endColorstr='#00678e');
}
.blue:active {
	color: #80bed6;
	background: -webkit-gradient(linear, left top, left bottom, from(#0078a5), to(#00adee));
	background: -moz-linear-gradient(top,  #0078a5,  #00adee);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#0078a5', endColorstr='#00adee');
}

/*
 * TWINT brand refresh overrides
 * Keeps existing Nevis markup and behavior while updating look and feel.
 */

:root {
	--twint-pink: #eb4367;
	--twint-pink-dark: #cf3557;
	--twint-blue: #6bb3dd;
	--twint-blue-dark: #4f9fce;
	--twint-green: #a0d988;
	--twint-yellow: #fecf6d;
	--twint-bg: #f3f3f3;
	--twint-text: #262626;
	--twint-muted: #676767;
	--twint-border: #e1e1e1;
}

body,
p,
li,
td,
th,
ul,
ol,
center,
dt,
dd,
dl,
input,
textarea,
table,
select,
option {
	font-family: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
	color: var(--twint-text);
	background-color: transparent;
}

body {
	min-height: 100vh;
	background: radial-gradient(circle at top right, #ffffff 0%, #f8fbfd 45%, #f3f3f3 100%);
}

#page_margins,
#page {
	max-width: 980px;
	margin: 0 auto;
}

#page {
	position: relative;
	padding-top: 96px;
	min-height: 100vh;
}

#header {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: auto;
	margin: 0;
	padding: 12px 20px 0 20px;
	background: transparent;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	z-index: 2;
}

#header a {
	float: none;
	display: inline-flex;
	align-items: center;
}

#header img {
	height: 42px;
	width: auto;
}

#header h1 {
	float: none;
	margin: 0;
	font-size: 1.45rem;
	line-height: 1.2;
	font-weight: 700;
	color: #000000;
}

#navigation {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: auto;
	padding: 56px 20px 10px;
	color: #f3f3f3;
	background: transparent;
	text-align: right;
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	border-radius: 0;
}

#navigation a,
#navigation .lang.selected {
	color: #ffffff;
}

#navigation .lang {
	color: #c8c8c8;
}

#navigation a:hover,
#navigation .lang.selected {
	color: var(--twint-yellow);
}

#loginform {
	margin: clamp(28px, 14vh, 150px) auto 0;
	width: 100%;
	max-width: 560px;
	border: 1px solid var(--twint-border);
	border-top: 4px solid var(--twint-pink);
	padding: 30px;
	border-radius: 0 0 16px 16px;
	background: #ffffff;
	box-shadow: 0 12px 32px rgba(107, 179, 221, 0.2);
}

#loginform .logintitle {
	font-size: 1.55rem;
	line-height: 1.25;
	font-weight: 700;
	margin: 0 0 22px 0;
	text-align: center;
}

#loginform div.field {
	margin: 0 0 15px 0;
	clear: both;
}

#loginform label {
	text-align: left;
	width: 100%;
	margin: 0 0 7px 0;
	float: none;
	display: block;
	padding-top: 0;
	font-size: 0.9rem;
	font-weight: 700;
	color: var(--twint-muted);
}

#loginform div.field input,
#loginform div.field select {
	padding: 11px 12px;
	display: block;
	width: 100%;
	border-radius: 10px;
	border: 1px solid var(--twint-border);
	background: #ffffff;
	font-size: 0.98rem;
	line-height: 1.2;
	box-shadow: none;
}

#loginform div.text input,
#loginform div.pw-text input,
#loginform div.select select {
	width: 100%;
	background: #ffffff;
	border: 1px solid var(--twint-border);
}

#loginform div.field input:hover,
#loginform div.field input:focus,
#loginform div.field select:hover,
#loginform div.field select:focus {
	background: #ffffff;
	border-color: var(--twint-blue-dark);
	outline: none;
	box-shadow: 0 0 0 3px rgba(107, 179, 221, 0.2);
}

#loginform div.invalid input,
#loginform div.invalid select,
#loginform div.missing input,
#loginform div.missing select {
	background-color: #fce4e9;
	border-color: var(--twint-pink);
}

#loginform div.invalid label,
#loginform div.missing label,
#loginform p.validationMessage {
	color: var(--twint-pink-dark);
	font-weight: 700;
}

#loginform div.error,
#loginform div.info {
	border-radius: 10px;
	border: 1px solid var(--twint-border);
	background-color: #f8fbff;
	background-image: none;
	padding: 10px 12px 10px 44px;
	margin-bottom: 12px;
	font-size: 0.92rem;
	position: relative;
}

#loginform div.error {
	border-color: #f2b9c7;
	color: var(--twint-pink-dark);
}

#loginform div.error::before,
#loginform div.info::before {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1rem;
	line-height: 1;
}

#loginform div.error::before {
	content: "🚫";
}

#loginform div.info::before {
	content: "✅";
}

#loginform .formfooter {
	margin: 24px auto 10px;
	text-align: center;
}

#loginform .formfooter .button,
#loginform .formfooter .button.gray {
	appearance: none;
	border: 1px solid transparent;
	border-radius: 999px;
	box-shadow: 0 10px 24px rgba(235, 67, 103, 0.28);
	cursor: pointer;
	display: inline-block;
	margin: 0 4px;
	padding: 11px 24px;
	min-width: 140px;
	text-align: center;
	text-decoration: none;
	text-shadow: none;
	font-weight: 700;
	font-size: 0.95rem;
	color: #ffffff;
	background: linear-gradient(135deg, var(--twint-pink) 0%, #f05876 100%);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
	filter: none;
}

#loginform .formfooter .button:hover,
#loginform .formfooter .button.gray:hover {
	transform: translateY(-1px);
	box-shadow: 0 12px 28px rgba(235, 67, 103, 0.36);
	background: linear-gradient(135deg, #f05876 0%, var(--twint-pink-dark) 100%);
	filter: none;
}

#loginform .formfooter .button:active,
#loginform .formfooter .button.gray:active {
	position: relative;
	top: 0;
	transform: translateY(0);
	box-shadow: 0 8px 16px rgba(235, 67, 103, 0.3);
	filter: none;
}

#loginform .links {
	margin: 10px auto 0;
	text-align: center;
}

.links a,
.links a:visited {
	color: var(--twint-blue-dark);
	font-weight: 700;
	text-decoration: none;
}

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

/* Harmonize legacy semantic button classes with TWINT branding. */
.black,
.gray,
.white,
.red,
.blue,
.black:hover,
.gray:hover,
.white:hover,
.red:hover,
.blue:hover,
.black:active,
.gray:active,
.white:active,
.red:active,
.blue:active {
	color: #ffffff;
	border: 1px solid transparent;
	background: linear-gradient(135deg, var(--twint-pink) 0%, #f05876 100%);
	filter: none;
	text-shadow: none;
}

.black:hover,
.gray:hover,
.white:hover,
.red:hover,
.blue:hover {
	background: linear-gradient(135deg, #f05876 0%, var(--twint-pink-dark) 100%);
}

.black:active,
.gray:active,
.white:active,
.red:active,
.blue:active {
	background: linear-gradient(135deg, var(--twint-pink-dark) 0%, var(--twint-pink) 100%);
}

#footer {
	margin: 24px 0 10px;
}

@media (max-width: 720px) {
	#page {
		padding-top: 100px;
	}

	#header {
		padding: 12px 16px 0 16px;
		align-items: center;
		flex-direction: row;
		gap: 10px;
	}

	#header img {
		height: 36px;
	}

	#header h1 {
		font-size: 1.2rem;
	}

	#navigation {
		border-radius: 0;
		padding: 54px 14px 8px;
	}

	#loginform {
		margin: 16px auto 0;
		padding: 18px 14px;
		border-radius: 0 0 12px 12px;
	}

	#loginform .formfooter .button,
	#loginform .formfooter .button.gray {
		width: 100%;
		min-width: 0;
	}
}
