@import url('./main-layout.css');


.d-flex {
    display: flex;
}

.flex-column {
    flex-direction: column;
}

.w-full {
    width: 100%;
}

.flex-center {
    align-items: center;
    justify-content: center;
    align-content: center;
}

.input {
    padding: 5px 2px;
    border-radius: 9px;
    outline: none;
    text-decoration: none;
    border: 1px solid #b0b0b0;
}

.m-auto {
    margin: auto !important;
}

.fixed-center {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: 0;
}

.w-max-content {
    width: max-content !important;
}

.authForm {
    margin-top: 0 !important;
    padding: 25px 20px;
    border-radius: 8px;
    box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
}

.logoAuth {
    margin-left: auto;
    margin-right: auto;
    margin-top: auto;
    background-image: url('./logo.png');
    height: 70px;
    background-repeat: no-repeat;
}
.logoAuthMenu {
    margin-left: auto;
    margin-right: auto;
    background-image: url('./logo.png');
    height: 80px;
    margin: 12px auto;
    width: 100%;
    background-size: contain ;
    background-position: center center;
    background-repeat: no-repeat;
}
[theme="dark"] {
    .logoAuthMenu {

        background-image: url('./logo-white.png') !important;
    }
}

@media print {
    .nextpage {
        page-break-after: always;
    }
    .pb-inside{
        page-break-inside: avoid !important;
    }
}


/** {*/
/*    white-space: normal !important;*/
/*}*/


vaadin-grid.printed * {
    white-space: normal !important;
    text-overflow: clip !important;
    word-break: break-all !important;
    font-size: 9px !important;
}

.apexcharts-theme-dark > .apexcharts-svg {
    background: none !important;
}

.dash-board {
    display: grid;
    gap: 0.8em;

}

.dash-board .card {
    border-radius: 10px;
    -webkit-box-shadow:  var(--lumo-box-shadow-m);
    -moz-box-shadow: var(--lumo-box-shadow-m);
    box-shadow: var(--lumo-box-shadow-m);

    background: var(--lumo-tint-90p);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-content: center;
    align-items: center;
    justify-items: center;
    padding: .5 em;
}
.dash-title{font-size: 1.2em; text-align: center; border-bottom: 1px solid gray;
padding: 0.5em;
;}
 .dash-content{
 font-size: 2em;
 font-weight: 700;
 padding: 1em;
    height: calc(100% - 2em);

}

.production .card {
    border-radius: 10px;
    max-width: 250px;
    -webkit-box-shadow:  var(--lumo-box-shadow-m);
    -moz-box-shadow: var(--lumo-box-shadow-m);
    box-shadow: var(--lumo-box-shadow-m);
gap:1em;
    background: var(--lumo-contrast-10pct);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-content: center;
    align-items: center;
    justify-items: center;
    padding: 1em;
}

.dash-board .card>div{
    min-width: 95%;
    margin: auto;
    width:max-content !important;
}

.dash-board .dash-title {
    font-size: 1em;
    width: 100%;
}
/* W3C standard
   сейчас только для Firefox */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--background-color) blue;
}

/* для Chrome/Edge/Safari */
*::-webkit-scrollbar {
    height: 5px;

}
*::-webkit-scrollbar-track {
    background: var(--lumo-primary-color);
}
*::-webkit-scrollbar-thumb {
    background-color: blue;
    border-radius: 5px;
    border: none;
}


    .card-list {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        /*grid-template-rows: 380px;*/
        gap: 12px;
        padding: 10px;
        grid-auto-rows: 380px;
    }


.card-header-text{
        font-weight: 700;
    font-family: "Lucida Grande", Calibri, Helvetica, Arial, sans-serif;
    }

/*.card-component{*/
/*    height: auto;*/
/*    min-height: auto;*/
/*}*/


/*@media (min-width: 900px) {*/
/*    .card-list { grid-template-columns: repeat(3, 1fr); }*/
/*}*/

/*@media (min-width: 1200px) {*/
/*    .card-list {*/
/*        grid-template-columns: repeat(4, 1fr);*/
/*    }*/
/*}*/



 .card-component{
    border-radius: 10px;
    /*-webkit-box-shadow:  var(--lumo-box-shadow-m);*/
    /*-moz-box-shadow: var(--lumo-box-shadow-m);*/
    /*box-shadow: var(--lumo-box-shadow-m);*/
    gap:1em;
    background: var(--lumo-contrast-10pct);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-content: center;
    align-items: center;
    justify-items: center;
    padding: 6px;
     min-height: calc(100% - 12px);
max-height: calc(100% - 12px);

}

 .card-custom{
     margin-top: auto;
 }


 .right-menu{
     width: 80vw;
     height: calc(100vh - var(--lumo-space-m));
     right: 0;
     top: 0;

     padding: var(--lumo-space-m);
     left: calc(100% );
     background: rgb(0,0,0,0.90);
     border-radius: 20px 0 0 20px;
     box-shadow: var(--material-shadow-elevation-4dp);
     position: fixed !important;
     z-index: 1;
     align-content: start;
     display: flex;
     flex-direction: column;
 }

 .menu-open{
     transform: translateX(-100%);

    /*transform: translateX(calc(0 - 100% - 80vw - var(--lumo-space-m))) !important;*/
     transition: 0.5s;

}

@media (min-width: 320px) {
    .right-menu {
        width: 300px;
    }

     .menu-open{
        width: 300px;
         /*transform: translateX(calc(0 - 100% - 80vw - var(--lumo-space-m))) !important;*/
         transform: translateX(-100%);
         transition: 0.5s;
        /*left: calc(100% - 300px - var(--lumo-space-m)) !important;*/

    }


}

.right-menu-content{
    height: 100%;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.cart-product{
    background: var(--lumo-contrast-10pct);
    margin-top: 5px;
    margin-bottom: 5px;
    border-radius: 10px;
    position: relative;
}

.card-image{
    width:100%;
    height: 230px;
    object-fit: contain;
}

.cart-product-name{
    font-size: 1.1em;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    min-height: 3lh;
}

.cart-product-price{
    margin:auto;
    font-size: 1.3em;
}

.cart-product-count{
    margin: auto;
}

.cart-product-image{
    margin: auto;
    color: gray;
    width: 100%;
    object-fit: scale-down;
}
.close-button-icon{
    position: absolute;
    right: 5px;
    top: 5px;
    padding: 0.3em;
cursor: pointer;
}



/* frontend/styles/virtual-card-grid.css */

.virtual-list.grid-custom {
    background: transparent !important;
    border: none !important;
    display: block !important;
    padding: 0 !important;
    margin: 0 !important;
}

.virtual-list.grid-custom::part(container) {
    background: transparent !important;
    border: none !important;
}

.virtual-list.grid-custom::part(items) {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
    gap: 16px !important;
    padding: 16px !important;
    background: transparent !important;
    border: none !important;
    align-items: start !important;
}

.virtual-list.grid-custom::part(item) {
    display: block !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    height: auto !important;
    min-height: 0 !important;
}

.virtual-list.grid-custom [part="items"] {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
    gap: 16px !important;
    padding: 16px !important;
    background: transparent !important;
    border: none !important;
}

.virtual-list.grid-custom [part="item"] {
    display: block !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    height: auto !important;
}

/* Стили для карточек */
.product-card {
    transition: all 0.3s ease;
    border: 1px solid var(--lumo-contrast-10pct);
    border-radius: var(--lumo-border-radius-l);
    cursor: pointer;
    background: var(--lumo-base-color);
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    height: 100%;
    min-height: 320px;
    display: flex;
    flex-direction: column;
}

.product-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
    border-color: var(--lumo-primary-color-50pct);
}

.product-image-container {
    transition: all 0.3s ease;
    border-radius: var(--lumo-border-radius-m) var(--lumo-border-radius-m) 0 0;
}

.product-card:hover .product-image-container {
    transform: scale(1.02);
}

/* Убедимся, что контент карточки растягивается правильно */
.product-card > [slot] {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Адаптивность */
@media (max-width: 1024px) {
    .virtual-list.grid-custom::part(items) {
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
        gap: 14px !important;
        padding: 14px !important;
    }

    .virtual-list.grid-custom [part="items"] {
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
        gap: 14px !important;
        padding: 14px !important;
    }
}

@media (max-width: 768px) {
    .virtual-list.grid-custom::part(items) {
        grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important;
        gap: 12px !important;
        padding: 12px !important;
    }

    .virtual-list.grid-custom [part="items"] {
        grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important;
        gap: 12px !important;
        padding: 12px !important;
    }
}

@media (max-width: 480px) {
    .virtual-list.grid-custom::part(items) {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        padding: 8px !important;
    }

    .virtual-list.grid-custom [part="items"] {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
        padding: 8px !important;
    }

    .product-card {
        min-height: 300px;
    }
}

/* Дополнительные утилитарные классы для grid */
.grid-custom-compact::part(items) {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) !important;
    gap: 12px !important;
}

.grid-custom-spacious::part(items) {
    grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)) !important;
    gap: 20px !important;
}

.grid-custom-masonry::part(items) {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    grid-auto-rows: masonry !important;
    gap: 16px !important;
}