._1000{
	display: none;
}
.access-denied{
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: var(--font-size-large);
	height: 100%;
}
.flex-center{
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
}
#app{
	height: calc(100 * var(--vh));
}
.viewport{
	height: 100%;
	--header-height: 60px;
	--footer-height: 60px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
header{
	height: var(--header-height);
	display: flex;
	align-items: center;
	gap: var(--padding-large);
	border-bottom: var(--border-width) solid var(--text-invisible);
}
main#content{
	flex: 1;
	overflow: hidden;
}
footer{
	height: var(--footer-height);
	border-top: var(--border-width) solid var(--text-invisible);
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 var(--padding-medium);
}
.logo{
	display: flex;
	align-items: center;
	justify-content: center;
	--logo-size: calc(var(--header-height) - 16px);
	padding: 0 var(--padding-medium);
	gap: var(--padding-medium);
	height: 100%;
}
.logo-img{
	width: var(--logo-size);
	height: var(--logo-size);
	mask-image: url("../images/evodog_logo.svg");
	background: var(--color-main);
}
.logo-text{
	font-size: 2.4rem;
}
header .logo-text{
	display: none;
}
nav{
	display: none;
	flex-grow: 1;
	gap: var(--padding);
}
header my-avatar{
	height: 40px;
	font-size: var(--font-size-large);
}
.nav-title{
	flex: 1;
	text-align: center;
	font-size: 2rem;
}
.headerItems{
	height: var(--header-height);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	border-bottom: var(--border-width-medium) solid transparent;
	border-top: var(--border-width-medium) solid  transparent;
	padding: 0 var(--padding-large);
	pointer-events: none;
	position: relative;
}
.headerItems span{
	height: var(--font-size);
}
.notifications-counter{
	position: absolute;
	bottom: 3px;
	right: 3px;
	height: 16px;
	aspect-ratio: 1;
	border-radius: var(--border-circle);
	background: var(--color-error-dark);
	display: none;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: var(--font-size-small);
}
.my-active .notifications-counter{
	background: var(--text);
}
.notifications-counter.visible{
	display: flex;
}
a:hover .headerItems{
	border-bottom: var(--border-width-medium) solid  color-mix(in srgb, var(--currentColor) 60%, transparent);
}
a.my-active .headerItems{
	border-bottom: var(--border-width-medium) solid  var(--currentColor);
	color: var(--currentColor);

}
.headerItems.headerIcons{
	padding: 0;
	width: var(--header-height);
	font-size: 2rem;
}
.headerItems.headerIcons my-avatar{
	pointer-events: auto;
}
.utils{
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
}
.mobile-menu{
	position: fixed;
	inset: 0;
	background: var(--background-lvl1);
	transition: .5s;
	top: 100%;
	display: flex;
	flex-direction: column;
}
.mobile-menu.active{
	top: 0;
}
.mobile-menu-header{
	height: var(--header-height);
	border-bottom: var(--border-width) solid var(--text-disabled);
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.mobile-menu-close{
	margin: 0 var(--margin-medium) 0 0;
}
.mobile-menu-links{
	flex: 1;
	overflow: auto;
}
.mobile-menu-item{
	padding: var(--padding-large);
	margin: var(--margin-medium) var(--margin-large);
	border-radius: var(--border-radius-medium);
	background: var(--text-secondary-invisible);
	font-size: var(--font-size-large);
}
a.my-active .mobile-menu-item{
	color: var(--currentColor);

}
.footerItems{
	height: calc(var(--footer-height) - 12px);
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: 2rem;
	aspect-ratio: 1 / 1;
	border-radius: var(--border-circle);
	transition: .3s;
}
.footerItems:active, .footerItems:hover{
	background: color-mix(in srgb, var(--currentColor) 25%, transparent);
}

.section-main{
	display: flex;
	width: 100%;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
}
.section-header{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--padding-medium) var(--padding-large);
}
.section-breadcrumbs{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--padding-medium);
}
.section-body{
	flex: 1;
	overflow: hidden;
	padding: 0 var(--padding) var(--padding);
}
.task-popup{
	color: var(--text-medium);
}
.task-popup .my-popup-header{
	border: none;
}
.task-popup h5{
	font-weight: var(--font-bold);
}
.task-form{
	height: 100%;
	display: flex;
	align-items: stretch;
	justify-content: center;
	gap: var(--padding-medium);
}
.task-title{
	font-variant: all-small-caps;
	font-weight: var(--font-bold);
	color: var(--text-disabled);
	font-size: var(--font-size-large);
}
.task-menu{
	display: none;
	width: 270px;
}
.task-content{
	flex: 1;
	max-width: 100%;
}

.task-tags .task-title{
	text-align: right;
}
.task-projet-detail{
	text-align: justify;
	color: var(--text-disabled);
	font-style: italic;
}
.task-client{
	color: var(--color-second);
}
.task-projet details{
	padding: var(--padding);
	border-radius: var(--border-radius-large);
	background: var(--background);
	user-select: none;
	transition: .3s;
}
.task-projet details > summary span.icon {
	transition: .3s;
	padding: var(--padding-medium);
}
.task-statut my-select{
	width: 100%;
}
.task-actions{
	display: flex;
	align-items: center;
	justify-content: space-evenly;
}
.task-projet details[open] summary span.icon {
	transform: rotate(180deg);
}
.task-projet summary{
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.task-projet summary::-webkit-details-marker {
	display: none;
}
.tags-list{
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: var(--padding-medium);
	flex-wrap: wrap;
}
my-tag.tags-edit{
	color: var(--currentColor);
	background: color-mix(in srgb, var(--currentColor) 15%, transparent);
	aspect-ratio: 1/1;
	min-width: 0;
	cursor: pointer;
}
my-tag.tags-edit:hover{
	background: color-mix(in srgb, var(--currentColor) 25%, transparent);
}
.task-row-date my-date{
	width: 100%;
}
.fakeinput{
	background: color-mix(in srgb, var(--text) 5%, transparent);
	display: flex;
	width: 100%;
	align-items: center;
	padding: var(--padding-medium);
	border-radius: var(--border-radius-medium);
	transition: .3s;
	margin: 1px 0;
	text-align: right;
}
.task-date-temps{
	margin-left: auto;
}
.task-creation{
	font-size: var(--font-size-small);
	font-style: italic;
}
.task-statut{
	padding: var(--padding) 0 0 0;
}
.task-menu .my-input, .task-menu my-button{
	width: 100%;
}
.task-menu my-button{
	margin: var(--margin-medium) 0;
	text-align: left;
	justify-content: flex-start;
	padding: 0 var(--padding-large);
}
.task-row-description .my-tile-content, .task-row-activity .my-tile-content {
	overflow: visible;
}
.commentaire{
	display: flex;
	align-items: flex-start;
	padding: var(--padding);
	gap: var(--padding-medium);
	margin: 0 0 var(--margin-large) 0;
}
.commentaire .comm-content{
	flex: 1;
}
.commentaire .comm-user{
	color: var(--currentColor);
}

.commentaire .comm-date{
	font-size: var(--font-size-small);
	font-weight: var(--font-regular);
	color: var(--text-disabled);
	font-style: italic;
}
.task-message{
	background: var(--text-secondary-invisible);
	border-radius: var(--border-radius-large);
	margin: 0 0 var(--margin-large) 0;
}
.commentaire h2{
	font-size: var(--font-size-large);
}
.commentaire h3{
	font-size: var(--font-size-medium);
}
.task-comment-form{
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--padding-medium);
	background: var(--text-secondary-invisible);
	border-radius: var(--border-radius-large);
	margin: 0 0 var(--margin-large) 0;
	padding: var(--padding-medium);
	transition: .3s;
}
.task-comment-input{
	flex: 1;
	min-width: min(100%, 240px);
	min-height: 32px;
	max-height: 140px;
	border: none;
	background: transparent;
	color: var(--text);
	padding: var(--padding-medium);
	resize: none;
	font: inherit;
	line-height: 1.4;
}
.task-comment-input:focus{
	outline: none;
}
.task-comments-count{
	color: var(--text-disabled);
	font-weight: var(--font-regular);
}
my-button.task-comment-submit{
	width: 34px;
	height: 34px;
	min-width: 34px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	font-size: var(--font-size-medium);
}
my-button.task-comment-submit.disabled{
	opacity: .5;
	cursor: wait;
}

.task-comment-form:focus-within{
	box-shadow: 0 0 0 var(--border-width-medium) color-mix(in srgb, var(--currentColor) 45%, transparent);
}
.task-comments-empty{
	padding: var(--padding);
	color: var(--text-disabled);
	font-style: italic;
}
.task-reply-context{
	display: none;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	gap: var(--padding-medium);
	padding: 0 0 var(--padding-medium);
	border-bottom: var(--border-width) solid color-mix(in srgb, var(--text) 10%, transparent);
	color: var(--text-disabled);
}
.task-reply-context.active{
	display: flex;
}
.task-reply-context-content{
	display: flex;
	align-items: center;
	gap: var(--padding);
	min-width: 0;
}
.task-reply-context-content span{
	color: var(--currentColor);
	font-weight: var(--font-bold);
	white-space: nowrap;
}
.task-reply-context-content small{
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.task-reply-clear{
	border: none;
	background: transparent;
	color: var(--text-disabled);
	cursor: pointer;
}
.task-reply-clear:hover{
	color: var(--color-error);
}
.commentaire{
	position: relative;
	border-radius: var(--border-radius-large);
	transition: background .3s;
}
.commentaire.commentaire-focus{
	background: color-mix(in srgb, var(--currentColor) 12%, transparent);
}
.comm-actions{
	display: flex;
	gap: var(--padding);
	opacity: 0;
	transition: .2s;
}
.commentaire:hover .comm-actions,
.commentaire:focus-within .comm-actions{
	opacity: 1;
}
.comm-action{
	width: 28px;
	height: 28px;
	border: none;
	border-radius: var(--border-radius-medium);
	background: color-mix(in srgb, var(--text) 8%, transparent);
	color: var(--text-disabled);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: .2s;
}
.comm-action:hover{
	background: color-mix(in srgb, var(--currentColor) 18%, transparent);
	color: var(--currentColor);
}
.comm-delete:hover{
	background: color-mix(in srgb, var(--color-error) 18%, transparent);
	color: var(--color-error);
}
.comm-edit-input{
	width: 100%;
	min-height: 72px;
	max-height: 180px;
	border: none;
	border-radius: var(--border-radius-large);
	background: var(--background);
	color: var(--text);
	padding: var(--padding);
	resize: none;
	font: inherit;
	line-height: 1.4;
}
.comm-edit-input:focus{
	outline: var(--border-width-medium) solid color-mix(in srgb, var(--currentColor) 45%, transparent);
}
.comm-edit-actions{
	display: flex;
	justify-content: flex-end;
	gap: var(--padding);
	margin-top: var(--margin-medium);
}
.comm-parent-ref{
	border: none;
	background: transparent;
	color: var(--text-disabled);
	display: flex;
	align-items: center;
	gap: var(--padding);
	max-width: 100%;
	padding: 0 0 var(--padding);
	cursor: pointer;
	text-align: left;
}
.comm-parent-ref:before{
	content: "";
	width: 28px;
	height: 14px;
	border-left: var(--border-width-medium) solid var(--text-disabled);
	border-top: var(--border-width-medium) solid var(--text-disabled);
	border-radius: var(--border-radius-medium) 0 0 0;
}
.comm-parent-ref span{
	color: var(--currentColor);
	font-weight: var(--font-bold);
	white-space: nowrap;
}
.comm-parent-ref small{
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.comm-parent-ref:hover{
	color: var(--currentColor);
}
.admin-robot-param-category,
.admin-robot-param-instance{
	margin: 0 0 var(--margin-medium);
	border-radius: var(--border-radius-large);
	background: var(--background-lvl1);
	overflow: hidden;
}
.admin-robot-param-categories{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, max(300px, calc((100% - 3 * var(--padding-medium)) / 4))), 1fr));
	gap: var(--padding-medium);
}
.admin-robot-actions{
	display: flex;
	justify-content: flex-end;
	padding: 0 0 var(--padding-medium);
}
.admin-robot-param-categories > .admin-robot-param-category{
	margin: 0;
}
.admin-robot-param-category > summary,
.admin-robot-param-instance > summary{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--padding-medium) var(--padding-large);
	cursor: pointer;
	font-weight: var(--font-bold);
	user-select: none;
}
.admin-robot-param-category > summary::-webkit-details-marker,
.admin-robot-param-instance > summary::-webkit-details-marker{
	display: none;
}
.admin-robot-param-category > summary i,
.admin-robot-param-instance > summary i{
	transition: .3s;
}
.admin-robot-param-category[open] > summary i,
.admin-robot-param-instance[open] > summary i{
	transform: rotate(180deg);
}
.admin-robot-param-category-content,
.admin-robot-param-instance-content{
	padding: var(--padding-medium);
}
.admin-robot-param-instance{
	background: var(--background);
}
.admin-robot-param{
	padding: var(--padding-medium);
}
.admin-robot-param my-input{
	width: 100%;
}
.admin-robot-param small{
	display: block;
	padding: var(--padding) var(--padding-medium) 0;
	color: var(--text-disabled);
}
.showroom{
	display: flex;
	align-items: center;
	justify-content: stretch;
	gap: 16px;
}
.showroom > div {
	width: 20%;
	height: 100%;
}
.ql-editor.ql-blank::before{
	color: var(--text-disabled);
}
p{
	margin: 0;
	padding: 0;
}
.grid-tile{
	border-radius: var(--border-radius-large);
	background: var(--background-lvl1);
	width: 100%;
	overflow: hidden;
}
.grid-tile-header{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--padding-medium);
	border-bottom: var(--border-width) solid var(--text-invisible);
}
.grid-tile-content{
	padding: var(--padding-medium);
}
.grid-tile-title{
	font-size: var(--font-size-medium);
	font-weight: var(--font-bold);
	line-height: var(--font-size-medium);
}
.grid-tile-subtitle{
	color: var(--color-second);
}
.grid-tile-footer{
	padding: var(--padding-medium);
	display: flex;
	gap: var(--padding-medium);
	align-items: center;
	justify-content: flex-end;

}
.add-tag{
	cursor: pointer;
}
.my-kanban-tile-dates .my-kanban-tile-icon-content{
	font-weight: var(--font-bold);
	padding: var(--padding) var(--padding-medium);
	border-radius: var(--border-radius-large);
	background: color-mix(in srgb, var(--projectColor) 30%, transparent);
}
.dashboard-kanban-filters{
	display: none;
	margin: 0 0 var(--margin-large) 0;
	padding: var(--padding-medium);
	border-radius: var(--border-radius-large);
	background: color-mix(in srgb, var(--text) 4%, transparent);
}
.dashboard-kanban-filters-open{
	display: block;
}
.dashboard-kanban-filters-active{
	box-shadow: inset 0 0 0 var(--border-width) color-mix(in srgb, var(--currentColor) 35%, transparent);
}
.dashboard-kanban-filter-grid{
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--padding);
}
.dashboard-kanban-filter-grid .my-input{
	width: 100%;
	margin: 0;
}
.dashboard-kanban-filter-actions{
	display: flex;
	justify-content: flex-end;
	gap: var(--padding);
	margin-top: var(--margin-medium);
}
.my-kanban-filter-active{
	background: color-mix(in srgb, var(--currentColor) 15%, transparent);
}
@media (max-width: 900px){
	.dashboard-kanban-filter-grid{
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 600px){
	.dashboard-kanban-filter-grid{
		grid-template-columns: 1fr;
	}
	.dashboard-kanban-filter-actions{
		flex-direction: column;
		align-items: stretch;
	}
	.dashboard-kanban-filter-actions my-button{
		width: 100%;
	}
}

.task-popup{
	color: var(--text-medium);
}
.task-popup .my-popup-header{
	border: none;
}
.task-title-editable{
	font-size: calc(var(--font-size-large) * 1.2);
	font-weight: var(--font-bold);
	padding: 0;
	margin: 0;
	width: 700px;
	max-width: 100%;
}
.task-popup h5{
	font-weight: var(--font-bold);
}
.task-form{
	height: 100%;
	display: flex;
	align-items: stretch;
	justify-content: center;
	gap: var(--padding-medium);
}
.task-title{
	font-variant: all-small-caps;
	font-weight: var(--font-bold);
	color: var(--text-disabled);
	font-size: var(--font-size-large);
}
.task-menu{
	display: none;
	width: 270px;
}
.task-content{
	flex: 1;
	max-width: 100%;
}

.task-tags .task-title, .task-title.task-title-right{
	text-align: right;
}
.task-projet-detail{
	text-align: justify;
	color: var(--text-disabled);
	font-style: italic;
}
.task-client{
	color: var(--color-second);
}
.task-projet details{
	padding: var(--padding);
	border-radius: var(--border-radius-large);
	background: var(--background);
	user-select: none;
	transition: .3s;
}
.task-projet details > summary span.icon {
	transition: .3s;
	padding: var(--padding-medium);
}
.task-statut my-select{
	width: 100%;
}
.task-actions{
	display: flex;
	align-items: center;
	justify-content: space-evenly;
}
.task-projet details[open] summary span.icon {
	transform: rotate(180deg);
}
.task-projet summary{
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.task-projet summary::-webkit-details-marker {
	display: none;
}
.tags-list{
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: var(--padding-medium);
	flex-wrap: wrap;
}
my-tag.tags-edit{
	color: var(--currentColor);
	background: color-mix(in srgb, var(--currentColor) 15%, transparent);
	aspect-ratio: 1/1;
	min-width: 0;
	cursor: pointer;
}
my-tag.tags-edit:hover{
	background: color-mix(in srgb, var(--currentColor) 25%, transparent);
}
.task-row-date my-date{
	width: 100%;
}
.fakeinput{
	background: color-mix(in srgb, var(--text) 5%, transparent);
	display: flex;
	width: 100%;
	align-items: center;
	padding: var(--padding-medium);
	border-radius: var(--border-radius-medium);
	transition: .3s;
	margin: 1px 0;
	text-align: right;
}
.task-date-temps{
	margin-left: auto;
}
.task-creation{
	font-size: var(--font-size-small);
	font-style: italic;
}
.task-statut{
	padding: var(--padding) 0 0 0;
}
.task-menu .my-input, .task-menu my-button{
	width: 100%;
}
.task-menu my-button{
	margin: var(--margin-medium) 0;
	text-align: left;
	justify-content: flex-start;
	padding: 0 var(--padding-large);
}
.task-row-description .my-tile-content, .task-row-activity .my-tile-content {
	overflow: visible;
}
.task-section{
	padding: var(--padding-medium);
	border: var(--border-width) solid transparent;
}
.task-section my-editor{
	margin: 0;
}
.task-row-flex{
	display: flex;
	gap: var(--padding);
}
.task-row-flex.task-row-between{
	justify-content: space-between;
}
.project-info-page{
	max-width: 1100px;
	margin: 0 auto;
}
.project-info-form{
	display: flex;
	flex-direction: column;
	gap: var(--padding-medium);
}
.project-info-card{
	background: var(--background);
	border-radius: var(--border-radius-large);
}
.project-info-fields{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--padding);
	margin-top: var(--margin-medium);
}
.project-info-fields my-input,
.project-info-fields my-select,
.project-info-fields my-date{
	width: 100%;
}
.project-info-page .admin-comments{
	margin-top: var(--margin-large);
}
.client-info-page .admin-comments{
	margin-top: var(--margin-large);
}
.firmware-info-page .admin-comments{
	margin-top: var(--margin-large);
}
.robot-info-page .admin-comments{
	margin-top: var(--margin-large);
}
.project-form-actions{
	display: flex;
	justify-content: flex-end;
}
@media (max-width: 700px){
	.project-info-fields{
		grid-template-columns: 1fr;
	}
}
.task-editable-content{
	position: relative;
}
.task-edit-val{
	position: absolute;
	top: 0;
	right: 0;
	font-size: 0.7em;
	padding: var(--padding);
	cursor: pointer;
	color: var(--currentColor);
	background: color-mix(in srgb, var(--currentColor) 15%, transparent);
	border-radius: var(--border-radius-medium);
	display: none;
	transition: .3s;
}
.task-editable-content:hover .task-edit-val{
	display: block;
}
.task-add-val{
	cursor: pointer;
	transition: .3s;
}
.task-add-val:hover{
	text-decoration: underline;
}
.commentaire{
	display: flex;
	align-items: flex-start;
	padding: var(--padding);
	gap: var(--padding-medium);
	margin: 0 0 var(--margin-large) 0;
}
.commentaire .comm-content{
	flex: 1;
}
.commentaire .comm-user{
	color: var(--currentColor);
}

.commentaire .comm-date{
	font-size: var(--font-size-small);
	font-weight: var(--font-regular);
	color: var(--text-disabled);
	font-style: italic;
}
.task-message{
	background: var(--text-secondary-invisible);
	border-radius: var(--border-radius-large);
	margin: 0 0 var(--margin-large) 0;
}
.commentaire h2{
	font-size: var(--font-size-large);
}
.commentaire h3{
	font-size: var(--font-size-medium);
}
