@font-face {
    font-family: 'Larken';
    font-style: normal;
    font-weight: normal;
    font-display: auto;
    src: url('Larken.otf') format('opentype');
}

@font-face {
    font-family: 'Larken-medium';
    font-style: normal;
    font-weight: light;
    font-display: auto;
	src: url('Larken.otf') format('opentype');
}
@font-face {
    font-family: 'TT Hoves Pro';
    font-style: normal;
    font-weight: light;
    font-display: auto;
    src: url('TT Hoves Pro Regular.otf') format('opentype');
}

@font-face {
    font-family: 'TT Hoves Pro bold';
    font-style: normal;
    font-weight: bold;
    font-display: auto;
    src: url('TT Hoves Pro Regular.otf') format('opentype');
}

@font-face {
    font-family: 'TT Hoves Pro Italic';
    font-style: italic;
    font-weight: light;
    font-display: auto;
    src: url('TT Hoves Pro Italic.otf') format('opentype');
}

/* Kleine styling voor call overlay */
        #callOverlay {
            position: fixed;
            top: 10%;
            right: 10%;
            background: white;
            border: 1px solid #ccc;
            padding: 10px;
            z-index: 9999;
            box-shadow: 0 2px 10px rgba(0,0,0,0.2);
        }
        #callOverlay button {
            margin: 0 5px;
        }


*{
	font-family: 'TT Hoves Pro';
font-style: normal;
font-weight: 500;
font-size: 16px;
line-height: 22px;
/* or 138% */

color: #333333;
}

body{
 background-color:white;	
}

form{
	font-size: 16px;
}
					
input[type=submit]{
	-webkit-border-radius: 5;
	 -moz-border-radius: 5;
	 border-radius: 5px;
	text-decoration: none;
	cursor:pointer;
	//font-weight:bold;			  
}

input{
	border: 1px solid #9B9B9B;
    border-radius: 5px;
	padding-left:5px;
	font-size:16px;
	color:  #4A4A4A;
	
}

h1,h2,h3{
	font-family:TT Hoves Pro bold;
	font-weight:bold;
	line-height:1em;
}

p{
	padding-top:5px;
	padding-bottom: 5px;
	font-size: 21px;
}
			
h1{
	font-size:42px;
	color: black;
}

h2{
	font-size:32px;
	color: black;
}

h3{
	font-size:28px;
		color: black;
}

input[type=text], input[type=email],textarea,select {
  width: 100%;
  padding: 16px 24px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 7px;
  box-sizing: border-box;
}

input[type=number]  {
  width: 100%;
  padding: 16px 24px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 7px;
  box-sizing: border-box;
}

textarea{
	width:100%;
	 border-radius: 5px;
	padding:5px;
	color:  #4A4A4A;
}


#calendarTable{width:100%;}
#calendarTable table { border-collapse: collapse; width: 100%; }
#calendarTable   th, #calendarTable td { border: 12px solid #f5f5f559; ;border-radius:7px; padding: 8px; margin:3px; text-align: center; }
#calendarTable	th{
	background:white;
}

#home_box{
	margin:0px auto;
	max-width: 1396px;
	padding:80px;
	background: #f9f9ef;
	border-radius: 14px;
}
#success_box{
	margin:0px auto;
	max-width: 1396px;
	padding:80px;
	background: #EBFAD9;
	border-radius: 14px;
}

#signup_box{
	margin:0px auto;
	max-width: 1396px;
	padding:80px;
	background:#f9f9ef;
	border-radius: 14px;
}

#header{
	padding:25px;
	text-align:center;
}

#monthTitle{
	font-weight:bold;
}

#prev, #next{
	background-color:#f5f5f559;
	border:none;
	font-weight:bold;
}

/* Input area */
#chatInput {
    display: flex;
    padding: 10px;
    background-color: #F8F8F8;
    gap: 5px;
}

#messageInput {
    flex: 1;
    padding: 12px 16px;
    border: 1px solid #ccc;
    border-radius: 7px;
    outline: none;
}



#sendBtn {
    padding: 4px 12px;
    border: none;
    border-radius: 7px;
    cursor: pointer;
    background-color: #0bb765;
    color: #fff;
    transition: background-color 0.2s;
}
 #sendFileBtn {
    padding: 8px 12px;
    border: none;
    border-radius: 7px;
	height:30px;
    cursor: pointer;
    background-color: white;
    color: black;
    transition: background-color 0.2s;
	    height: 44px;
    margin-top: 7px;
}

#sendBtn:hover, #sendFileBtn:hover {
   background-color:#7ca0fc;
}

::file-selector-button {
  border: 1px solid #e1e8e8;
  padding: 5px 10px;
  border-radius: 5px;
  background-color: #fbfcfc;
}

#fileInput {
   display: flex;
}

#closedChats .ticketItem {
    
    background-color: #ebeee8;
}


/* Main chat */
#chatMain {
    flex: 1;
    display: flex;
    flex-direction: column;
    border-radius: 8px;
    background-color: #F8F8F8;;
} 

/* Chat box */
#chatBox {
    flex: 1;
    padding: 10px;
    overflow-y: auto;
    background-color: #F8F8F8;
	border-radius:7px;
    display: flex;
    flex-direction: column; /* voor chatballonnen in volgorde */
}

/* Open / gesloten ticket kleur */
#openChats .ticketItem {
    background-image: url("./img/green_dot.png");
	background-size: 12px auto;
    background-repeat: no-repeat;
    background-position: 10px center;
    padding-left: 28px; /* ruimte voor het icoon */
	background-color: #EBFAD9;
}

#chatSidebar h3 {
    margin-top: 0;
    font-size: 16px;
    color: #333;
}

#chatLayout {
    display: flex;
    gap: 10px;
    font-family: Arial, sans-serif;
     height: calc(100vh - 400px);
}


#sidebarToggle{
	display:none;
}
#chatSidebar {
    width: 250px;
    border-radius:7px;
    padding: 32px;
    background-color: white;
    overflow-y: auto;
    transition: transform 0.3s ease, width 0.3s ease;
}
#chatSidebar {
    position: relative;
}

/* Ticket items */
.ticketItem {
   padding: 8px;
   margin-bottom: 24px;
   border-radius: 10px;
   cursor: pointer;
   transition: background-color 0.2s;
}

.ticketItem:hover {
    background-color: #e0f0ff;
	background-color: #EBFAD9;
}

.none_to_show{
	padding: 8px;
    margin-bottom: 24px;
    background-color: #f6f6f6;
    border-radius: 10px;
    transition: background-color 0.2s;
}

/* Chat messages */
.chatMessage {
    margin-bottom: 8px;
    max-width: 70%;
    word-wrap: break-word;
    padding: 8px 12px;
    border-radius: 7px;
    display: inline-block;
    line-height: 1.4;
}

/* Eigen berichten rechts */
.myMessage {
    background-color: #EBFAD9; /* lichtgroen zoals WhatsApp */
    align-self: flex-end;
    text-align: right;
}

/* Andere berichten links */
.otherMessage {
    background-color: #fff;
    border: 1px solid #ddd;
    align-self: flex-start;
    text-align: left;
}

.back{
	background-color:#e9e9e9;
	color:black;
	
	padding:8px 12px;
	font-size:14px;
	text-align:center;
	//width:100%;
	border:none;
	border-radius:7px;
	text-decoration:none;
	margin-bottom:10px;
	font-weight:bold;
}

.back:hover{
	background-color:#f2eeee;
}

.next{
	background-color:#4E80FF;
	color:white;
	
	padding:12px 16px;
	font-size:18px;
	text-align:center;
	//width:100%;
	border:none;
	border-radius:7px;
	text-decoration:none;
	margin-bottom:10px;
	font-weight:bold;
}
.next:hover{
	background-color:#7ca0fc;
}
 .calendar { width: 100%; margin: auto; }
   
 .highlight {
    background-color: #EBFAD9;
    cursor: pointer;
    font-weight: bold;
}

.inactive {
    background-color: #f8f8f8;
    background-color: #F1F1F1;
    color: #bbb;
}
    .nav { display: flex; justify-content: space-between; margin-bottom: 10px; }
    button { padding: 5px 10px; cursor: pointer; }
    @media (max-width: 500px) {
        th, td { padding: 6px; font-size: 0.9em; }
    }
	
/* Kalender slotknoppen */
.slot-button {
    display: inline-block;
    margin: 6px 4px;
    padding: 12px 16px;
	font-size:18px;
    background-color: #007bff;
    color: white;
    border: none;
	width:400px;
    border-radius: 6px;
	text-align:center;
    cursor: pointer;
    font-weight: bold;
    transition: background-color 0.2s;
}
.slot-button:hover {
    background-color: #0056b3;
}

/* Inline bevestigingsbox */
.booking-confirmation-box {
    max-width: 400px;
    margin: 20px auto 30px;
    padding: 15px;
    border-radius: 10px;
    background-color: #EBFAD9;
    color: #856404;
    font-weight: bold;
    text-align: center;
    font-size: 1em;
    border: 1px solid #ffeeba;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.booking-confirmation-box button {
    padding: 6px 12px;
    border-radius: 6px;
    font-weight: bold;
    cursor: pointer;
    border: none;
}
.booking-confirmation-box .confirm-booking {
    background-color: #28a745;
    color: white;
}
.booking-confirmation-box .confirm-booking:hover {
    background-color: #218838;
}
.booking-confirmation-box .cancel-booking {
    background-color: #dc3545;
    color: white;
}
.booking-confirmation-box .cancel-booking:hover {
    background-color: #c82333;
}

/* Succesmelding */
.booking-success {
    max-width: 90%;
  
    padding-left: 40px;
    padding-right: 40px;
    padding-top: 20px;
    padding-bottom: 20px;
    border-radius: 10px;
    background-color:white;
    color: #155724;
    font-weight: bold;
    text-align: left;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* Foutmelding */
.booking-error {
    max-width: 400px;
    margin: 40px auto;
    padding: 20px;
    border-radius: 10px;
    background-color: #f8d7da;
    color: #721c24;
    font-weight: bold;
    text-align: center;
    font-size: 1.2em;
    border: 1px solid #f5c6cb;
}

/* Loader styling */
.loading-spinner {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin: 20px auto;
    font-weight: bold;
    color: #007bff;
    font-size: 1.1em;
}

.loading-spinner::before {
    content: "";
    width: 20px;
    height: 20px;
    border: 3px solid #007bff;
    border-top: 3px solid transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}


.confirm-booking {
    max-width: 400px;
    margin: 10px auto;
    padding: 15px;
    border-radius: 8px;
    background-color: #fff3cd;
    color: #856404;
    border: 1px solid #ffeeba;
    text-align: center;
    font-weight: bold;
}

.confirm-booking .confirm-buttons {
    margin-top: 10px;
    display: flex;
    justify-content: center;
    gap: 10px;
}

.confirm-booking .btn-confirm {
    background-color:#007bff;
    color: white;
    padding: 6px 12px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.confirm-booking .btn-cancel {
    background-color: #ECEAE1;;
    color: black;
    padding: 6px 12px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}


.italic{
	font-family: 'TT Hoves Pro Italic';
}

.container{
	
    display: flex;
    gap: 20px; /* optioneel */
}

.col{
    flex: 1; /* beide kolommen even breed */
}

@media (max-width: 768px){
    .container{
        flex-direction: column;
    }
}

.blue_box{
	background: #b0ceff;
	border-radius: 12px;
	padding:36px;
	color:white;
	position:relative;
}

.blue_box:after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 28px;
	width: 0;
	height: 0;
	border: 20px solid transparent;
	border-top-color: #b0ceff;
	border-bottom: 0;
	border-left: 0;
	margin-left: -10px;
	margin-bottom: -20px;
}

.orange_button{
	/* Frame 7674 */
	box-sizing: border-box;
	font-size:18px;
	/* Auto layout */
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	padding: 24px 24px;
	gap: 10px;
	margin-bottom: 16px;
	width: 100%;
	color: white;
	height: 52px;

	border: 1.25px solid #FFFFFF;
	border-radius: 10px;
}

.orange_box h2, .success_box h2{
	font-size:48px;
}

.orange_box h2{
	color:white;
}

.white_button{
	/* Frame 7674 */
	box-sizing: border-box;
	font-size:18px;
	/* Auto layout */
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	padding: 24px 24px;
	gap: 10px;

	width: 100%;
	color: white;
	height: 52px;
	background-color:  #E1700D; 
	border: 1.25px solid  #E1700D;
	border-radius: 10px;
}


.clear{
	text-decoration:none;
	color:black;
}
.yellow_button, .yellow_button a:link, .yellow_button a:visited{
	background-color:#b0ceff;
	color:black;
	padding:24px;
	font-size:28px;
	text-align:center;
	//width:100%;
	text-decoration:none;
	margin-bottom:10px;
	font-weight:bold;
}

.yellow_button:hover{
	background-color:#f2bf30;
}

.blue_button, .blue_button a:link, .blue_button a:visited{
	background-color:#b0ceff;
	color:black;
	padding:12px 16px;
	border: 1px solid #b0ceff;;
	font-size:18px;
	text-align:center;
	width:100%;
	text-decoration:none;
	margin-bottom:10px;
	border-radius:18px;
}


.blue_button:hover{
	background-color:#b0ceffcf;
}

.grey_button, .grey_button a:link, .grey_button a:visited{
	background-color:#ECEAE1;
	color:#333333;
	padding:16px;
	font-size:16px;
	text-align:center;
	//width:100%;
	text-decoration:none;
	margin-bottom:10px;
	font-weight:bold;
}

.grey_button:hover{
	background-color:#7ca0fc;
}

.inner{
	max-width: 1396px;
	margin:0px auto;
}

.check_box_container {
  display: block;
  position: relative;
  margin-bottom: 12px;
  cursor: pointer;
  font-size: 16px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  background-color:white;
  padding:12px;
  padding-left: 45px;
  border-radius:7px;
}

/* Hide the browser's default checkbox */
.check_box_container input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

/* Create a custom checkbox */
.checkmark {
  position: absolute;
  top: 10px;
  left: 16px;
  height: 20px;
  width: 20px;
  background-color: #eee;
}

/* On mouse-over, add a grey background color */
.check_box_container:hover input ~ .checkmark {
  background-color: #ccc;
}

/* When the checkbox is checked, add a blue background */
.check_box_container input:checked ~ .checkmark {
  background-color: #2196F3;
}

/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the checkmark when checked */
.check_box_container input:checked ~ .checkmark:after {
  display: block;
}

/* Style the checkmark/indicator */
.check_box_container .checkmark:after {
  left: 7px;
  top: 2px;
  width: 4px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}


@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}	


@media (max-width: 768px) {

    #chatLayout {
        flex-direction: column;
        height: auto;
    }
	#home_box{
		padding:20px;
	}

    #sidebarToggle {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        margin-bottom: 8px;

        padding: 6px 10px;
        background: #EBFAD9;
        border-radius: 6px;
        cursor: pointer;
        font-size: 14px;
    }


    #chatSidebar {
        width: 100%;
        display:none;
        overflow: none;
        padding: 0;

    }

    #chatSidebar.active {
		position:fixed;
		top:300px;
        display:block;
       height: 60vh;  
        padding: 16px;
        overflow-y: auto;
    }

    #chatMain {
        flex: 1;
        min-height: 300px;
    }

    #overlay {
        display: none; 
    }
}	