/*
3 Schriftgrößen, 3 Auflösungen
*/

/* min 1024px breite */

:root {
    --milieu-grid-columns: 24;
    --milieu-grid-rows: 16;

    --milieu-axis-size: 2.5em; /* because we want it to also scale responsively */
    --milieu-axis-line-color: #F2F2F2;
    --milieu-axis-padding-ends: 10px;
    --milieu-axis-padding-sides: 6px;

    --milieu-axis-label-color: #7C7C7C;
    --milieu-axis-label-font-size: 9px;
    --milieu-axis-label-gap: 32px;

    --milieu-single-background-color: #F2F2F2;
}

.milieu-layer-1 {
    --milieu-color: #5316A8;
}

.milieu-layer-2 {
    --milieu-color: #A876ED;
}

.milieu-layer-3 {
    --milieu-color: #6E1DE0;
}

.milieu-layer-4 {
    --milieu-color: #C5A4F3;
}


#milieu-container {
    display: grid;
    /* We can use 'min-content' here because our axes have a fixed width / height */
    grid-template-columns: min-content auto;
    grid-template-rows: auto min-content;

    gap: var(--milieu-grid-padding);

    /* Fallback value, defined up here, so that it gains less importance than the values inserted */
    --milieu-color: #0e0e0e;
}

#milieu-container .axis {
    display: flex;
    justify-content: space-between;
    background-color: #F2F2F2;
    padding: 10px 6px;
    border-radius: 6px;
    align-items: center;


    color: var(--milieu-axis-label-color);
    font-size: var(--font-size-default);
}

#milieu-container .y-axis {
    flex-direction: column;
    width: var(--milieu-axis-size);
    padding: var(--milieu-axis-padding-ends) var(--milieu-axis-padding-sides);
}

#milieu-container .y-axis div.label {
    /* This maintains the width of of the element */
    writing-mode: vertical-lr;
    transform: rotate(180deg);

    transform-origin: center;
}

#milieu-container .y-axis div.line {
    margin-top: auto;
    margin-bottom: auto;
    background-color: var(--milieu-axis-line-color) ;
    width: 2px;
    height: 100%;
    box-sizing: border-box;
}

#milieu-container .axis-labels-wrapper {
    grid-column: 1;
    grid-row: var(--milieu-grid-rows);
    position: relative;
}

#milieu-container .axis-labels {
    position: absolute;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: min-content auto;
    grid-template-rows: auto min-content;

    font-size: var(--font-size-default);

    width: max-content;
    color: var(--milieu-axis-label-color);
}

#milieu-container .for-y {
    /* This maintains the width of of the element */
    writing-mode: vertical-lr;
    transform: rotate(180deg);

    transform-origin: center;
}

#milieu-container .for-x {
    grid-column-start: 2;
    grid-row-start: 2;
}

/* #milieu-container .milieu-y-axis div.line:last-of-type {
    margin-bottom: -9px;
    height: calc(100% + 9px);
}

#milieu-container .milieu-x-axis div.line:first-of-type {
    margin-left: 8px;
} */

#milieu-container .x-axis {
    flex-direction: row;
    padding: var(--milieu-axis-padding-sides) var(--milieu-axis-padding-ends);
    height: var(--milieu-axis-size);
    grid-column-start: 2;
}


#milieu-container .x-axis div.line {
    margin-left: auto;
    margin-right: auto;
    background-color: var(--milieu-axis-line-color) ;
    height: 2px;
    width: 100%;
    box-sizing: border-box;
}

#milieu-container .info-button {
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    color: white;
    font-weight: bold;
    font-size: var(--font-size-default);
    background-color: #7F7F7F;
    border-radius: 6px;
}



#milieu-grid {
    display: grid;
    font-size: 16px;

    /* STAR OF THE SHOW */
    grid-template-columns: repeat(var(--milieu-grid-columns), 1fr);
    grid-template-rows: repeat(var(--milieu-grid-rows), 1fr);
    aspect-ratio: var(--milieu-grid-columns) / var(--milieu-grid-rows);
    /* STAR OF THE SHOW */

    gap: var(--milieu-grid-padding);
    width: 100%;
}

.milieu-base {
    color: #7F7F7F;
    background-color: var(--milieu-single-background-color);

    padding: var(--milieu-grid-padding);
    display: flex;
    flex-direction: column;
    font-size: var(--font-size-default);

    /* transition: color 200ms ease, background-color 200ms ease; */
    cursor: pointer;

    border-radius: 6px;
}

.milieu-base-selected {
    background-color: var(--milieu-color);
    color: #fff;
}

.milieu-base .name {
    line-height: 1em;
    user-select: none;
}

.milieu-base .size {
    margin-top: auto;
    user-select: none;
}

.milieu-base-selected .size {
    color: rgba(255, 255, 255, 0.7);
}

/* Mini-Grid in Detailansicht */
#milieu-grid.milieu-grid--mini .milieu-base-mini {
    background-color: #E0E0E0; /* Alle Milieus erstmal grau */
    opacity: 0.6;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s ease, opacity 0.3s ease, box-shadow 0.3s ease;
}

/* Highlight für aktives Milieu – mit eigener Layerfarbe */
#milieu-grid.milieu-grid--mini .milieu-base-mini.milieu-highlighted {
    background-color: var(--milieu-color); /* Layerfarbe */
    opacity: 1;
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.15);
    color: #fff;
}


.milieu-grid-chatbox {
    display: grid;
    /* We can use 'min-content' here because our axes have a fixed width / height */
    grid-template-columns: min-content auto;
    grid-template-rows: auto min-content;

    gap: var(--milieu-grid-padding);

    /* Fallback value, defined up here, so that it gains less importance than the values inserted */
    --milieu-color: #0e0e0e;
}

.milieu-grid-chatbox .axis {
    display: flex;
    justify-content: space-between;
    background-color: #F2F2F2;
    padding: 10px 6px;
    border-radius: 6px;
    align-items: center;


    color: var(--milieu-axis-label-color);
    font-size: var(--font-size-default);
}

.milieu-grid-chatbox .y-axis {
    flex-direction: column;
    width: var(--milieu-axis-size);
    padding: var(--milieu-axis-padding-ends) var(--milieu-axis-padding-sides);
}

.milieu-grid-chatbox .y-axis div.label {
    /* This maintains the width of of the element */
    writing-mode: vertical-lr;
    transform: rotate(180deg);

    transform-origin: center;
}

.milieu-grid-chatbox .y-axis div.line {
    margin-top: auto;
    margin-bottom: auto;
    background-color: var(--milieu-axis-line-color) ;
    width: 2px;
    height: 100%;
    box-sizing: border-box;
}

.milieu-grid-chatbox .axis-labels-wrapper {
    grid-column: 1;
    grid-row: var(--milieu-grid-rows);
    position: relative;
}

.milieu-grid-chatbox .axis-labels {
    position: absolute;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: min-content auto;
    grid-template-rows: auto min-content;

    font-size: var(--font-size-default);

    width: max-content;
    color: var(--milieu-axis-label-color);
}

.milieu-grid-chatbox .for-y {
    /* This maintains the width of of the element */
    writing-mode: vertical-lr;
    transform: rotate(180deg);

    transform-origin: center;
}

.milieu-grid-chatbox .for-x {
    grid-column-start: 2;
    grid-row-start: 2;
}

/* .milieu-grid-chatbox .milieu-y-axis div.line:last-of-type {
    margin-bottom: -9px;
    height: calc(100% + 9px);
}

.milieu-grid-chatbox .milieu-x-axis div.line:first-of-type {
    margin-left: 8px;
} */

.milieu-grid-chatbox .x-axis {
    flex-direction: row;
    padding: var(--milieu-axis-padding-sides) var(--milieu-axis-padding-ends);
    height: var(--milieu-axis-size);
    grid-column-start: 2;
}


.milieu-grid-chatbox .x-axis div.line {
    margin-left: auto;
    margin-right: auto;
    background-color: var(--milieu-axis-line-color) ;
    height: 2px;
    width: 100%;
    box-sizing: border-box;
}

.milieu-grid-chatbox .info-button {
    display: flex;
    position: relative;
    justify-content: center;
    align-items: center;
    color: white;
    font-weight: bold;
    font-size: var(--font-size-default);
    background-color: #7F7F7F;
    border-radius: 6px;
}