:root {
    --standard_fx_fast: 0.15s cubic-bezier(0.31, 0.94, 0.34, 1.00);
    --standard_fx_default: 0.2s cubic-bezier(0.31, 0.94, 0.34, 1.00);
    --standard_fx_slow: 0.3s cubic-bezier(0.31, 0.94, 0.34, 1.00);
    --standard_fx_slower: 0.5s cubic-bezier(0.31, 0.94, 0.34, 1.00);
}

body {
    background-color: var(--surface);
    color: var(--on-surface);
}

body.noScroll {
    overflow: hidden;
}




/* PAGEFRAME FÜR VB SEITEN */
.pageFrame {
    position: absolute;
    top: 0px;
    left: 0px;

    width: 100%;
    min-height: 100%;
    height: auto;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: start;
}

.pageFrame.center {
    align-items: center;
    justify-content: center;
}




/* TEXTINPUTS */
.inputBox {
    position: relative;
    width: 250px;
    height: auto;

    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: start;
}

.textInput {
    position: relative;

    width: 100%;
    height: auto;

    padding: 25px 20px 15px 20px;
    box-sizing: border-box;

    background-color: var(--container-lowest);
    border-radius: 10px;

    border: none;
    outline: none;

    font-family: "Inter";
    font-weight: 400;
    font-size: 14px;
    color: var(--on-surface);
}

.textInput.disabled {
    pointer-events: none;
}

.inputLabel {
    position: absolute;
    top: 20px;
    left: 20px;

    font-family: "Inter";
    font-weight: 400;
    font-size: 14px;
    color: var(--on-surface);

    pointer-events: none;

    transition: all var(--standard_fx_fast);
}

.inputLabel.filled {
    top: 7px;
    left: 20px;
    font-size: 10px;
}

.inputLabel.active {
    color: var(--primary);
}

.inputIcon {
    position: absolute;

    top: 20px;
    right: 15px;

    width: 18px;
    height: 18px;

    fill: var(--on-surface);

    pointer-events: none;
    opacity: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    transition: all var(--standard_fx_fast);
}

.inputIcon.visible {
    pointer-events: all;
    opacity: 1;
}

.inputIcon.active {
    fill: var(--primary);
}





/* SELECTBOX */
.selectBox {
    position: absolute;

    top: 64px;
    left: 0px;

    width: 100%;
    height: auto;

    background-color: var(--container-highest);
    border-radius: 10px;

    display: none;
    flex-direction: column;
    align-items: start;
    justify-content: start;

    overflow: hidden;

    z-index: 100;
}

.selectOption {
    position: relative;

    width: 100%;
    height: 30px;

    font-family: "Inter";
    font-weight: 400;
    font-size: 15px;
    color: var(--on-surface);

    padding: 20px;
    box-sizing: border-box;

    display: flex;
    align-items: center;
    justify-content: start;
}

.selectOption.hidden {
    display:none;
}

.selectOption:hover {
    cursor: pointer;

    background-color: var(--primary-container);
    color: var(--on-primary-container);
}

.dateBox {
    position: absolute;

    top: 64px;
    left: 0px;

    width: 100%;
    height: auto;

    padding: 10px 20px 20px 20px;
    box-sizing: border-box;

    background-color: var(--container-highest);
    border-radius: 10px;

    display: none;
    flex-direction: column;
    align-items: start;
    justify-content: start;
}

.dB_monthTitle {
    position: relative;

    width: 100%;

    margin-bottom: 10px;

    display: flex;
    align-items: center;
    justify-content: center;
}

.dB_monthText {
    position: relative;

    width: 75%;

    font-family: "Inter";
    font-weight: 600;
    font-size: 14px;
    color: var(--on-surface);

    display: flex;
    align-items: center;
    justify-content: center;
}

.dB_button {
    position: relative;

    width: 30px;
    height: 30px;

    background-color: transparent;
    border-radius: 50%;

    outline: none;
    border: none;

    cursor: pointer;

    fill: var(--on-surface);

    display: flex;
    align-items: center;
    justify-content: start;
}

.dB_button:hover {
    background-color: var(--container);
}

.dB_area {
    position: relative;

    width: 100%;
    height: auto;

    display: flex;
    align-items: center;
    justify-content: start;
}

.dB_header {
    position: relative;

    width: 100%;

    display: flex;
    align-items: center;
    justify-content: start;
}

.dB_headElement {
    position: relative;

    width: 12%;

    font-family: "Inter";
    font-weight: 400;
    font-size: 12px;
    color: var(--on-surface);

    display: flex;
    align-items: center;
    justify-content: center;
}

.dB_headElement.kw {
    width: 16%;
    color: var(--on-surface-variant);
    justify-content: start;
}

.dB_content {
    position: relative;

    width: 100%;

    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: start;
}

.dB_weekRow {
    position: relative;

    width: 100%;
    height: 30px;

    display: flex;
    align-items: center;
    justify-content: start;
}

.dB_kwLabel {
    position: relative;

    width: 16%;

    font-family: "Inter";
    font-weight: 400;
    font-size: 12px;
    color: var(--on-surface-variant);

    display: flex;
    align-items: center;
    justify-content: start;
}

.dB_day {
    position: relative;

    width: 12%;
    aspect-ratio: 1/1;

    background-color: transparent;
    border-radius: 50%;

    font-family: "Inter";
    font-weight: 400;
    font-size: 12px;
    color: var(--on-surface);

    display: flex;
    align-items: center;
    justify-content: center;
}

.dB_day.today {
    color: var(--primary-container);
}

.dB_day.empty {
    pointer-events: none;
}

.dB_day:hover {
    background-color: var(--primary-container);
    color: var(--on-primary-container);
    cursor: pointer;
}



/* BUTTONS */
.button {
    position: relative;

    padding: 10px 40px 10px 10px;
    box-sizing: border-box;

    background-color: var(--primary-container);
    border-radius: 10px;

    border: none;
    outline: none;

    font-family: "Inter";
    font-weight: 500;
    font-size: 16px;
    color: var(--on-primary-container);

    display: flex;
    flex-direction: row;
    gap: 5px;
    align-items: center;
    justify-content: start;

    transition: all var(--standard_fx_fast);    
}

.button:hover {
    background-color: var(--on-primary-container);
    color: var(--primary-container);
    cursor: pointer;
}

.button.secondary {
    background-color: var(--secondary-container);
    color: var(--on-secondary-container);
}

.button.secondary:hover {
    background-color: var(--on-secondary-container);
    color: var(--secondary-container);
}

.buttonIcon {
    position: relative;

    width: 20px;
    height: 20px;

    fill: var(--on-primary-container);

    display: flex;
    align-items: center;
    justify-content: center;

    transition: all var(--standard_fx_fast);
}

.button:hover .buttonIcon {
    fill: var(--primary-container);
}

.button.icon {
    width: 40px;
    height: 40px;

    padding: 8px;
    box-sizing: border-box;

    fill: var(--on-primary-container);
}

.button.icon:hover {
    fill: var(--primary-container);
}

.button.disabled {
    pointer-events: none;

    background-color: var(--surface-dim);
    color: var(--outline);
    fill: var(--outline);
}






/* POPUP */
.popupFrame {
    position: fixed;
    top: 0px;
    left: 0px;

    width: 100%;
    height: 100%;

    backdrop-filter: blur(5px);

    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    z-index: 200;

    transition: all var(--standard_fx_slow);
}

.popupFrame.visible {
    display: flex;
}

.popupBubble {
    position: relative;

    margin-top: 200px;

    width: auto;
    height: auto;

    padding: 40px;
    box-sizing: border-box;

    background-color: var(--container);
    border-radius: 30px;

    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: start;

    z-index: 2;

    transition: all var(--standard_fx_slow);
}

.popupBubble.visible {
    margin-top: 0px;
}

.popupUnderlay {
    position: absolute;

    top: 0px;
    left: 0px;

    width: 100%;
    height: 100%;

    opacity: 0.5;

    background-color: var(--shadow);
    z-index: 1;
}









/* MESSAGE BLOB */
.messageBlob {
    position: fixed;
    
    left: 50%;
    transform: translateX(-50%);

    bottom: 1%;
    opacity: 0;

    width: 75%;
    height: auto;

    padding: 15px;
    box-sizing: border-box;

    background-color: var(--primary-container);
    border-radius: 10px;

    font-family: "Inter";
    font-weight: 400;
    font-size: 15px;
    color: var(--on-primary-container);

    display: flex;
    align-items: center;
    justify-content: space-between;

    transition: all var(--standard_fx_default);
    z-index: 999;
}

.messageBlob.visible {
    bottom: 5%;
    opacity: 1;
}

.messageBlob.error {
    background-color: var(--error-container);
    color: var(--on-error-container);
}

.messageBlob.error .clsBtn_message {
    background-color: var(--on-error-container);
    fill: var(--error-container);
}

.messageBlob.success {
    background-color: var(--success-container);
    color: var(--on-success-container);
}

.messageBlob.success .clsBtn_message {
    background-color: var(--on-success-container);
    fill: var(--success-container);
}



.clsBtn_message {
    position: relative;

    margin-left: 15px;

    width: 30px;
    height: 30px;

    background-color: var(--on-primary-container);
    border-radius: 5px;

    border: none;
    outline: none;

    fill: var(--primary-container);

    padding: 5px;
    box-sizing: border-box;

    display: flex;
    align-items: center;
    justify-content: center;
}

.clsBtn_message:hover,
.messageBlob.error .clsBtn_message:hover,
.messageBlob.success .clsBtn_message:hover {
    background-color: var(--container);
    fill: var(--on-surface);
    cursor: pointer;
}





/* APPs */
.appHeader {
    position: relative;

    margin-top: 30px;
    margin-bottom: 50px;

    width: 90%;
    height: auto;

    display: flex;
    align-items: center;
    justify-content: start;
}

.aH_otterIcon {
    position: relative;

    width: 20%;
    aspect-ratio: 1/1;

    padding: 10px;
    box-sizing: border-box;

    fill: var(--on-surface);

    background-color: var(--container);
    border-radius: 10px;

    display: flex;
    align-items: center;
    justify-content: center;
}

.aH_content {
    position: relative;

    margin-left: 1%;

    width: 79%;

    padding: 19.5px;
    box-sizing: border-box;

    background-color: var(--container);
    border-radius: 10px;

    display: flex;
    align-items: center;
    justify-content: start;
}

.aH_appBlob {
    position: relative;

    width: 70%;

    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: center;
    justify-content: start;
}

.aH_appIcon {
    position: relative;

    width: 30px;
    height: 30px;

    fill: var(--primary);

    display: flex;
    align-items: center;
    justify-content: center;
}

.aH_appTitle {
    position: relative;

    font-family: "Inter";
    font-weight: 200;
    font-size: 20px;
    color: var(--on-surface);
}

.aH_navBlob {
    position: relative;

    width: 30%;

    display: flex;
    flex-direction: row;
    gap: 10px;
    align-items: center;
    justify-content: end;
}

.aH_navIcon {
    position: relative;

    width: 35px;
    height: 35px;

    padding: 5px;
    box-sizing: border-box;

    fill: var(--on-surface);

    background-color: #ffffff25;
    border-radius: 10px;

    display: flex;
    align-items: center;
    justify-content: center;
}