:root{
    font-family: Arial, Helvetica,sans-serif;
    --default-padding: 10px;
    --default-margin: 10px;
    --default-width: 700px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}


body{
    display: flex;
    flex-direction: column;
    justify-content:center;
    align-items: center;
    margin: 0 auto;
    padding: var(--default-padding);
    max-width: var(--default-width);
    gap: var(--default-padding);
    background-color: #f5ecce ;
}

body.shopping-page-body{
    width: 100%;
    max-width: var(--default-width);
}

.top{
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-self: flex-start;
    padding: var(--default-padding);
    background-color: #f2e4ae;
}

.nav{
    width: 100%;
    display: flex;
    flex-direction: row;
    align-self: flex-start;
    gap: var(--default-padding);
    padding: var(--default-padding);
    background-color: #f2e4ae;
}

.recipes{
    width: 100%;
    display: flex;
    border-style: solid; 
    flex-direction: column;
    align-self: flex-start;
    gap: var(--default-padding);
    padding: var(--default-padding);
    background-color: #f2e4ae;
}

.recipe-box{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--default-padding);
    padding: var(--default-padding);
    border-style: solid;
    background-color: #cef5f5;
}

div span{
    display: flex;
    flex-direction: column;
    gap: var(--default-padding);
}

.recipe-info{
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    gap: var(--default-padding);
}

.recipe-columns{
    display: flex;
    flex-direction: row;
    gap: var(--default-padding);
}

.cards-area{
    display: flex;
    flex-direction: row;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--default-padding);
}

.card{
    display: flex;
    flex: 0 0 49%;
    flex-direction: column;
    gap: var(--default-padding);
    padding: var(--default-padding);
    border-style: solid;
    background-color: #cef5f5;
}

.shopping-page{
    width: 100%;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: var(--default-padding);
}

.shopping-column{
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: clamp(540px, 72vh, 760px);
    max-height: 70vh;
    border-style: solid;
    background-color: #f2e4ae;
}

.column-head{
    padding: var(--default-padding);
    border-bottom: solid;
    background-color: #e7d58f;
}

.column-head h2{
    margin: 0 0 6px 0;
}

.column-head p{
    margin: 0;
}

.column-body{
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    flex-direction: column;
    gap: var(--default-padding);
    padding: var(--default-padding);
    overflow-y: auto;
}

.available-column-body,
.selected-column-body{
    align-items: stretch;
}

.ingredients-column-body{
    justify-content: flex-start;
}

.shopping-placeholder-card{
    padding: var(--default-padding);
    border-style: solid;
    background-color: #cef5f5;
}

.shopping-card{
    flex: 0 0 auto;
    width: 100%;
}

.available-recipe-card{
    cursor: pointer;
}

.shopping-card h2{
    margin: 0;
}

.shopping-card p{
    margin: 0;
}

.shopping-card-meta{
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.shopping-card-tags{
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.shopping-card-tags span{
    display: inline;
}

.shopping-ingredients{
    display: flex;
    flex-direction: column;
    gap: var(--default-padding);
}

.ingredients-list{
    display: flex;
    flex-direction: column;
    gap: var(--default-padding);
}

.ingredient-card h3{
    margin: 0;
}

.ingredient-card p{
    margin: 0;
}

.ingredients-empty-message{
    margin: 0;
}

.selected-recipes-list{
    display: flex;
    flex-direction: column;
    gap: var(--default-padding);
    margin: 0;
    padding: 0;
}

.selected-recipe-card{
    cursor: pointer;
}

.selected-recipe-card h2{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

.selected-recipe-card a{
    position: relative;
    z-index: 1;
}

.selected-recipe-count{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    padding: 2px 8px;
    border-style: solid;
    background-color: #f8efc8;
    font-size: 0.9rem;
}

.selected-recipe-card-hint{
    font-size: 0.95rem;
    color: #444444;
}

.selected-empty-message{
    margin: 0;
}

.shopping-column-actions{
    display: flex;
    flex-direction: column;
    gap: var(--default-padding);
    padding: var(--default-padding);
    border-top: solid;
    background-color: #f8efc8;
}

.shopping-column-actions button{
    padding: 8px 12px;
    border: solid;
    color: #222222;
    background-color: #cef5f5;
}

.shopping-column-actions button:disabled{
    cursor: not-allowed;
    color: #555555;
    background-color: #d9d9d9;
    opacity: 1;
}

.shopping-note{
    margin: 0;
    font-size: 0.95rem;
}

.shopping-save-status{
    margin: 0;
    font-size: 0.95rem;
}

@media (max-width: 700px) {
    .shopping-page{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ingredients-column{
        grid-column: 1 / -1;
    }

    .shopping-column{
        height: clamp(480px, 65vh, 680px);
        max-height: none;
    }
}

@media (max-width: 560px) {
    .shopping-page{
        grid-template-columns: 1fr;
    }

    .ingredients-column{
        grid-column: auto;
    }

    .shopping-column{
        height: clamp(440px, 58vh, 620px);
        max-height: none;
    }
}
