:root {
	--title-color:#ced4da;
	--hover-color:#ffffff;
}

[data-layout-mode="light"] {
	--title-color:#000000;
	--hover-color:#000000;
}

[data-layout-style="green"] {
	--main-color:#31701C;
}
[data-layout-style="red"] {
	--main-color:#98211B;
}
[data-layout-style="blue"] {
	--main-color:#2DA8C6;
}
[data-layout-style="yellow"] {
	--main-color:#FFE725;
}
[data-layout-style="purple"] {
	--main-color:#7538A0;
}
[data-layout-style="main"] {
	--main-color:#75ab4b;
}


html, body, header, footer, table, tr, th, td, form, input, textarea, select, img, ul, ol, li, p, hgroup, h1, h2, h3, h4, figure, figcaption, legend, nav, article, aside, abbr, iframe, a, fieldset {
	font-family:Source Sans Pro, Arial, Tahoma, Verdana;
}

body {
	padding-bottom:50px;
	background:#1A1D21;
}

body.light {
	background:#FFFFFF;
}

header {
	width:100%;
	height:75px;
	padding-left:250px;
	position:fixed;
	top:0px;
	left:0px;
	z-index:5;
	transition:all 150ms;
}

header.full {
	padding-left:90px;
}

nav {
	width:250px;
	height:100%;
	position:fixed;
	top:0px;
	left:0px;
	z-index:10;
	display:flex;
	flex-direction:column;
	transition:all 150ms;
}

nav.tiny {
	width:90px;
}

/* logo fisso in alto, solo la lista (.menu) scorre */
nav #logo {
	flex:0 0 auto;
}

nav .menu {
	flex:1 1 auto;
	min-height:0;
	overflow-y:auto;
	overflow-x:hidden;
}

nav.tiny .menu {
	overflow:visible;
}

footer {
	width:100%;
	height:50px;
	position:absolute;
	bottom:0px;
	left:0px;
	z-index:5;
}

input:checked[type=checkbox]{
	border-color:var(--main-color);
	background-color:var(--main-color);
}

body.light input[type=text], body.light input[type=number], body.light input[type=password], body.light input[type=date], body.light input[type=time], body.light input[type=decimal], body.light select, body.light textarea {
	color:#000000;
	background:#FFFFFF;
}

input[type=submit], input[type=button], a.button, button {
	background:var(--main-color);
	border:2px solid var(--main-color);
}

.onlyPhone {
	display:none;
}

.onlyDesktop {
	display:unset;
}

.noDesktop {
	display:none !important;
}

.fRight {
	float:right;
}

.fLeft {
	float:left;
}

.aCenter {
	text-align:center;
}

.aRight {
	text-align:right;
}

.aLeft {
	text-align:left;
}


.half, .oneHalf, .oneThird, .oneFourth, .oneFifth, .oneSixth, .oneSeventh, .oneEighth, .oneNinth, .oneTenth, .labels label.half, .labels label.oneHalf, .labels label.oneThird, .labels label.oneFourth, .labels label.oneFifth, .labels label.oneSixth, .labels label.oneSeventh, .labels label.oneEighth, .labels label.oneNinth, .labels label.oneTenth {
	width:49%;
	margin-right:2%;
	float:left;
}

.oneSeventh, .labels label.oneSeventh {
	margin-right:1.5%;
}

.oneEighth, .labels label.oneEighth {
	margin-right:1.2%;
}

.oneNinth, .labels label.oneNinth {
	margin-right:1.25%;
}

.oneTenth, .labels label.oneTenth {
	margin-right:1.1%;
}


.half.center, .oneHalf.center, .oneThird.center, .oneFourth.center, .oneFifth.center, .oneSixth.center, .oneSeventh.center, .oneEighth.center, .oneNinth.center, .oneTenth.center, .labels label.half.center, .labels label.oneHalf.center, .labels label.oneThird.center, .labels label.oneFourth.center, .labels label.oneFifth.center, .labels label.oneSixth.center, .labels label.oneSeventh.center, .labels label.oneEighth.center, .labels label.oneNinth.center, .labels label.oneTenth.center {
	margin:0 auto;
	float:none;
}

.half:nth-of-type(2n), .oneHalf:nth-of-type(2n), .oneThird:nth-of-type(3n), .oneFourth:nth-of-type(4n), .oneFifth:nth-of-type(5n), .oneSixth:nth-of-type(6n), .oneSeventh:nth-of-type(7n), .oneEighth:nth-of-type(8n), .oneNinth:nth-of-type(9n), .oneTenth:nth-of-type(10n), .labels label.half:nth-of-type(2n), .labels label.oneHalf:nth-of-type(2n), .labels label.oneThird:nth-of-type(3n), .labels label.oneFourth:nth-of-type(4n), .labels label.oneFifth:nth-of-type(5n), .labels label.oneSixth:nth-of-type(6n), .labels label.oneSeventh:nth-of-type(7n), .labels label.oneEighth:nth-of-type(8n), .labels label.oneNinth:nth-of-type(9n), .labels label.oneTenth:nth-of-type(10n) {
	margin-right:0%;
}

.half:nth-of-type(2n+1), .oneHalf:nth-of-type(2n+1), .oneThird:nth-of-type(3n+1), .oneFourth:nth-of-type(4n+1), .oneFifth:nth-of-type(5n+1), .oneSixth:nth-of-type(6n+1), .oneSeventh:nth-of-type(7n+1), .oneEighth:nth-of-type(8n+1), .oneNinth:nth-of-type(9n+1), .oneTenth:nth-of-type(10n+1), .labels label.half:nth-of-type(2n+1), .labels label.oneHalf:nth-of-type(2n+1), .labels label.oneThird:nth-of-type(3n+1), .labels label.oneFourth:nth-of-type(4n+1), .labels label.oneFifth:nth-of-type(5n+1), .labels label.oneSixth:nth-of-type(6n+1), .labels label.oneSeventh:nth-of-type(7n+1), .labels label.oneEighth:nth-of-type(8n+1), .labels label.oneNinth:nth-of-type(9n+1), .labels label.oneTenth:nth-of-type(10n+1) {
	clear:both;
}

.oneHalf, .labels label.oneHalf {
	width:49%;
}

.oneThird, .labels label.oneThird {
	width:32%;
}

.twoThird, .labels label.twoThird {
	width:66%;
}

.oneFourth, .labels label.oneFourth {
	width:23.5%;
}

.twoFourth, .labels label.twoFourth {
	width:49%;
}

.treeFourth, .labels label.treeFourth {
	width:74.5%;
}

.oneFifth, .labels label.oneFifth {
	width:18.4%;
}

.twoFifth, .labels label.twoFifth {
	width:38.8%;
}

.treeFifth, .labels label.treeFifth {
	width:59.2%;
}

.fourFifth, .labels label.fourFifth {
	width:79.6%;
}

.oneSixth, .labels label.oneSixth {
	width:15%;
}

.twoSixth, .labels label.twoSixth {
	width:32%;
}

.treeSixth, .labels label.treeSixth {
	width:49%;
}

.fourSixth, .labels label.fourSixth {
	width:66%;
}

.fiveSixth, .labels label.fiveSixth {
	width:83%;
}

.oneSeventh, .labels label.oneSeventh {
	width:13%;
}

.twoSeventh, .labels label.twoSeventh {
	width:27.5%;
}

.treeSeventh, .labels label.treeSeventh {
	width:42%;
}

.fourSeventh, .labels label.fourSeventh {
	width:56.5%;
}

.fiveSeventh, .labels label.fiveSeventh {
	width:71%;
}

.sixSeventh, .labels label.sixSeventh {
	width:85.5%;
}

.oneEighth, .labels label.oneEighth {
	width:11.45%;
}

.twoEighth, .labels label.twoEighth {
	width:24.1%;
}

.treeEighth, .labels label.treeEighth {
	width:36.75%;
}

.fourEighth, .labels label.fourEighth {
	width:49.4%;
}

.fiveEighth, .labels label.fiveEighth {
	width:62.05%;
}

.sixEighth, .labels label.sixEighth {
	width:74.7%;
}

.sevenEighth, .labels label.sevenEighth {
	width:87.35%;
}

.oneNinth, .labels label.oneNinth {
	width:10%;
}

.twoNinth, .labels label.twoNinth {
	width:21.25%;
}

.treeNinth, .labels label.treeNinth {
	width:32.5%;
}

.fourNinth, .labels label.fourNinth {
	width:43.75%;
}

.fiveNinth, .labels label.fiveNinth {
	width:55%;
}

.sixNinth, .labels label.sixNinth {
	width:66.25%;
}

.sevenNinth, .labels label.sevenNinth {
	width:77.5%;
}

.heightNinth, .labels label.heightNinth {
	width:88.75%;
}

.oneTenth, .labels label.oneTenth {
	width:9.01%;
}

.twoTenth, .labels label.twoTenth {
	width:19.12%;
}

.treeTenth, .labels label.treeTenth {
	width:29.23%;
}

.fourTenth, .labels label.fourTenth {
	width:39.34%;
}

.fiveTenth, .labels label.fiveTenth {
	width:49.45%;
}

.sixTenth, .labels label.sixTenth {
	width:59.56%;
}

.sevenTenth, .labels label.sevenTenth {
	width:69.67%;
}

.heightTenth, .labels label.heightTenth {
	width:79.78%;
}

.nineTenth, .labels label.nineTenth {
	width:89.89%;
}


.noMarginRight, .labels label.noMarginRight, .labels .label.noMarginRight, label.noMarginRight, .label.noMarginRight {
	margin-right:0px;
}

.gradient {
	filter:none;
}

.flag {
	width:26px;
	height:18px;
	display:block;
	transition:all 150ms;
}

.flag.notHover {
	opacity:0.35;
}

.flag:hover {
	text-decoration:none;
}

.flag.notHover:hover {
	opacity:0.7;
}

.flag.en {
	background:url(../images/flags.jpg) no-repeat -256px -115px;
}

.flag.it {
	background:url(../images/flags.jpg) no-repeat -416px -161px;
}

.flag.de {
	background:url(../images/flags.jpg) no-repeat -416px -69px;
}

.flag.es {
	background:url(../images/flags.jpg) no-repeat -352px -92px;
}

.flag.fr {
	background:url(../images/flags.jpg) no-repeat -160px -115px;
}

.flag.ne {
	background:url(../images/flags.jpg) no-repeat -224px -69px;
}

.flag.da {
	background:url(../images/flags.jpg) no-repeat -32px -92px;
}

.flag.ru {
	background:url(../images/flags.jpg) no-repeat -352px -299px;
}

.flag.cn {
	background:url(../images/flags.jpg) no-repeat -128px -69px;
}

.flag.jp {
	background:url(../images/flags.jpg) no-repeat -96px -184px;
}

.box {
	background:#212529;
	border-radius:5px;
}

.box.w400 {
	width:400px;
}
.box.w500 {
	width:500px;
}
.box.w600 {
	width:600px;
}
.box.w700 {
	width:700px;
}
.box.w800 {
	width:800px;
}

.box.center {
	margin:0 auto;
}

.box h3 {
	padding:16px;
	position:relative;
	border-bottom:1px solid #32383e;
	font-size:16px;
	font-weight:400;
	color:var(--title-color);
}

.box > h3 input[type=submit], .box > h3 a.button {
	position:absolute;
	top:5px;
	right:10px;
}

.box > div, .box > form {
	padding:16px;
}

.box table {
	width:100%;
}

.box table tr.link {
	cursor:pointer;
}

.box table tr.link:hover {
	background:rgba(255,255,255,0.05);
	transition:all 150ms;
}

.box table tr.link:hover td {
	color:var(--main-color) !important;
}

.box table th, .box table td {
	padding:16px;
	font-size:14px;
	font-weight:normal;
}

.box table tr:not(.odd):not(.even):nth-child(odd) td, .box table tr.odd td {
	background:rgba(255,255,255,0.015);
}

.box table th {
	background:#2C3034;
}

.box table tr td .icon-trash-empty {
	color:rgba(255,0,0,1);
	transition:all 150ms;
	cursor:pointer;
}

.box table tr td .icon-trash-empty:hover {
	color:#ffffff;
}

.labels h3 {
	padding:10px 0;
	margin-bottom:20px;
	font-weight:bold;
}

.labels hr {
	margin-bottom:20px;
}

.labels label, .labels .label {
	width:22.75%;
	min-height:42px;
	margin:0 3% 20px 0;
	display:block;
	float:left;
}

.labels .label label {
	min-height:auto;
	margin-bottom:0px;
}

.labels label.pTop, .labels .label.pTop {
	padding-top:10px;
}

.labels label.tiny, .labels .label.tiny {
	min-width:200px;
	width:10%;
	margin-right:3%;
}

.labels label.full, .labels .label.full {
	width:100%;
	margin-right:0px;
}

.labels label.hidden, .labels .label.hidden {
	display:none;
}

.labels label:nth-of-type(4n), .labels .label:nth-of-type(4n) {
	margin-right:0px;
}

.labels label.auto, .labels .label.auto {
	width:auto;
	margin-right:20px;
	clear:none;
}

.labels label.vAlign, .labels .label.vAlign {
	height:41px;
	padding-top:11px;
}

.labels label span, .labels .label span {
	margin:0 0 10px 0;
	display:block;
}

.labels label ins, .labels .label ins {
	margin:0 10px 0 0;
	display:inline;
	text-decoration:none;
}

.labels label input[type=text], .labels label input[type=date], .labels label input[type=time], .labels label input[type=datetime-local], .labels label input[type=number], .labels label input[type=password], .labels label select, .labels label textarea,
.labels .label input[type=text], .labels .label input[type=date], .labels .label input[type=time], .labels .label input[type=datetime-local], .labels .label input[type=number], .labels .label input[type=password], .labels .label select, .labels .label textarea {
	width:100%;
}

.labels label input.auto, .labels label select.aut, .labels label .input.auto, .labels .label select.auto {
	width:auto;
}

.labels label input[type=checkbox], .labels .label input[type=checkbox] {
	margin:-1px 5px 0 0;
	float:left;
}

header {
	background:#262A2F;
}

body.print > header {
	display:none;
}

header .icon-menu-1 {
	height:75px;
	padding:22px;
	float:left;
	display:block;
	font-size:24px;
	color:rgba(255,255,255,0.45);
	cursor:pointer;
	transition:all 150ms;
}

header .icon-menu-1:hover {
	color:rgba(255,255,255,0.8);
}

header form, nav form {
	margin:18px 0 0 0;
	float:left;
	display:block;
	position:relative;
}

header form input[type=text], nav form input[type=text] {
	width:240px;
	padding:10px 20px 10px 40px;
	border:0px;
	border-radius:3px;
	background:#1A1D21;
}

nav form input[type=text] {
	width:100%;
}

body.light header form input[type=text], body.light nav form input[type=text] {
	background:#FFFFFF;
}

header form input[type=submit], nav form input[type=submit] {
	display:none;
}

header form i, nav form i {
	width:30px;
	height:30px;
	padding:5px 0 0 5px;
	position:absolute;
	top:5px;
	left:5px;
	border:0px;
	font-size:14px;
	background:none;
	opacity:0.7;
}

header .shortcuts, nav .shortcuts {
	padding:15px 20px 0 0;
	float:right;
	display:block;
}

nav .shortcuts {
	float:none;
}

header .shortcuts > li, nav .shortcuts > li {
	float:left;
	display:block;
	position:relative;
}

nav .shortcuts > li {
	float:none;
}

header .shortcuts li i, nav .shortcuts li i {
	width:26px;
	height:26px;
	margin:10px;
	display:block;
	font-size:20px;
	text-align:center;
	cursor:pointer;
}

nav .shortcuts li i {
	padding-left:36px;
	white-space:nowrap;
	font-style:normal;
	font-size:15px;
}

header .shortcuts li .flag, nav .shortcuts li .flag {
	width:26px;
	height:18px;
	margin-top:13px;
	border-radius:3px;
}

header .shortcuts li ul .flag, nav .shortcuts li ul .flag {
	margin-top:0px;
}

header .shortcuts ul, nav .shortcuts ul {
	padding:5px;
	display:none;
	position:absolute;
	top:-5px;
	right:-5px;
	background:#2F343A;
	border-radius:4px;
}

header .shortcuts ul.flags, nav .shortcuts ul.flags {
	padding:10px;
	top:3px;
	right:0px;
}

header .shortcuts ul.flags li:first-child, nav .shortcuts ul.flags li:first-child {
	margin-bottom:10px;
}

header .shortcuts li .color, nav .shortcuts li .color {
	width:20px;
	height:20px;
	margin:13px;
	border-radius:3px;
	background:var(--main-color);
}

header .shortcuts li .green, nav .shortcuts li .green {
	background:#31701C;
}
header .shortcuts li .red, nav .shortcuts li .red {
	background:#98211B;
}
header .shortcuts li .blue, nav .shortcuts li .blue {
	background:#2DA8C6;
}
header .shortcuts li .yellow, nav .shortcuts li .yellow {
	background:#FFE725;
}
header .shortcuts li .purple, nav .shortcuts li .purple {
	background:#7538A0;
}

header #admin {
	height:75px;
	padding:20px 15px;
	margin-right:20px;
	float:right;
	background:#2F343A;
	cursor:pointer;
}

header #admin img {
	width:36px;
	height:36px;
	margin-right:10px;
	float:left;
	border-radius:18px;
}

header #admin p {
	float:left;
	font-size:12px;
	line-height:18px;
}

header #admin p strong {
	display:block;
}

header #admin ul {
	padding:10px;
	display:none;
	position:absolute;
	top:75px;
	right:20px;
	background:#2F343A;
}

header #admin ul a {
	padding:10px 15px;
	display:block;
	transition:all 150ms;
}

header #admin ul a:hover {
	background:rgba(0,0,0,0.1);
	text-decoration:none;
}

header #admin ul a i {
	color:rgba(255,255,255,0.3);
	transition:all 150ms;
}

header #admin ul a:hover i {
	color:var(--main-color);
}

nav {
	background:#212529;
	box-shadow:0px 0px 1px rgba(0,0,0,0.2);
}

body.print > nav {
	display:none;
}

nav #logo {
	position:relative;
}

nav #logo img {
	max-width:90%;
	max-height:81px;
	margin:18px auto;
	display:block;
}

nav #logo img.christmas {
	width:35px;
	max-width:auto;
	height:auto;
	max-height:auto;
	margin:0px;
	position:absolute;
	top:-5px;
	right:80px;
}

nav#mainMenu div.menu ul li {
	color:#ffffff;
	cursor:pointer;
	transition:all 300ms;
}

nav#mainMenu div.menu ul li.italic {
	font-style:italic;
}

nav#mainMenu div.menu > ul > li:first-child {
	margin-top:0px;
}

nav#mainMenu ul li a, nav#mainMenu ul li span {
	padding:15px 30px;
	display:block;
	color:rgba(255,255,255,0.45);
}

nav#mainMenu ul li s {
	text-decoration:none;
}

nav#mainMenu ul li span.hover > s {
	color:#ffffff;
}

nav#mainMenu ul li.hover > a, nav#mainMenu ul li.hover > span {
	border-left:3px solid var(--main-color);
	color:#ffffff;
}

nav#mainMenu ul li.hover > a, nav#mainMenu ul li.hover > span {
	background:rgba(255,255,255,0.025);
}

nav#mainMenu ul li.hover ul li a, nav#mainMenu ul li.hover ul li span {
	border:0px;
	background:none;
}

nav#mainMenu ul li.hover ul li.hover a, nav#mainMenu ul li.hover ul li.hover span {
	color:var(--main-color);
}

nav#mainMenu ul li span:hover, nav#mainMenu ul li a:hover {
	background:rgba(255,255,255,0.05);
	text-decoration:none;
	color:var(--main-color);
}

nav#mainMenu ul li.hover > span:hover, nav#mainMenu ul li.hover > a:hover {
	color:#ffffff;
	background:rgba(255,255,255,0.025);
}

nav#mainMenu ul li span:hover i, nav#mainMenu ul li a:hover i {
	color:rgba(255,255,255,0.7);
}

nav#mainMenu ul li.hover a:hover i, nav#mainMenu ul li.hover span:hover i {
	color:#ffffff;
}

nav.tiny#mainMenu ul li i.right, nav.tiny#mainMenu ul li s {
	display:none;
}

nav#mainMenu ul li i.right, nav#mainMenu ul li small.right {
	float:right;
}

nav#mainMenu ul li small.icon-down-open-1.right {
	position:static;
	top:auto;
	left:auto;
}

nav#mainMenu ul li ul {
	display:none;
	background:rgba(0,0,0,0.15);
}

nav#mainMenu ul li ul.opened {
	display:block;
}

nav.tiny#mainMenu ul li ul.opened {
	display:none;
}

nav#mainMenu ul li ul li ul {
	background:none;
}

nav#mainMenu ul li ul li {
	position:relative;
}

nav#mainMenu ul li ul i, nav#mainMenu ul li ul i::after {
	width:10px;
	height:20px;
	position:absolute;
	top:0px;
	left:42px;
	display:block;
	border-left:1px solid rgba(255,255,255,0.5);
	border-bottom:1px solid rgba(255,255,255,0.5);
}

nav#mainMenu ul li ul li ul i {
	left:57px;
}

nav#mainMenu ul li ul i::after {
	content: '';
	width:1px;
	height:20px;
	top:20px;
	left:-1px;
	border-bottom:0px;
}

nav#mainMenu ul > li > ul > li:last-of-type a > i::after, nav#mainMenu ul li ul > li:last-of-type span > i::after {
	display:none;
}

nav#mainMenu ul > li > ul > li:last-of-type ul li a i::after, nav#mainMenu ul li ul > li:last-of-type ul li span i::after {
	display:inline;
}

nav#mainMenu ul > li > ul > li:last-of-type ul li:last-of-type a i::after, nav#mainMenu ul li ul > li:last-of-type ul li:last-of-type span i::after {
	display:none;
}

nav#mainMenu ul li ul li a, nav#mainMenu ul li ul li span {
	padding:10px 30px 10px 55px;
}

nav#mainMenu ul li ul li ul li a {
	padding-left:70px;
}

nav#mainMenu ul li ul li a:hover, nav#mainMenu ul li ul li span:hover {
	background:none;
}

section {
	padding:75px 0px 0px 250px;
	background:#1A1D21;
	color:#ffffff;
	transition:all 150ms;
}

section.full {
	padding-left:90px;
}

body.light section {
	background:#FFFFFF;
	color:#000000;
}

section #crumbs {
	height:42px;
	padding:10px 20px 0 20px;
	border-top:1px solid #191C20;
	background:#212529;
}

body.print section #crumbs {
	display:none;
}

section #crumbs ul {
	float:right;
}

section #crumbs ul li {
	float:left;
}

section #crumbs ul li i {
	padding:0 10px;
}

section #crumbs ul li:last-child i {
	display:none;
}

section #mainCont {
	padding:20px 20px 70px 20px;
}

body.print section #mainCont {
	padding:0px;
}

ul.tabs {
	height:40px;
	margin-left:15px;
	background:#1A1D21;
}

ul.tabs li {
	height:40px;
	padding:10px 15px;
	margin:0 3px 0 0;
	float:left;
	display:block;
	border-radius:5px 5px 0 0;
	background:rgba(0,0,0,0.2);
	cursor:pointer;
	transition:all 300ms;
}

ul.tabs li i {
	font-style:normal;
}

ul.tabs li i b {
	font-weight:normal;
}

ul.tabs li.hidden {
	display:none;
}

ul.tabs li.hover, ul.tabs li.hover:hover {
	background:#212529;
}

ul.tabs li:hover {
	background:rgba(0,0,0,0.08);
}

.box h3 .tabTitle {
	display:none;
}

.box h3 .tabTitle.visible {
	display:inline;
}

.box .tab {
	display:none;
}

.box .tab.visible {
	display:block;
}

#projects .project, #dashboard .project {
	padding:15px;
	margin-bottom:30px;
	cursor:pointer;
}

#projects .project img, #dashboard .project img {
	width:65px;
	height:65px;
	margin:0 10px 0 0;
	background-color:rgba(255,255,255,0.35);
	float:left;
	display:block;
	border-radius:10px;
	transition:all 300ms;
}

#projects .project:hover img, #dashboard .project:hover img {
	opacity:0.7;
}

#projects .project span, #projects .project i, #dashboard .project span, #dashboard .project i {
	padding:5px 0;
	display:block;
	border-bottom:1px solid rgba(0,0,0,0.3);
	font-size:14px;
	transition:all 300ms;
}

#projects .project i, #dashboard .project i {
	border-bottom:0px;
	font-size:12px;
	font-style:normal;
}

#projects .project:hover span, #dashboard .project:hover span {
	color:var(--main-color);
}

footer {
	padding:15px 0 0 0;
	background:#23282C;
	text-align:center;
	color:rgba(255,255,255,0.7);
}

body.print > footer {
	display:none;
}

footer .onlyDesktop a {
	text-decoration:underline;
}

footer a:hover {
	text-decoration:none !important;
}

#loginPage footer .onlyPhone {
	display:none !important;
}

#loginPage footer .onlyDesktop {
	display:block !important;
}

/* ===== BMS AI chat (desktop: card flottante in basso a destra) ===== */
.ai-chat {
	position:fixed;
	right:20px;
	bottom:20px;
	width:370px;
	max-width:calc(100vw - 40px);
	height:520px;
	max-height:calc(100vh - 110px);
	display:flex;
	flex-direction:column;
	background:#212529;
	border-radius:5px;
	box-shadow:0 12px 45px rgba(0,0,0,0.5);
	overflow:hidden;
	z-index:100000;
	opacity:0;
	visibility:hidden;
	transform:translateY(18px) scale(0.98);
	transform-origin:bottom right;
	transition:opacity 200ms ease, transform 220ms cubic-bezier(0.4,0,0.2,1), visibility 220ms;
}

.ai-chat.opened {
	opacity:1;
	visibility:visible;
	transform:translateY(0) scale(1);
}

/* "espandi": la chat copre l'area centrale (sotto l'header, a destra del menu). Solo desktop:
   su mobile la classe non ha effetto (l'icona e' onlyDesktop) e resta il layout mobile della chat.
   Nessuno spostamento DOM -> tutti gli handler/polling restano intatti. */
@media (min-width:901px) {
	.ai-chat.expanded {
		top:75px;
		left:250px;
		right:0;
		bottom:0;
		width:auto;
		height:auto;
		max-width:none;
		max-height:none;
		border-radius:0;
		transform:none;
	}
	/* quando il menu laterale e' collassato, l'area centrale parte piu' a sinistra */
	body > nav.tiny ~ .ai-chat.expanded { left:90px; }
}

.ai-chat .ai-chat-head {
	display:flex;
	align-items:stretch;
	justify-content:space-between;
	background:var(--main-color);
	color:#ffffff;
}

.ai-chat .ai-chat-tabs { display:flex; }

.ai-chat .ai-tab {
	display:flex;
	align-items:center;
	gap:6px;
	height:48px;
	padding:0 14px;
	border:none;
	background:transparent;
	color:rgba(255,255,255,0.6);
	font-family:inherit;
	font-size:13px;
	font-weight:500;
	cursor:pointer;
	border-bottom:2px solid transparent;
	transition:color 150ms, background 150ms;
}

.ai-chat .ai-tab.active {
	color:#ffffff;
	background:rgba(0,0,0,0.15);
	border-bottom-color:#ffffff;
}

.ai-chat .ai-chat-actions {
	display:flex;
	align-items:center;
	gap:12px;
	padding:0 14px;
	font-size:15px;
}

.ai-chat .ai-chat-actions b { cursor:pointer; opacity:0.8; transition:opacity 150ms; }
.ai-chat .ai-chat-actions b:hover { opacity:1; }

.ai-chat .ai-chat-body {
	display:none;
	flex:1 1 auto;
	min-height:0;
	padding:16px;
	overflow-y:auto;
	-webkit-overflow-scrolling:touch;
	background:#1A1D21;
	flex-direction:column;
	gap:10px;
}

.ai-chat .ai-chat-body.active { display:flex; }

.ai-chat .ai-msg {
	max-width:82%;
	padding:9px 13px;
	border-radius:6px;
	font-size:14px;
	line-height:1.42;
	white-space:pre-wrap;
	word-wrap:break-word;
}

.ai-chat .ai-msg.bot {
	align-self:flex-start;
	background:#2C3034;
	color:#ced4da;
	border-bottom-left-radius:2px;
}

.ai-chat .ai-msg.user {
	align-self:flex-end;
	background:var(--main-color);
	color:#ffffff;
	border-bottom-right-radius:2px;
}

.ai-chat .ai-chat-foot {
	display:flex;
	align-items:flex-end;
	gap:8px;
	padding:10px;
	background:#212529;
	border-top:1px solid rgba(255,255,255,0.08);
}

.ai-chat .ai-chat-foot textarea {
	flex:1 1 auto;
	resize:none;
	border:1px solid rgba(255,255,255,0.12);
	border-radius:5px;
	padding:9px 14px;
	background:#2C3034;
	color:#ced4da;
	font-family:inherit;
	font-size:14px;
	line-height:1.3;
	max-height:120px;
	outline:none;
}

.ai-chat .ai-chat-foot textarea::placeholder { color:#7a8189; }
.ai-chat .ai-chat-foot textarea:focus { border-color:var(--main-color); }

.ai-chat .ai-chat-foot button {
	flex:0 0 40px;
	width:40px;
	height:40px;
	border:none;
	border-radius:5px;
	background:var(--main-color);
	color:#ffffff;
	cursor:pointer;
	font-size:15px;
	transition:filter 150ms;
}

.ai-chat .ai-chat-foot button:hover { filter:brightness(1.1); }

/* launcher: icona tonda in basso a destra quando la chat e' ridotta */
.ai-chat-launcher {
	position:fixed;
	right:20px;
	bottom:20px;
	width:56px;
	height:56px;
	border:none;
	border-radius:50%;
	background:var(--main-color);
	color:#ffffff;
	font-size:22px;
	cursor:pointer;
	box-shadow:0 6px 20px rgba(0,0,0,0.45);
	z-index:100000;
	opacity:0;
	visibility:hidden;
	transform:scale(0.85);
	transition:opacity 180ms ease, transform 180ms cubic-bezier(0.4,0,0.2,1), visibility 180ms;
}

#aiChat.minimized + .ai-chat-launcher {
	opacity:1;
	visibility:visible;
	transform:scale(1);
}