@import './variables.css';

/* fenêtres ____________________________________________________ */

.window {
    position: absolute;
    background: #fff;
    color: #000;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
    display: none;
    z-index: 10;
    display: none;
    flex-direction: column;
    max-width: 100vw;
    max-height: 80vh;
    will-change: transform;
}
/* header */
.window-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.3rem .8rem;
    background-color: #a7a7a7;
    color: white;
    font-size: 0.9em;
    border-radius: 8px 8px 0 0;
}

.window-header .close {
    background: none;
    border: none;
    color: white;
    font-size: 1em;
    cursor: pointer;
}
/* contenu */
.window-content{
	/* padding: 0.5rem 1rem; */
	flex-grow: 1;
	overflow: auto;
}
/* onglets */
.tabs {
    display: flex;
    border-bottom: 1px solid #ccc;
}

.tab-btn {
    flex: 1;
    text-align: left;
    padding: 0.5rem;
    cursor: pointer;
    background: #f3f3f3;
    border: none;
}

.tab-btn.active {
    background: #fff;
    border-bottom: 2px solid #ccc;
}

.tab-content {
    padding: 1rem;
    display: none; /* par défaut masqué */
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    overflow: auto;
}

.tab-content img, .tab-content video{
    width: auto;
    max-width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: top center;
}

.window:not(:has(.window-header)) {
    cursor: grab !important;
}

.window:active {
    cursor: grabbing !important;
}

/* ____________________________________________________ */
/* Map ____________________________________________________ */

.map-tooltip {
    background-color: rgba(0,0,0,0.7);
    color: white;
    padding: 3px 8px;
    border-radius: 4px;
    font-size: 0.85rem;
}

/* ____________________________________________________ */
/* Organigramme ____________________________________________________ */

/* conteneur global */
.organigram {
    display: flex;
    flex-direction: column; /* chaque niveau sous le précédent */
    gap: 20px; /* espace entre niveaux */
    padding: 20px;
    overflow: auto;
}

/* chaque niveau */
.organigram .level {
    display: flex;
    justify-content: center; /* centrer les cases horizontalement */
    gap: 20px; /* espace entre cases */
}

/* cases */
.organigram .slot {
    width: 150px;
    height: 70px;
    border: 2px dashed #ccc; /* style par défaut */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: .8em;
    text-align: center;
    line-height: 1.3em;
    padding: 0 0.2rem;
    transition: background-color 0.2s, border-color 0.2s;
}

/* case remplie */
.organigram .slot.filled {
    border: 2px solid var(--equans-blue);
    background-color: var(--equans-blue-20);
}

/* case vide */
.organigram .slot.empty {
    background-color: #f9f9f9;
}

.organigram .slot.correct {
    background-color: var(--equans-dark-green-20);
    border-color: var(--equans-dark-green);
    transition: background-color 0.3s, border-color 0.3s;
}

/* éléments draggables */
.draggables .person {
    width: 150px;
    height: 70px;
    background-color: var(--equans-light-green-20);
    border: 2px solid var(--equans-light-green);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: grab;
    user-select: none;
    font-weight: 700;
    font-size: .8em;
    text-align: center;
    position: relative;
}

.organigram .slot p, .draggables .person p{
    margin-top: .5rem;
    font-weight: 400;
}

/* effet lors du drag */
.draggables .person:active {
    cursor: grabbing;
    opacity: 0.8;
}

/* ____________________________________________________ */
/* Post it ____________________________________________________ */
.post-it {
    max-width: 16rem;
    max-height: 15rem;
    width: 15vw;
    height: 16vw;
    min-width: 10rem;
    min-height: 11rem;
    background: #ffa;
    overflow: hidden;
    padding: 20px;
    border-radius: 0 0 0 30px/45px;
    box-shadow: inset 0 -40px 40px rgba(0, 0, 0, 0.2),
        inset 0 25px 10px rgba(0, 0, 0, 0.2), 0 5px 6px 5px rgba(0, 0, 0, 0.2);
    font-family: "Permanent Marker", cursive;
    line-height: 1.7em;
    font-size: 19px;
    color: #130d6b;
}

.post-it li {
    cursor: pointer;
}

.post-it::before {
    content: "";
    display: block;
    position: absolute;
    width: 20px;
    height: 25px;
    background: #ffa;
    box-shadow: 3px -2px 10px rgba(0, 0, 0, 0.2),
        inset 15px -15px 15px rgba(0, 0, 0, 0.3);
    left: 0;
    bottom: 0;
    z-index: 2;
    transform: skewX(25deg);
}

.done {
    text-decoration: line-through;
}

.post-it-blue{
    background: rgb(170, 232, 255);
}

.post-it-blue::before{
    background: rgb(170, 232, 255);
}

/* ____________________________________________________ */
/* Side Menu ____________________________________________________ */

.layout-sidebar {
    display: flex;
    height: 100%;
}

.layout-sidebar .view h2{
	font-size: 1.3em;
}

/* Sidebar */
.side-menu {
    width: 25%;
    background: var(--dark-grey);
    display: flex;
    flex-direction: column;
    padding: .5rem;
    gap: .5rem;
}

.menu-item {
    background: transparent;
    color: var(--dark-grey-text);
    border: none;
    padding: .7rem;
    text-align: left;
    cursor: pointer;
    border-radius: .3rem;
    display: flex;
    gap: .5rem;
    align-items: center;
}

.menu-item.active-menu {
    background: var(--dark-grey-active);
    color: var(--white);
}

/* Contenu */
.content-area {
    flex: 1;
    padding: 1.2rem;
    overflow: auto;
    background-color: var(--dark-grey-active);
    color: var(--white);
}

.view {
    display: none;
    opacity: 0;
    transform: translateX(10px);
    transition: 0.25s ease;
}

.view.active-view {
    display: block;
    opacity: 1;
    transform: translateX(0);
}

.window[data-app="settings"]{
    container-type: inline-size;
}

/* responsive */
@container (width < 640px) {
    .side-menu{
        width: fit-content;
    }
    .menu-label{
        display: none;
    }

    .accordion-header span{
        white-space: nowrap;
    }

    .content-area{
        min-width: 200px;
        overflow-x: scroll;
    }
}

/* ____________________________________________________ */
/* Accordion ____________________________________________________ */
.accordion {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 2rem;
}

.accordion-header {
    width: 100%;
    padding: 1rem 1.2rem;
    background: var(--dark-grey);
    border: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    font-weight: 500;
    border-radius: .3rem;
    font-size: 1em;
    color: var(--white);
}

.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
    padding: 0 1.2rem;
}

.accordion-item.open-accordion .accordion-content {
    max-height: 500px; /* suffisamment grand */
    padding: 1rem 1.2rem;
}

.accordion-header .material-symbols-outlined {
    transition: transform 0.3s ease;
}

.accordion-item.accordion-item.open-accordion .accordion-header .material-symbols-outlined{
    transform: rotate(180deg);
}

.accordion-content ul li{
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	margin-bottom: 1.3rem;
}

.accordion-content ul li::before{
	font-family: 'Material Symbols Outlined';
	vertical-align: middle;
	font-size: 1.3em;
}

.layout-sidebar .view[data-view="objectives"] .accordion-content ul li::before{
    content: '\ef4a';
}

.layout-sidebar .view[data-view="maj"] .accordion-content ul li::before{
    content: '\e923';
}

.layout-sidebar .view[data-view="save"] .accordion-content ul li::before{
    content: '\e149';
}

.setting-hidden{
    display: none;
}

.settings-action{
    margin: 2rem 0;
}

.settings-action h3{
    display: flex;
    gap: .5rem;
    align-items: center;
    margin-bottom: 1rem;
}

.settings-action button{
    padding: 1rem;
    border-radius: .5rem;
    outline: none;
    border: 1px solid var(--white);
    background-color: transparent;
    color: var(--white);
    font-size: .9em;
}

.settings-action button:hover{
    background-color: var(--white);
    color: var(--dark-grey);
}

.settings-update-overlay {
    position: absolute;
    inset: 0;
    background: #353535;
    display: grid;
    place-items: center;
    z-index: 9999;
    width: 100%;
    height: 100%;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
}

.settings-update-overlay.active {
    opacity: 1;
    pointer-events: all;
}
.update-loader {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    color: white;
}

.update-loader span {
    font-size: 3rem;
    animation: spin 1.2s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}


/* ____________________________________________________ */
/* Conversation teams ____________________________________________________ */
.conv-teams {
    display: grid;
    gap: 1rem;
    padding: 2rem .6rem;
    grid-auto-rows: min-content;
    overflow-y: auto;
    background-color: var(--light-grey);
}

.bubble {
    padding: .6rem 1rem;
    border-radius: .4rem;
    cursor: pointer;
    transition: transform 0.3s ease, background 0.3s ease;
    width: fit-content;
    max-width: 50%;
    white-space: pre-wrap;
    word-wrap: break-word;
    position: relative;
    font-size: .9em;
    line-height: 1.2em;
}

/* Bulle de gauche */
.bubble-left{
	background-color: var(--white);
	margin-left: 44px; /* espace pour l’avatar */
}

.bubble-left::after {
    content: "";
	position: absolute;
	left: -6px;
	top: .75rem;
	width: 12px;
	height: 12px;
	background: var(--white);
	transform: rotate(45deg);
	border-bottom-left-radius: 3px;
}

/* Avatar */
.bubble-left::before {
    content: attr(data-user); /* initiales */
    position: absolute;
    left: -44px;
    top: 25%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .9em;
    font-weight: 500;
    letter-spacing: .1em;
}

.bubble-left[data-user="PN"]::before {
    background-color: var(--bg-user-1);
    color: var(--bg-dark-user-1);
}

.bubble-left[data-user="DB"]::before {
    background-color: var(--bg-user-2);
    color: var(--bg-dark-user-2);
}

.bubble-left[data-user="DA"]::before {
    background-color: var(--bg-user-3);
    color: var(--bg-dark-user-3);
}

/* Bulle de droite */
.bubble-right{
	justify-self: right;
	background-color: var(--light-purple);
}

.bubble-right::after {
    content: "";
    position: absolute;
    right: -6px;
    top: .75rem;

    width: 12px;
    height: 12px;
    background: var(--light-purple);
    transform: rotate(45deg);
    border-bottom-left-radius: 3px;
}

/* canvas */

canvas {
    cursor: crosshair;
}
