:root {
  --menu-bg: #ffffff;
  --menu-text: #222;
  --menu-hover: #f5f5f5;
  --menu-active: #10aaae;
}
.button,.btnEcaldima, .btnEcaldimaMSL.e-button, .btnScoop, #InlineEditForm_GridMapping_Save, #InlineEditForm_Grid_Save,.btnLogin,.btnEcaldimalight, .btnEcaldimaMSLlight.e-button, .btnScoopLight, #InlineEditForm_GridMapping_Cancel, #InlineEditForm_Grid_Cancel,.btnEcaldimaback,.btnRequestNumber
{
    -webkit-border-radius: 0;
    -moz-border-radius: 0;
    border-radius: 0;
	box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}

.btnLogin
{
	min-width: 150px;
}
footer {
	background: linear-gradient(#ffffff, #9FEFFF );
	position: fixed;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: 0;
	margin-bottom: 0px;
	box-sizing: border-box;
	height: 50px;
	display: flex;
	justify-content: center;
	align-items: center; 
	color: var(--primary-color);
}
.loginheader {
	border: none;
	background: none;
	width: 100%;
	margin: 0;
	box-sizing: border-box;
}
.controls {
    box-shadow: none;
}
.pagetitle {
    box-shadow: none;
    background: #FFF;
    display: block;
    margin-bottom: 0px;
    margin-top: 0px;
    font-size: 1.2em;
    font-weight: bold;
    color: rgb(92, 93, 90);
    border-top-left-radius: 0;
}
.loginform {
    margin: 0;margin: 0;display: flex;flex-direction: column;
}
.loginmain {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-top: 5em;
}
.login-field a, .login-field a:visited
{
	text-decoration: underline;
}
.btnLogin-field {
    text-align: center;
}
.btnTC {
    -webkit-border-radius: 5px;
    -moz-border-radius: 0;
    border-radius: 5px;
	border: none;
	background: var(--primary-color);
	width: 130px;
	color: #FFFFFF;
	height: 35px;
	font-weight: 500;
	cursor: pointer;
	box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}
.btnTC:hover {
	box-shadow: 2px 4px 4px rgba(0, 0, 0, 0.2);
}
.tcbody{height: 100%;margin: 0;display: flex;flex-direction: column; font-family: sans-serif;}
.homepageoptiondescription{
	margin: 5px 0px 5px 0px;
}
.boxmyactionstc{
    background-color: #f7f7f7;
	height: auto;
	width: 95%;
}
.myactionstitletc{
	white-space: normal;
}

.btresetpassword {
    background: var(--button-background-color-light);
    border: 1px solid var(--button-background-color-light);
    color: var(--button-text-color-light);
    position: relative;
    -webkit-border-radius: 5px;
    -moz-border-radius: 5px;
    border-radius: 5px;
    padding: 5px 10px 5px 24px;
    min-width: 95px;
    text-decoration: none;
    cursor: pointer;
    box-sizing: border-box;
}

.btresetpassword:before {
    position: absolute;
    font-family: 'uicons-regular-straight';
    left: 6px;
    top: 6px;
    content: "\eb65";
    color: var(--button-text-color);
}
.btresetpassword:hover{
    background: var(--button-background-color-light-hover);
    border: 1px solid var(--button-background-color-light-hover);
    color: var(--button-text-color-light-hover);
}

#tcChangePasswordModal{
	z-index: 15000;
}

/*.pagewrap{padding: 0;}*/

.tc-pagetitle {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	background-color: var(--button-background-color);
	color: var(--button-text-color);
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	height: 60px;
	border-bottom: 1px solid #ccc;
	z-index: 1000;
	padding: 0 15px;
}

.tc-pagetitle-right {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--primary-color);
}
.tc-pagetitle-left {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}


.tc-pagetitle-center {
	flex-grow: 1;
	text-align: center;
	font-weight: bold;
	display: flex;
	flex-direction: column;
}

.tc-logo-circle {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	object-fit: contain;
}
.companynamediv {
  font-size: 0.75em;
  font-weight: bold;
  background-color: var(--primary-color); /* vert vif */
  color: #fff;
  padding: 2px 8px;
  border-radius: 12px;
  display: inline-block;
  margin-bottom: 3px;
  align-self: center;
}

#pagetitle {
  font-size: 1.6em;
  font-weight: 800;
  color: var(--button-text-color);
  text-shadow: 1px 1px 0 rgba(0,0,0,0.15);
  letter-spacing: 0.5px;
}

.tc-main {flex: 1;display: flex;flex-direction: column;align-items: center;
position: absolute;
	top: 60px; /* hauteur du tc-pagetitle */
	bottom: 80px; /* hauteur du tc-bottom-nav */
	left: 0;
	right: 0;
	overflow-y: auto;
	padding: 15px;
	-webkit-overflow-scrolling: touch; /* iOS smooth scroll */
}
.tc-logostatus{padding: 10px;}
.tc-welcome {
    width: 100%;
    display: flex;
    flex-direction: row;
    padding: 10px;
    color: var(--text-color);
    text-align: center;
    align-items: center;
    justify-content: center;
    font-size: 1.5em;
}
.tc-div-punchbuttondiv {display: flex; flex-direction: column; align-items: center;width: auto;padding: 10px;border: 1px solid var(--primary-color);border-radius: 20px;margin: 10px 0px 10px 0px;}
.tc-punchbuttondiv {display: flex; flex-direction: column;align-items: center;    /*background-color: rgba(var(--primary-color-light-rgb),0.3);*/ width: 400px;}
.tc-div-punchbuttondiv h2{    color: var(--primary-color);}
.tc-div-punchbuttondiv h3{    color: var(--primary-color);font-weight: 400;}
.tc-punchtitlesdiv {display: flex;flex-direction: column;   align-items: center;}
.btnPunch{
    border: none;
    display: flex;
    width: 250px;
    padding: 0;
    flex-wrap: wrap;
    border-radius: 20px;
    align-items: center;
    font-size: 1.8em;
    font-weight: 600;
    padding: 5px;
	column-gap: 10px;
	box-shadow: rgba(0, 0, 0, 0.3) 0px 2px 4px 0px;
	color: #fff;
	cursor: pointer;
	margin: 15px 0px;
}
#btnPunchOut, #btnPunchIn{
    background-color: var(--primary-color);
	color: #fff;
}
#btnPunchStartBreak, #btnPunchEndBreak{
    background-color: var(--primary-color-light);
	color: #fff;
}
#btnPunchInToAvailability{
    background-color: #6736c2;
	color: #fff;
	font-size: 1.6em;
}
#btnPunchSwitchToEfective{
    background-color: #6736c2;
	color: #fff;;
}
#btnPunchOut div, #btnPunchIn div, #btnPunchStartBreak div , #btnPunchEndBreak div, #btnPunchInToAvailability div, #btnPunchSwitchToEfective div {height: 48px;line-height: 48px;}
.tc-historydiv {text-align: center;padding: 10px;margin: 10px 0px 10px 0px;}
.tc-recordinglistdiv {text-align: center;padding: 10px;margin: 10px 0px 10px 0px;}
.tc-punchincidentslistdiv {text-align: center;padding: 10px;margin: 10px 0px 10px 0px;}
.tc-buttonfichar { 	position: relative; 	outline: none; 	font-size: 1.2em; 	text-align: center; 	background-color: var(--button-background-color); 	-webkit-border-radius: 5px; 	-moz-border-radius: 5px; 	border-radius: 5px; 	color: var(--button-text-color); 	padding: 15px; 	width: 250px; 	text-decoration: none; 	border: 1px solid #A0A0A0; 	cursor: pointer; 	box-sizing: border-box; 	box-shadow: rgba(0, 0, 0, 0.3) 0px 2px 4px 0px; 	margin: 15px; }
.tc-buttonfichar i{ 	position: absolute; 	left: 15px; 	top: 50%; 	transform: translateY(-50%); 	font-size: 1.3em; }
.tc-btn-submit{ 	position: relative; 	outline: none; 	font-size: 1.2em; 	text-align: center; 	background-color: var(--button-background-color); 	-webkit-border-radius: 5px; 	-moz-border-radius: 5px; 	border-radius: 5px; 	color: var(--button-text-color); 	padding: 10px; 	width: 180px; 	text-decoration: none; 	border: 1px solid var(--button-background-color); 	cursor: pointer; 	box-sizing: border-box; 	box-shadow: rgba(0, 0, 0, 0.3) 0px 2px 4px 0px;}
.tc-btn-submit i { 	position: absolute; 	left: 10px; 	top: 50%; 	transform: translateY(-50%); 	font-size: 1.3em; margin-top: 2px; }
.tc-btn-cancel{
    position: relative;
    outline: none;
    font-size: 1.4em;
    text-align: center;
    background-color: #e14210;
    -webkit-border-radius: 25px;
    -moz-border-radius: 25px;
    border-radius: 25px;
    color: #fff;
    padding: 10px;
    width: 250px;
    text-decoration: none;
    border: 1px solid var(--button-background-color-light);
    cursor: pointer;
    box-sizing: border-box;
    box-shadow: rgba(0, 0, 0, 0.3) 0px 2px 4px 0px;
    font-weight: bold;
}
.tc-btn-cancel i { 	position: absolute; 	left: 10px; 	top: 50%; 	transform: translateY(-50%); 	font-size: 1.3em;     margin-top: 3px;}

.tc-btn-request {
    position: relative;
    outline: none;
    font-size: 1.4em;
    text-align: center;
    background-color: var(--button-background-color-light);
    -webkit-border-radius: 25px;
    -moz-border-radius: 25px;
    border-radius: 25px;
    color: #fff;
    padding: 10px;
    width: 250px;
    text-decoration: none;
    border: 1px solid var(--button-background-color-light);
    cursor: pointer;
    box-sizing: border-box;
    box-shadow: rgba(0, 0, 0, 0.3) 0px 2px 4px 0px;
    font-weight: bold;
}
.tc-btn-request i {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.3em;
    margin-top: 2px;
}

.btnaccept {
    background: var(--button-background-color-light);
}
.btnaccept:before {
	position: absolute;
	font-family: 'uicons-regular-straight';
	left: 15px;
	top: 10px;
	content: "\e35f";
	color: var(--button-text-color);
}
.btnaccept:hover{
    background: var(--button-background-color-hover);
    border: 1px solid var(--button-background-color-hover);
    color: var(--button-text-color-hover);
}
.btnrefuse {
    background-color: #e14210;
    border: #e14210;
}
.btnrefuse:before {
    position: absolute;
    font-family: 'uicons-regular-straight';
	left: 15px;
	top: 10px;
    content: "\e4d0";
    color: var(--button-text-color);
}
.btnrefuse:hover{
    background: var(--button-background-color-light-hover);
    border: 1px solid var(--button-background-color-light-hover);
    color: var(--button-text-color-light-hover);
}
.btndelete, .btncancel {
    background-color: #e14210;
    border: #e14210;
}
.tc-bottom-nav {   position: fixed;   bottom: 0;   left: 0;   width: 100%;   height: 60px;   background-color: var(--primary-color);   border-top: 1px solid #ccc;   display: flex;   justify-content: space-around;   align-items: center;   z-index: 998; }
.tc-bottom-nav div {   text-decoration: none;   color: #ffe;   font-size: 0.85em;   text-align: center;   flex: 1; }
.tc-bottom-nav i {   display: block;   font-size: 1.4em;   margin-bottom: 2px; }
.tc-movement-list {   list-style: none;   padding: 0;   margin: 1em 0; }
.tc-movement-list li {   display: flex;   align-items: center;   padding: 0.6em;   border-bottom: 1px solid #eee;   font-size: 0.95em; text-align: left;}
.tc-movement-list i {   margin-right: 0.6em;   font-size: 1.2em; }
.tc-movement-entry { background-color: #10aaae;}
.tc-movement-pause { background-color: #f4851f; }
.tc-movement-endpause { background-color: #f4851f; }
.tc-movement-exit { background-color: #f44336; }
.tc-movement-item {   display: flex;   justify-content: space-between;   align-items: center;   padding: 0.8em 1em;   border-bottom: 1px solid #ddd; cursor: pointer;  }
.tc-movement-info {   display: flex;   gap: 0.8em;   align-items: center; cursor: pointer; }
.tc-movement-info i {padding-top: 5px;}
.tc-movement-has-request{font-style: italic;}

.tc-movement-detail{
	display: flex;
    flex-direction: column;
    align-items: center;
}
.tc-movement-buttons {
    display: flex;
    justify-content: center;
    margin-top: 1em;
    column-gap: 10px;
}
.tc-edit-btn{margin-left: auto;border: none;background: none;cursor: pointer;}

.attachmentul {   list-style: none;   padding: 0;   margin: 1em 0;padding-inline-start: 0;}
.tc-modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: auto; /* ← permet de scroller dans le modal */
	background-color: rgba(0, 0, 0, 0.5); /* assombrit le fond */
	z-index: 1000;
}
.tc-modal-content {
	background-color: #fff;
	margin: 5% auto 80px auto; /* ← marge inférieure pour ne pas être caché */
	padding: 20px;
	max-width: 800px;
	border-radius: 8px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
	overflow-y: auto;
	max-height: calc(100vh - 40px); /* pour que le modal ne déborde pas */
	transition: transform 0.3s ease, opacity 0.3s ease;
	transform: translateY(0%);
}

.tc-modal-buttons {
    display: flex;
    justify-content: center;
    margin-top: 1em;
    column-gap: 10px;
    flex-wrap: wrap;
    row-gap: 10px;
}
.tc-row {   display: flex;   flex-direction: column;   margin-bottom: 1em; flex: 1; }
.tc-col {   display: flex;   flex-direction: row;   margin-bottom: 1em; gap: 10px; }
.tc-dialog > div{padding: 2px;}
.tc-row label,.tc-col label {   margin-bottom: 0.3em;   font-weight: bold; }
.tc-row input, .tc-row textarea, .tc-col input, .tc-col textarea {   padding: 10px;   font-size: 1em;   border-radius: 25px;   border: 1px solid #ccc; line-height: normal;}
#tcCorrectionForm{ margin-top: 15px;}
.tc-modal-close {   position: absolute;   top: 10px;   right: 15px;   font-size: 26px;   font-weight: bold;   color: #555;   cursor: pointer; }
.tc-modal-close:hover {   color: #000; }
input[type="checkbox"] {
    transform: scale(1.5);
    margin-right: 8px;
    margin-left: 4px;
    cursor: pointer;
}

.tc-toolbar-item { 	display: flex; 	flex-direction: column; 	align-items: center; 	position: relative; 	cursor: pointer; }
.tc-toolbar-icon-wrapper {   position: relative;   display: inline-block; }
.tc-badge {   position: absolute;   top: -5px;   right: -10px;   background-color: red;   color: white;   font-size: 11px;   padding: 2px 6px;   border-radius: 12px;   font-weight: bold;   min-width: 18px;   text-align: center; }
#tcRequestsBadge{ background-color: var(--primary-color-light);}
.tc-show-all-container {   text-align: center;   margin-top: 1em; }
.tc-button-secondary {   padding: 0.6em 1.2em;   font-size: 1em;   border: 1px solid var(--primary-color);   background-color: white;   color: var(--primary-color);   border-radius: 8px;   cursor: pointer; }
.tc-button-secondary i {   margin-right: 5px; }
.tc-request-tiles {   display: flex;   gap: 1em;   justify-content: center;   flex-wrap: wrap;   margin-bottom: 1.5em; }
.tc-request-tile {   width: 140px;   height: 100px;   background: #ffffff;   border: 1px solid var(--primary-color);   border-radius: 12px;   display: flex;   flex-direction: column;   justify-content: center;   align-items: center;   font-size: 0.9em;   text-align: center;   cursor: pointer; }
.tc-request-tile i {   font-size: 1.5em;   margin-bottom: 0.5em;   color: var(--primary-color); }
.tc-request-list {   list-style: none;   padding: 0;   margin: 0;   margin-top: 1em; }
.tc-request-item {   display: flex;   justify-content: space-between;   align-items: center;   padding: 0.8em 1em;   border-bottom: 1px solid #ddd; }
.tc-request-info {   display: flex;   gap: 0.8em;   align-items: center; cursor: pointer; }
.tc-request-info i {padding-top: 5px;}
#tcRequestsToValidateList{ cursor: pointer; }
.tc-request-title {   font-weight: bold; text-align: left;}
.tc-request-details {   font-size: 0.9em;   color: #666; }
.tc-request-status {   padding: 0.4em 0.8em;   border-radius: 20px;   font-size: 0.8em;   font-weight: bold; }
.tc-request-status.pendingreview { background: #fff3cd; color: #856404; }
.tc-request-status.pendinginformation { background: #06a3a67d; color: #333; }
.tc-request-status.accepted { background: #d4edda; color: #155724; }
.tc-request-status.refused { background: #f8d7da; color: #721c24; }
.tc-request-status.cancelled { background: #E3F0FB; color: #333; }
body {   overflow-x: hidden;}
.tc-request-filters-container {    min-height: fit-content;   width: 100%;   overflow-x: auto;   -webkit-overflow-scrolling: touch;   background: #fff;   box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);   border-bottom: 1px solid #eee;   padding: 0.5em 0; margin: 0; }
.tc-request-filters {display: flex;   gap: 0.5em; min-width: max-content; }
.tc-history-filters-container {    min-height: fit-content;   width: 100%;   overflow-x: auto;   -webkit-overflow-scrolling: touch;   background: #fff;   box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);   border-bottom: 1px solid #eee;   padding: 0.5em 0; margin: 0; }
.tc-history-filters {display: flex;   gap: 0.5em; min-width: max-content; }
.tc-recordinglist-filters-container {    min-height: fit-content;   width: 100%;   overflow-x: auto;   -webkit-overflow-scrolling: touch;   background: #fff;   box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);   border-bottom: 1px solid #eee;   padding: 0.5em 0; margin: 0; }
.tc-recordinglist-filters {display: flex;   gap: 0.5em; min-width: max-content; }
.tc-punchincidentslist-filters-container {    min-height: fit-content;   width: 100%;   overflow-x: auto;   -webkit-overflow-scrolling: touch;   background: #fff;   box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);   border-bottom: 1px solid #eee;   padding: 0.5em 0; margin: 0; }
.tc-punchincidentslist-filters {display: flex;   gap: 0.5em; min-width: max-content; }
.tc-settings-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.tc-settings-item, .tc-reports-item {
  display: flex;
  gap: 1em;
  align-items: center;
  padding: 1em;
  border-bottom: 1px solid #ddd;
  cursor: pointer;
  background-color: #fff;
  transition: background-color 0.2s;
}

.tc-settings-item:hover, .tc-reports-item:hover {
  background-color: #f5f5f5;
}
.tc-settings-info{
	flex: 1;
}
.tc-settings-title {
  font-weight: bold;
  font-size: 1em;
}

.tc-settings-description {
  font-size: 0.85em;
  color: #666;
}

.tc-employee-list {
  list-style: none;
  padding: 0;
  margin: 0;
  padding-inline-start: 0px;
}
.tc-workschedules-header{
	margin-top: 24px;
}
.tc-employee-header {
    padding: 1em;
    border-top: 1px solid #f1f1f1;
    margin-top: 5px;
}
.tc-employee-list-header,.tc-company-list-header {
    padding: 1em;
}
.tc-search-input {
  width: 100%;
  padding: 0.5em;
  margin-bottom: 1em;
  font-size: 1em;
}

.tc-employee-filters, .tc-workschedules-filters, .tc-permissionstype-filters, .tc-company-filters {
  display: flex;
  gap: 0.5em;
  margin-bottom: 1em;
}
.tc-requests-filter-btn,.tc-employee-filter-btn,.tc-workschedules-filter-btn,.tc-permissionstype-filter-btn, .tc-company-filter-btn, .tc-history-filter-btn, .tc-recordinglist-filter-btn {
  flex: 1;
  padding: 0.5em;
  font-weight: bold;
  border: 1px solid var(--button-background-color);
  background-color: #fff;
  color: var(--button-background-color);
  border-radius: 4px;
  cursor: pointer; transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}

.tc-requests-filter-btn.tc-active,.tc-employee-filter-btn.tc-active,.tc-workschedules-filter-btn.tc-active,.tc-permissionstype-filter-btn.tc-active, .tc-company-filter-btn.tc-active, .tc-history-filter-btn.tc-active, .tc-recordinglist-filter-btn.tc-active {
  background-color: var(--button-background-color);
  color: var(--button-text-color);
}

.tc-add-employee-btn {
  display: flex;
  align-items: center;
  gap: 0.5em;
  margin-bottom: 1em;
  padding: 0.5em 1em;
  background-color: var(--button-background-color);
  color: var(--button-text-color);
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-weight: bold;
}

.tc-employee-item, .tc-workplace-item, .tc-department-item, .tc-employee-item-selector, .tc-permissiontype-item {
  display: flex;
  align-items: center;
  padding: 1em;
  border-bottom: 1px solid #eee;
  cursor: pointer;
  overflow: hidden;
  transition: max-height 0.3s ease;
}
.tc-employee-row{
	width: 100%;
}
.tc-employee-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background-color: #ddd;
  color: #333;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 1em;
  text-transform: uppercase;
  flex-shrink: 0;
}
.employeestatus-I{background-color: #A9FBB4;}
.employeestatus-O{background-color: #ddd;}
.employeestatus-R{background-color: #A9FBB4;}
.employeestatus-P{background-color: #FFD766;}
.tc-employee-info {
  flex: 1;
}

.tc-employee-name {
  font-weight: bold;
}

.tc-employee-role {
  font-size: 0.85em;
  color: #666;
}
.tc-employee-summary {
	display: flex;
	align-items: center;
	padding: 10px;
	cursor: pointer;
}
.tc-selected-employees {
    border-top: 1px solid #ddd;
    margin-top: 10px;
    padding-top: 5px;
}

.tc-selected-emp {
    display: inline-block;
    background: #f0f0f0;
    border-radius: 12px;
    padding: 4px 8px;
    margin: 2px;
}
.tc-employee-actions-circle, .tc-permissiontype-actions-circle  {
	grid-column: 1 / -1; /* occupe toute la ligne sur grid */
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 16px;
	padding-top: 10px;
}

.tc-action-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 70px;
	flex-shrink: 0;
}

.tc-btn-circle {
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background-color: var(--button-background-color);
	color: var(--button-text-color);
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.2em;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
	cursor: pointer;
	transition: background-color 0.2s ease;
}


.tc-btn-circle:hover {
	background-color: var(--button-background-color-light);
	color: var(--button-text-color-light);
}

.tc-action-label {
	margin-top: 6px;
	font-size: 0.75em;
	text-align: center;
	color: #333;
}

.tc-permissiontype-list {
	padding-inline-start: 0px;
}
.tc-permissiontype-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px;
	border-bottom: 1px solid #ddd;
}

.tc-permissiontype-badge, .tc-workplace-badge, .tc-department-badge, .tc-settings-badge {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background-color: var(--button-background-color-light);
    color: var(--button-text-color);
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 1em;
    text-transform: uppercase;
}
.tc-settings-badge-2{
	background-color: #6736c2;
}
.tc-permissiontype-main {
	flex: 1;
	display: flex;
	flex-direction: column;
}

.tc-permissiontype-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	border-top: 1px solid #f1f1f1;
	margin-top: 5px;
}

.tc-permissiontype-name {
	font-weight: bold;
}

.tc-permissiontype-actions-horizontal {
	display: flex;
	gap: 10px;
}

.tc-permissiontype-actions-horizontal button {
	background: none;
	border: none;
	color: var(--button-background-color);
	font-size: 1.2em;
	cursor: pointer;
	padding: 4px;
	transition: color 0.2s;
}

.tc-permissiontype-actions-horizontal button:hover {
	color: var(--button-hover-color, #000);
}

.tc-permissiontype-description {
    font-size: 0.9em;
    color: #555;
    margin-top: 4px;
    padding-right: 10px;
}

.tc-fab-add-permissiontype, .tc-fab-add-employee, .tc-fab-add-workplace, .tc-fab-add-department, .tc-fab-add-schedule {
	position: fixed;
	bottom: 140px;
	right: 20px;
	background-color: var(--button-background-color-light);
	color: var(--button-text-color);
	border: none;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	font-size: 1.5em;
	box-shadow: 0 4px 8px rgba(0,0,0,0.2);
	z-index: 1100; /* supérieur à la nav */
	cursor: pointer;
}
/*début expandable*/

.tc-fab-child {
	all: unset;
	display: flex;
	flex-direction: column !important;
	align-items: center;
	justify-content: center;
	width: 150px !important;
	height: 48px;
	border-radius: 50%;
	background-color: var(--button-background-color);
	color: var(--button-text-color);
	cursor: pointer;
	text-align: center;
	position: relative;
	padding: 4px !important;
}
.tc-fab-add-expandable {
    position: fixed;
    bottom: 80px;
    right: 20px;
    width: 48px;
    background-color: var(--primary-color);
    color: var(--button-text-color);
    border-radius: 24px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    overflow: hidden;
    transition: height 0.3s ease;
    z-index: 1100;
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    padding: 0;
    justify-content: space-between;
	z-index: 10000;
}

.tc-fab-add-expandable.collapsed {
	height: 48px;
}

.tc-fab-add-expandable.expanded {
	height: 400px;
	width: 150px;
	padding-top: 8px;
}

.tc-fab-add-expandable button {
	all: unset;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 48px;
	height: 48px;
	cursor: pointer;
	font-size: 1.2em;
	color: var(--button-text-color);
	margin: 4px 0;
	transition: background-color 0.2s ease;
}

.tc-fab-icon {
	font-size: 1.5em;
	line-height: 1em;
}

.tc-fab-label {
	font-size: 0.65em;
	line-height: 1.1em;
	margin-top: 2px;
	pointer-events: none;
}

/* fin expandable */
.tc-workplace-list, .tc-department-list {
  list-style: none;
  padding: 0;
  margin: 0;
  padding-inline-start: 0px;
}

.tc-workplace-info, .tc-department-info {
  flex: 1;
}

.tc-workplace-name, .tc-department-name {
  font-weight: bold;
}

.tc-workplace-details, .tc-department-details {
  font-size: 0.9em;
  color: #666;
}

.tc-copy-field {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tc-copy-value {
  font-weight: bold;
  font-family: monospace;
  background: #f2f2f2;
  padding: 5px 10px;
  border-radius: 4px;
}

.tc-copy-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1rem;
  color: var(--button-text-color);
}
.tc-password-field {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tc-password-field input.tc-copy-value {
  font-family: monospace;
  padding: 6px 10px;
  border: 1px solid #ccc;
  border-radius: 4px;
  flex-grow: 1;
  background-color: #f9f9f9;
}

.tc-visibility-btn,
.tc-copy-btn {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 1rem;
  color: var(--primary-color);
}
.tc-alert-warning {
    padding: 20px 10px 20px 0px;
    text-align: justify;
}

#tcCorrectedMinutes{width: 150px;}

/* Work scheludes */
.tc-ws-list, .tc-employee-ws-list {
  list-style: none;
  padding: 0;
  margin: 0;
  padding-inline-start: 0px;
}

.tc-ws-item {
	border-bottom: 1px solid #ddd;
	cursor: pointer;
}

.tc-ws-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 12px;
}
.tc-employee-ws-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.tc-ws-title {
	flex: 1;
}

.tc-ws-name {
	font-weight: bold;
}

.tc-ws-date, .tc-ws-isenabled, .tc-ws-isdefault {
	font-size: 0.85em;
	color: #666;
}

.tc-ws-arrow {
	transition: transform 0.3s;
}

.tc-ws-details {
	display: none;
	padding: 0 12px 12px 12px;
}
.tc-ws-plan {
	padding: 0 12px 12px 12px;
}
.tc-ws-item.expanded .tc-ws-details {
	display: block;
}

.tc-employee-ws-details {
	display: block;
}
.tc-ws-actions {
	display: flex;
	justify-content: center;
	gap: 20px;
	padding-top: 10px;
	flex-wrap: wrap;
}
.tc-ws-summary-table {
	width: 100%;
	table-layout: fixed; /* force la largeur égale des colonnes */
	word-wrap: break-word;
}

.tc-ws-summary-table th,
.tc-ws-summary-table td {
	padding: 6px 4px;
	border: 1px solid #ccc;
	font-size: 0.8em;
}
.tc-day {
	position: relative;
	padding-top: 1.5em; /* espace pour mettre le titre en haut */
	vertical-align: middle; /* garde l’horaire centré verticalement */
}

.tc-ws-type {
	position: absolute;
	top: 4px;
	left: 0;
	right: 0;
	text-align: center;
	font-weight: bold;
	font-size: 0.85em;
}

.tc-day-content {
	margin-top: 8px; /* espace sous le titre */
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}



.tc-ws-hours {
	display: block;
	margin-top: 4px;
	color: #333;
}

.tc-ws-break {
	display: block;
	margin-top: 2px;
	font-size: 0.75em;
	color: #999;
}

/* Couleurs par type */
.tc-continuous {
	background: #06a3a67d !important;
}

.tc-split {
	background: #E3F0FB !important;
}

.tc-off {
	background: #FBE3E3 !important;
}
.schedule-tc-continuous {
	background: #06a3a6 !important;
}

.schedule-tc-split {
	background: #E3F0FB !important;
	color: #333  !important;
}
.schedule-tc-availability {
	background: var(--primary-color-light) !important;
	color: #333  !important;
}

.schedule-tc-off {
	background: #FBE3E3 !important;
}
/* Structure card */
.tc-ws-day-cards-container {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 16px;
	margin: 16px 0;
}

.tc-ws-day-card {
	background: #f9f9f9;
	border: 1px solid #ddd;
	border-radius: 8px;
	box-shadow: 0 2px 4px rgba(0,0,0,0.05);
	padding: 12px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.tc-ws-day-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 10px;
}

.tc-ws-day-name {
	font-weight: bold;
	font-size: 1.2em;
	color: #333;
}

.tc-ws-day-fields {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.tc-ws-day-fields label {
	font-weight: 500;
	margin-bottom: 4px;
}

.tc-ws-day-fields input,
.tc-ws-day-fields select {
	width: 100%;
	box-sizing: border-box;
	padding: 6px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-size: 1em;
}

.tc-ws-break input {
	max-width: 80px;
}

/* ✅ Panneau latéral */
.tc-profile-panel {
    position: fixed;
    top: 0;
    right: -320px;
    width: 300px;
    height: 100%;
    background: #fff;
    box-shadow: -2px 0 8px rgba(0, 0, 0, 0.2);
    transition: right 0.3s ease;
    z-index: 100000;
    display: flex;
    flex-direction: column;
}

.tc-profile-panel.active {
    right: 0;
}

.tc-profile-header {
    background: var(--button-background-color, #4CAF50);
    color: #fff;
    padding: 20px;
    text-align: center;
}
.tc-menu-panel {
    position: fixed;
    top: 0;
    left: -320px;
    width: 300px;
    height: 100%;
    background: #fff;
    box-shadow: -2px 0 8px rgba(0, 0, 0, 0.2);
    transition: left 0.3s ease;
    z-index: 9999;
    display: flex;
    flex-direction: column;
}

.tc-menu-panel.active {
    left: 0;
}
.tc-menu-header {
	color: var(--primary-color);
    padding: 20px;
}
.tc-avatar {
    width: 60px;
    height: 60px;
    margin: 0 auto 10px;
    border-radius: 50%;
    background: #fff;
    color: var(--button-background-color, #4CAF50);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5em;
    font-weight: bold;
	flex-shrink: 0;
}

.tc-profile-tiles {
    display: flex;
    flex-direction: column;
    gap: 15px;
    padding: 20px;
}
.tc-profile-manager {
    margin-top: 10px;
    font-size: 0.9em;
}


.tc-tile {
    background: #f8f8f8;
    border-radius: 8px;
    padding: 15px;
    display: flex;
    align-items: center;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.tc-tile-icon {
    font-size: 1.8rem;
    margin-right: 15px;
}

.tc-tile-content {
    flex: 1;
}

.tc-tile-label {
    font-size: 0.9rem;
    color: #666;
}

.tc-tile-value {
    font-size: 1.3rem;
    font-weight: bold;
    color: #333;
}

.tc-tile-overtime {
    border-left: 4px solid var(--primary-color);
}

.tc-tile-absence {
    border-left: 4px solid var(--primary-color-light);
}
.tc-tile-calendar {
    border-left: 4px solid #6736c2;
}

.tc-profile-footer {
    margin-top: auto;
    padding: 20px;
    border-top: 1px solid #eee;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.tc-profile-actions {
    padding: 0 20px 15px;
}
.tc-profile-actions-circle {
	grid-column: 1 / -1; /* occupe toute la ligne sur grid */
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 16px;
	padding-top: 10px;
}
.tc-btn-circle-white {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    color: var(--button-text-color);
    border: 1px solid var(--button-background-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2em;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
    cursor: pointer;
    transition: background-color 0.2s ease;
    color: var(--button-background-color);
    background-color: #f8f8f8;
}
.tc-btn-circle-white:hover{
    color: var(--button-text-color-light);
    border: 1px solid var(--button-background-color-light);
}
#tcChangePasswordForm input {
    line-height: 28px;
    padding: 0.7em;
    height: unset !important;
	margin-bottom: 5px;
}

#RequestedPermissionTypeDescription{
    padding-top: 5px;
    font-style: italic;
}
.tc-file-input {
    display: none;
}

.tc-file-input-text {
  position: absolute;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0 !important;
}

.tc-file-upload {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.tc-file-btn {
    background-color: var(--button-background-color, #4CAF50);
    color: var(--button-text-color, #fff);
    padding: 8px 14px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 5px;
	border-radius: 25px;
}

.tc-file-btn:hover {
    background-color: #45a049;
}

.tc-file-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.tc-file-item {
    background: #f0f0f0;
    border-radius: 6px;
    padding: 6px 10px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.9em;
}

.tc-file-icon {
    font-size: 1.2em;
    color: #555;
}

.tc-file-name {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tc-file-remove {
    background: none;
    border: none;
    color: #e74c3c;
    font-size: 1.1em;
    cursor: pointer;
}
.tc-file-remove:hover {
    color: #c0392b;
}
.ios {
  padding-top: calc(env(safe-area-inset-top, 0) + 40px);
}
.tc-schedule-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 5px;
    margin-top: 5px;
}

.tc-schedule-cell {
    border-radius: 8px;
    text-align: center;
    padding: 5px;
    font-size: 0.85em;
}

.tc-schedule-day {
    width: 25px;
    height: 25px;
    line-height: 25px;
    border-radius: 50%;
    background: #333;
    color: #fff;
    display: inline-block;
    margin-bottom: 4px;
    font-weight: bold;
}

.tc-schedule-time {
    font-size: 0.75em;
    color: #333;
}
.tc-employee-detail, .tc-permissiontype-detail, .tc-validation-detail {
  background: #fff;
  height: 100%;
  overflow-y: auto;
  animation: slideIn 0.3s ease;
  width: 100%
}
.tc-back-btn {
  background: none;
  border: none;
  font-size: 1rem;
  color: #333;
  cursor: pointer;
  margin-right: 1rem;
}

.tc-employee-info-grid, .tc-permissiontype-info-grid {
    display: flex;
    flex-direction: row;
    gap: 1rem;
	/*flex-wrap: wrap;*/
	gap: 10px;
	width: 100%;
	justify-content: center;
}
.tc-employee-info-section,.tc-permissiontype-info-section,.tc-overtimesettings-info-section {
    background: #fff;
    padding: 1rem;
    border-radius: 25px;
	border: 1px solid var(--primary-color);
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
	flex: 1;
    max-width: 450px;
    display: flex;
    flex-direction: column;
	width: 100%;
}
.tc-movement-info-section {
    background: #fff;
    padding: 1rem;
    border-radius: 25px;
	border: 1px solid var(--primary-color);
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
	flex: 1 1 450px;
    max-width: 450px;
    display: flex;
    flex-direction: column;
}
.tc-modal-title {
	padding: 18px;
    width: 100%;
	text-align: center;
}
.tc-modal-title span {
    color: var(--button-background-color);
    font-size: 1.8em;
    font-weight: 600;
}
.tc-movement-card{
	width: 400px;
}
.tc-permissiontype-info-section,.tc-overtimesettings-info-section {
	min-width: initial;	
}
.tc-info-row {
    display: flex;
    align-items: center;
    padding: 0.5rem 0;
    border-bottom: 1px solid #eee;
}

.tc-info-label {
    flex: 1;
    font-weight: 600;
    color: #555;
}
.tc-info-label.permissiontype{
	flex: 1;
}
.tc-permissionstype-header{
	margin: 30px 0px;
}
.tc-info-value {
    flex: 1; /* Laisse la value prendre tout le reste */
    font-weight: 400;
    color: #333;
    text-align: right; /* Option : aligne à droite la value */
    overflow-wrap: break-word; /* Coupe les longs textes */
}


.tc-active {
    color: #4CAF50; /* vert pour actif */
    font-weight: bold;
}

.tc-inactive {
    color: #F44336; /* rouge pour inactif */
    font-weight: bold;
}

.tc-employee-info-section h3,.tc-permissiontype-info-section h3,.tc-overtimesettings-info-section h3 {
    margin-bottom: 0.5rem;
    color: #333;
    font-size: 1.1rem;
    border-bottom: 2px solid #ccc;
    padding-bottom: 0.3rem;
}

#tcOvertimeSettingsForm{
    display: flex;
    flex-direction: column;
    align-items: center;
}

.tc-employee-schedule {
  padding: 1rem;
}

.tc-btn-action {
  background: #AECF49;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 0.5rem 1rem;
  cursor: pointer;
}
.tc-btn-copy-day {
    background: none;
    border: none;
    color: #6c757d;
    cursor: pointer;
    font-size: 1.2rem;
    margin-left: 0.5rem;
}

.tc-btn-copy-day:hover {
    color: #007bff;
}
.tc-copy-popup {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 0 20px rgba(0,0,0,0.2);
    width: 300px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.tc-copy-header{
	width: 100%;
    line-height: 40px;
    text-align: center;
    background-color: var(--primary-color);
    font-size: 1.5em;
    font-weight: bold;
    color: #fff;
}
.tc-copy-popup h3 {
    margin-top: 0;
    font-size: 1.2rem;
    text-align: center;
}

.tc-copy-day-list {
    margin: 15px 0;
    max-height: 200px;
    overflow-y: auto;
    padding: 20px;
    align-self: flex-start;
}
.tc-copy-day-item {
    display: block;
    margin-bottom: 8px;
}

.tc-copy-popup-buttons {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.tc-password-buttons {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.tc-copy-popup-buttons .tc-btn-submit,
.tc-copy-popup-buttons .tc-btn-cancel {
    margin: 5px;
}
.tc-row label {
    display: flex;
    align-items: center;
    gap: 8px; /* espace entre la checkbox et le texte */
    flex-wrap: wrap; /* permet de revenir à la ligne si trop long */
}

.tc-row label input[type="checkbox"] {
    flex-shrink: 0; /* empêche la checkbox de se réduire */
}

.tc-row label span {
    flex: 1; /* le texte prend la largeur restante */
}
.tc-confirm-warning {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    text-align: center;
}

.tc-warning-icon {
    background: #fff3cd;
    color: #856404;
    border-radius: 50%;
    padding: 1rem;
    font-size: 3rem;
    margin-bottom: 1rem;
}

.tc-confirm-buttons {
    display: flex;
    gap: 1rem;
    margin-top: 1.5rem;
}

.tc-confirm-buttons button {
    min-width: 120px;
}
.tc-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.4); /* assombrit l’arrière-plan */
    z-index: 14000; /* juste sous le modal */
}
.tc-modal, .tcpage {
    z-index: 1000; /* assure-toi que la fenêtre est au-dessus de l’overlay */
}
.tcpage {text-align: left;width: 100%;}
.tc-info-label.required::after {
    content: " *";
    color: #E74C3C; /* rouge élégant */
    margin-left: 3px;
    font-weight: bold;
}

.tchome {
    width: 100%;
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}

.requiredinvalid {
    border: 2px solid #E74C3C;
}
input:required:invalid {
    border: 2px solid #E74C3C;
}
input:required:focus {
    outline: 2px solid #3498DB;
}
select:required:invalid {
    border: 2px solid #E74C3C;
}
.tc-ws-plan-list {
	margin-top: 1em;
	padding-left: 1em;
}
.tc-ws-plan-item {
	margin-bottom: 0.5em;
}
.tc-ws-plan-item.tc-disabled {
	opacity: 0.5;
	text-decoration: line-through;
}

.tc-calendar-container {
	width: 100%;
	max-width: 300px;
	padding: 8px;
	box-sizing: border-box;
	margin: 20px auto;
	text-align: center;
	font-family: sans-serif;
	border: 1px solid #ddd;
	border-radius: 8px;
}


.tc-calendar-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 10px;
	font-weight: bold;
	font-size: 1.2em;
}

.tc-cal-arrow {
	background: none;
	border: none;
	font-size: 1.5em;
	cursor: pointer;
	color: var(--button-background-color);
}
.tc-calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}

.tc-calendar-day-name {
	width: 32px;
	height: 32px;
	line-height: 32px;
	border-radius: 50%;
	font-size: 0.8em;
	background-color: #f0f0f0;
	font-weight: bold;
	cursor: default;
	text-align: center;
	cursor: pointer;
}

.tc-calendar-day.empty {
	background-color: transparent;
	cursor: default;
}
.tc-calendar-day {
	position: relative;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	text-align: center;
	font-size: 0.9em;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #f0f0f0;
}

.tc-day-number {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
	font-weight: bold;
}

.tc-half-circle {
	position: absolute;
	width: 100%;
	height: 50%;
	left: 0;
	background-color: transparent;
	z-index: 1;
}

.tc-half-circle.morning {
	top: 0;
	border-top-left-radius: 50% 100%;
	border-top-right-radius: 50% 100%;
}

.tc-half-circle.afternoon {
	bottom: 0;
	border-bottom-left-radius: 50% 100%;
	border-bottom-right-radius: 50% 100%;
}

.tc-working-morning .morning {
	background-color: #90c5f1;
}

.tc-working-afternoon .afternoon {
	background-color: #90c5f1;
}

.tc-day-nonworking {
	background-color: #FBE3E3;
	color: #888;
}
.tc-day-continuous {
	background-color: #06a3a67d;
}
.tc-calendar-day.today::after {
	content: '';
	position: absolute;
	bottom: 4px;
	left: 25%;
	width: 50%;
	height: 3px;
	background-color: var(--button-background-color);
	border-radius: 2px;
	z-index: 1;
}
.tc-calendar-day.tc-day-multiple-availability .tc-day-number {
    color: red;
}
.tc-current-info {
  text-align: center;
  margin: 10px 0;
}

.tc-current-datetime,
.tc-work-schedule {
  margin: 5px 0;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.tc-ws-plan-table {
	width: 100%;
	border-collapse: collapse;
	margin-top: 10px;
}

.tc-ws-plan-table th,
.tc-ws-plan-table td {
	padding: 6px 4px;
	text-align: left;
    font-size: 0.8em;
	border: 1px solid #ccc;
}
.tc-ws-plan-table .tc-disabled {
	opacity: 0.5;
}

.tc-ws-plan-table td:last-child {
	text-align: -webkit-center;
	white-space: nowrap;
}


.employee-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: flex-start;
}

.employee-card {
  width: 350px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
  display: flex;
  align-items: center;
  padding: 24px 18px;
  transition: box-shadow 0.2s;
}

.employee-card .initials {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 1.6em;
  background: #e3eefc;
  color: var(--primary-color);
  margin-right: 18px;
}

.employee-card .details {
  flex: 1;
}

.employee-card .name {
  font-size: 1.1em;
  font-weight: 600;
  margin-bottom: 4px;
}

.employee-card .status {
  font-size: 1em;
  margin-bottom: 8px;
}

.employee-card .schedule {
    font-size: 0.95em;
    color: #677da8;
    text-align: center;
}

.employee-card .movimiento {
  font-size: 0.95em;
  color: #677da8;
  padding: 5px 0px 5px 0px;
}
.employee-card.present {
  border-left: 7px solid var(--primary-color);
}

.employee-card.absent {
  border-left: 7px solid #fc6262;
  opacity: 0.7;
}

.employee-card.pause {
  border-left: 7px solid #ffb848;
}

.employee-card:hover {
  box-shadow: 0 8px 20px rgba(0,0,0,0.16);
}
.employee-card .status-pop {
    display: flex;
    align-items: center;
    font-size: 1.18em;
    font-weight: 600;
    margin-bottom: 8px;
    border-radius: 25px;
    padding: 0;
    transition: background 0.3s;
}

.employee-card .status-pop .icon {
  display: inline-flex;     /* garde l’alignement */
  align-items: center;
  justify-content: center;
  width: 48px;              /* même largeur que l’image */
  height: 48px;             /* même hauteur que l’image */
  margin-right: 10px;
  font-size: 0;             /* évite l’espace lié au texte */
}
.employee-card .status-pop .icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;      /* garde les proportions */
}


.status-present {
  background: rgba(var(--primary-color-rgb),0.4);
  color: #2ca943;
}

.status-pause {
  background: rgba(var(--primary-color-light-rgb),0.4);
  color: #e2962c;
}

.status-absent {
  background: #e94e4e38;
  color: #e94e4e;
}
.reveal {
  animation: revealClip 0.5s forwards;
}

@keyframes revealClip {
  from { clip-path: inset(0 100% 0 0); } /* masqué à droite */
  to   { clip-path: inset(0 0 0 0); }    /* complètement visible */
}
.loginmain {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 2em;
}
.loginform{
	display: block;
}
.login-field input[type="text"], .login-field input[type="password"] {
    height: 30px;
    border: 2px solid var(--primary-color-light);
    -webkit-border-radius: 20px;
    -moz-border-radius: 20px;
    border-radius: 20px;
}
.login-label{text-align: center;}
.btnTCLogin {
    -webkit-border-radius: 5px;
    -moz-border-radius: 0;
    border-radius: 20px;
    border: none;
    background: var(--primary-color-light);
    width: auto;
	min-width: 300px;
    color: #FFFFFF;
    height: 52px;
    font-weight: 500;
    cursor: pointer;
    box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
    font-size: 2em;
}
.login-field {
    margin: 0 0 1em 0;
    vertical-align: middle;
    width: auto;
	min-width: 300px;
    text-align: center;
	font-size: 1.2em;
}
footer{ background: none;}
/* Ciblage du placeholder pour les navigateurs modernes */
.login-field input::placeholder {
  text-align: center;
}

/* Ciblage pour les navigateurs WebKit (Chrome, Safari, etc.) */
.login-field input::-webkit-input-placeholder {
  text-align: center;
}

/* Ciblage pour Firefox */
.login-field input:-moz-placeholder {
  text-align: center;
}

/* Ciblage pour Internet Explorer et Edge */
.login-field input:-ms-input-placeholder {
  text-align: center;
}
.lostPasswordEmail, #NewPasswordConfirmation, #NewPassword{
    border: 1px solid var(--primary-color-light) !important;
    border-radius: 25px !important;
    line-height: 40px !important;
    height: 40px !important;
}
textarea {
    min-height: 75px;
    border-color: #aaa;
    border-radius: 25px;
    padding: 10px;
}

/* mainmenu */
.tc-mainmenu {
  position: fixed;
  top: 0;
  left: -280px;
  width: 260px;
  height: 100%;
  background: var(--menu-bg);
  color: var(--menu-text);
  border-top-right-radius: 28px;
  border-bottom-right-radius: 28px;
  z-index: 100000;
  box-shadow: 4px 0 12px rgba(0, 0, 0, 0.15);
  transition: left 0.3s ease;
  display: flex;
  flex-direction: column;
}

.tc-mainmenu.open {
  left: 0;
}

/* Header */
.tc-mainmenu-header {
  padding: 18px 20px;
  font-size: 18px;
  font-weight: bold;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: var(--button-background-color);
  color: #fff;
}

.tc-mainmenu-close {
  font-size: 20px;
  cursor: pointer;
  color: #fff;
}

/* Menu Items */
.tc-mainmenu-menu {
  list-style: none;
  padding: 20px 10px;
  margin: 0;
  flex-grow: 1;
}

.tc-mainmenu-menu li {
  padding: 14px 16px;
  margin: 10px 0;
  background-color: #f9f9f9;
  border-radius: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 16px;
  cursor: pointer;
  transition: background-color 0.2s;
}

.tc-mainmenu-menu li:hover {
  background-color: var(--menu-hover);
}

.tc-mainmenu-menu li.active {
  background-color: var(--menu-active);
  color: white;
}

.tc-mainmenu-menu li.active i {
  color: white;
}

.tc-mainmenu-menu i {
  font-size: 20px;
  color: var(--primary-color);
}

/* Overlay */
#tc-mainmenu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  display: none;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  z-index: 1000;
}
.tc-circle-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: white;
  font-size: 16px;
}
select {
    padding: 2px;
    font-size: 14px;
    color: #4c4c4c;
    line-height: 32px;
    height: 35px;
    border: 1px solid #aaa;
    border-radius: 25px;
}
input[type="time" i],input[type="date" i],input[type="number"]{
    border-radius: 25px;
    line-height: 30px;
    padding: 5px;
}
.tc-employee-card{
	margin: 20px 0px;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.tc-employee-subcard{
	display: flex;
	flex-direction: column;
	min-width: 400px;
}

.e-schedule .e-timeline-view .e-resource-text, .e-schedule .e-timeline-month-view .e-resource-text {
    text-wrap: auto;
}
#tcHorario{
	font-size: 1.2em;
}
.Movements{
	white-space: pre-line !important;
}

.tc-reports-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 16px;
	padding: 16px;
}

.tc-report-tile {
	border: 1px solid var(--primary-color);
	color: var(--primary-color);
	border-radius: 16px;
	padding: 20px;
	text-align: center;
	cursor: pointer;
	transition: transform 0.2s ease, background-color 0.3s;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.tc-report-tile:hover {
	transform: translateY(-4px);
	border-color: var(--primary-color-light);
	color: var(--primary-color-light);
}

.tc-report-icon {
	font-size: 28px;
	margin-bottom: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.tc-report-label {
	font-weight: bold;
	font-size: 14px;
}

.tc-balance-card {
	margin-top: 20px;
  display: flex;
  align-items: center;
  background-color: #fef7ed;
  border-radius: 16px;
  padding: 16px;
  margin-bottom: 24px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.tc-balance-info{width: 100%;}
.tc-balance-value {
  font-size: 24px;
  font-weight: bold;
  width: 100%;
  text-align: center;
  color: var(--primary-color);
}

.tc-history-section {
  margin-top: 24px;
}
.tc-section-title{
  margin-bottom: 10px;
}
.tc-history-list {
 display: flex;
 flex-direction: row;
 gap: 10px;
 flex-wrap: wrap;
}

.tc-purchase-history-item {
  border: 1px solid #6736c2;
  color: #6736c2;
  padding: 12px 20px;
  border-radius: 25px;
  text-decoration: none;
}
.tc-conso-history-item {
  border: 1px solid var(--primary-color);
  color: var(--primary-color);
  padding: 12px 20px;
  border-radius: 25px;
  text-decoration: none;
}


.tc-support-card {
  display: flex;
  align-items: center;
  background-color: #fef7ed;
  border-radius: 16px;
  padding: 16px;
  margin-top: 24px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.08);
}

.tc-support-avatar {
  width: 64px;
  height: 64px;
  margin-right: 16px;
  border-radius: 50%;
  background-color: white;
}

.tc-support-content {
  flex-grow: 1;
}

.tc-support-title {
  font-weight: bold;
  font-size: 1.1em;
  color: #f4851f;
  margin-bottom: 4px;
}

.tc-support-text {
  font-size: 0.9em;
  color: #555;
  margin-bottom: 8px;
}

.tc-button-support {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background-color: #10aaae;
  color: white;
  text-decoration: none;
  border-radius: 24px;
  font-weight: 500;
  transition: background-color 0.2s ease;
}

.tc-button-support:hover {
  background-color: #0e969a;
}
.tc-home-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  gap: 16px;
}

.tc-logo-container img {
  width: 200px;
  max-width: 100%;
}

.tc-welcome-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.tc-welcome {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.5em;
}

.tc-current-datetime {
  font-size: 1em;
  color: var(--text-color-light);
}

.tc-home-header .tc-logo-container img{
	width: 300px;
}
.tc-home-punch{
	width: auto;
}
.tc-support-content a,.tc-support-content a:visited{
	color: #fff;
}
@media (orientation: landscape) and (max-height: 450px) {
  .tchome {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 32px;
    padding: 10px 20px;
	width: 100%;
  }
	.tc-home-header {
		width: auto;
	}
  .tc-logo-container img {
    width: 300px;
  }

  .tc-welcome-container {
    align-items: flex-start;
    text-align: left;
  }
  .loginmain {
    margin-top: 0;
	}

	.tc-home-header {
		gap: unset;
	}
	.tc-home-header .tc-logo-container img{
		width: 150px;
	}
	.tc-welcome h1{
		font-size: 1.2em;
	}
	.tc-punchbuttondiv {
		flex-direction: row;
		column-gap: 10px;
		width: auto;
	}
	.btnPunch{
		flex-direction: column;
		width: 150px;
	}
	body{
		font-size: 10px;
	}
}

@media (max-width: 600px) {
	
	.tc-punchbuttondiv {width: 100%;}
	.tc-movement-card {width: 100%;}
	.tc-div-punchbuttondiv {width: 100%;}
	.e-schedule .e-timeline-view .e-resource-text, .e-schedule .e-timeline-month-view .e-resource-text {
		text-wrap: unset;
	}
	select{
		max-width: 200px;
	}
	.tc-employee-info-section {
		min-width: initial;
		width: 100%;
	}

	.tc-employee-info-grid{
		flex-wrap: wrap;
		/*width: auto;*/
	}
	
	.tc-employee-subcard{
		width: 100%;
		min-width: 0;
	}
	.tc-ws-summary-table thead {
		display: none;
	}

	/* Chaque ligne devient un bloc */
	.tc-ws-summary-table tr {
		display: block;
	}

	/* Chaque cellule devient un bloc avec label de jour */
	.tc-ws-summary-table td {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 8px;
		border: none;
		border-bottom: 1px solid #eee;
		position: relative;
	}

	/* Avant chaque cellule, afficher le jour */
	.tc-ws-summary-table td::before {
		content: attr(data-day);
		font-weight: bold;
		color: #444;
		display: inline-block;
		width: 80px; /* largeur fixe */
		margin-right: 8px;
	}
	.tc-day {
		position: static;          /* supprime position absolue */
		display: block;            /* remet en flux normal */
		padding-top: 0;            /* supprime espace inutile */
		text-align: left;          /* aligne tout à gauche */
	}

	.tc-ws-type {
		position: static;          /* remet en flux normal */
		display: block;
		margin-bottom: 4px;        /* espace après le type */
		font-weight: bold;
		font-size: 1em;
		color: #333;
	}

	.tc-day-content {
		margin-top: 0;             /* enlève espace haut */
	}
	.tc-ws-edit-table {
		display: block;
		overflow-x: auto; /* autorise le scroll horizontal si nécessaire */
	}

	.tc-ws-edit-table tr {
		display: flex;
		flex-direction: column;
		border-bottom: 1px solid #ddd;
		padding: 8px 0;
	}

	.tc-ws-edit-table td {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		padding: 4px 0;
	}

	.tc-ws-edit-table input[type="time"],
	.tc-ws-edit-table input[type="number"],
	.tc-ws-edit-table select {
		width: 100%; /* occupe toute la ligne */
		margin: 4px 0;
		box-sizing: border-box;
		font-size: 1em;
	}
}