
.vtopia-vfresh-admin{
    display:grid;
    grid-template-columns:240px minmax(0,1fr);
    max-width:1500px;
    margin:0 auto;
    min-height:780px;
    border:1px solid var(--vtopia-border,#d9e2da);
    background:#fff;
}

.vtopia-vfresh-admin .vtopia-admin-sidebar{
    display:flex;
    flex-direction:column;
    padding:22px;
    border-right:1px solid var(--vtopia-border,#d9e2da);
    background:#eef4ef;
}

.vtopia-vfresh-admin .vtopia-admin-brand{
    margin-bottom:22px;
    font-size:1.25rem;
    font-weight:800;
    letter-spacing:.08em;
}

.vtopia-vfresh-admin .vtopia-admin-sidebar nav{
    display:flex;
    flex-direction:column;
    gap:5px;
}

.vtopia-vfresh-admin .vtopia-admin-sidebar nav a,
.vtopia-vfresh-admin .vtopia-admin-logout{
    padding:11px 12px;
    border-radius:9px;
    color:#205830;
    text-decoration:none;
}

.vtopia-vfresh-admin .vtopia-admin-sidebar nav a.is-active{
    background:#fff;
    font-weight:800;
}

.vtopia-vfresh-admin .vtopia-admin-logout{
    margin-top:auto;
}

.vtopia-vfresh-admin .vtopia-admin-content{
    min-width:0;
    padding:30px;
}

.vtopia-vfresh-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-bottom:24px;
}

.vtopia-vfresh-tabs a{
    padding:10px 14px;
    border:1px solid #205830;
    border-radius:999px;
    color:#205830;
    text-decoration:none;
    font-size:.9rem;
    font-weight:750;
}

.vtopia-vfresh-tabs a.is-active,
.vtopia-vfresh-tabs a:hover{
    background:#205830;
    color:#fff;
}

.vtopia-vfresh-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:22px;
}

.vtopia-vfresh-heading h1{
    margin:0 0 7px;
}

.vtopia-vfresh-heading p{
    max-width:780px;
    margin:0;
    color:#607066;
}

.vtopia-vfresh-heading .vtopia-vfresh-primary,
.vtopia-vfresh-heading .vtopia-vfresh-secondary{
    min-width:170px;
    min-height:50px;
}


.vtopia-vfresh-primary,
.vtopia-vfresh-secondary{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    box-sizing:border-box!important;
    min-height:50px!important;
    padding:11px 18px!important;
    border-radius:10px!important;
    text-decoration:none!important;
    text-align:center!important;
    font-family:inherit!important;
    font-weight:750!important;
    font-size:16px!important;
    line-height:1.25!important;
    letter-spacing:normal!important;
    white-space:normal!important;
    overflow:visible!important;
    text-indent:0!important;
    opacity:1!important;
    cursor:pointer!important;
    transition:all .18s ease!important;
}

.vtopia-vfresh-primary *,
.vtopia-vfresh-secondary *{
    color:inherit!important;
    font:inherit!important;
    -webkit-text-fill-color:currentColor!important;
}

.vtopia-vfresh-primary,
.vtopia-vfresh-primary:visited{
    border:1px solid #205830!important;
    background:#205830!important;
    color:#fff!important;
}

.vtopia-vfresh-primary:hover{
    background:#184726!important;
    border-color:#184726!important;
    color:#fff!important;
}

.vtopia-vfresh-secondary,
.vtopia-vfresh-secondary:visited{
    border:1px solid #b7c7b9!important;
    background:#fff!important;
    color:#205830!important;
}

.vtopia-vfresh-secondary:hover{
    border-color:#205830!important;
    background:#f4f8f4!important;
    color:#205830!important;
}

.vtopia-vfresh-text-button{
    border:0;
    background:transparent;
    color:#8a2525;
    text-decoration:underline;
    cursor:pointer;
}

.vtopia-vfresh-notice{
    margin-bottom:18px;
    padding:14px 16px;
    border:1px solid #a7ceb0;
    border-radius:10px;
    background:#edf8ef;
    color:#225e34;
    font-weight:700;
}

.vtopia-vfresh-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    margin-bottom:22px;
}

.vtopia-vfresh-kpis article{
    padding:18px;
    border:1px solid #d9e2da;
    border-radius:13px;
    background:#fff;
}

.vtopia-vfresh-kpis span{
    display:block;
    margin-bottom:7px;
    color:#68766d;
    font-size:.87rem;
}

.vtopia-vfresh-kpis strong{
    color:#193126;
    font-size:1.6rem;
}

.vtopia-vfresh-dashboard-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}

.vtopia-vfresh-card{
    margin-bottom:18px;
    padding:22px;
    border:1px solid #d9e2da;
    border-radius:14px;
    background:#fff;
}

.vtopia-vfresh-card h2{
    margin:0 0 12px;
}

.vtopia-vfresh-card > p{
    color:#5c6b62;
    line-height:1.65;
}

.vtopia-vfresh-card a{
    color:#205830;
    font-weight:750;
}

.vtopia-vfresh-card-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:15px;
    margin-bottom:16px;
}

.vtopia-vfresh-card-heading h2{
    margin-bottom:5px;
}

.vtopia-vfresh-card-heading p{
    margin:0;
    color:#68766d;
}

.vtopia-vfresh-table{
    overflow:hidden;
    border:1px solid #d9e2da;
    border-radius:13px;
    background:#fff;
}

.vtopia-vfresh-table-head,
.vtopia-vfresh-table-row{
    display:grid;
    align-items:center;
    gap:12px;
}

.vtopia-vfresh-table-head{
    padding:13px 15px;
    background:#eef4ef;
    font-weight:800;
}

.vtopia-vfresh-table-row{
    min-height:62px;
    padding:12px 15px;
    border-top:1px solid #e1e7e2;
}

.vtopia-vfresh-recipes-columns{
    grid-template-columns:80px minmax(260px,1.8fr) 130px 110px 95px 80px;
}

.vtopia-vfresh-weeks-columns{
    grid-template-columns:minmax(220px,1.5fr) 190px 80px 100px minmax(190px,1fr);
}

.vtopia-vfresh-plan-columns{
    grid-template-columns:minmax(170px,1.2fr) minmax(180px,1.2fr) 120px 155px 160px 130px;
}

.vtopia-vfresh-status{
    display:inline-flex;
    width:max-content;
    padding:5px 8px;
    border:1px solid;
    border-radius:999px;
    font-size:.78rem;
    font-weight:750;
}

.vtopia-vfresh-status.is-published{
    border-color:#9fd0ac;
    background:#e4f5e9;
    color:#21633a;
}

.vtopia-vfresh-status.is-draft{
    border-color:#c9d1d5;
    background:#eef0f2;
    color:#5d6770;
}

.vtopia-vfresh-status.is-warning{
    border-color:#e4bf6d;
    background:#fff2d2;
    color:#865100;
}

.vtopia-vfresh-actions{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:10px;
}

.vtopia-vfresh-actions form{
    margin:0;
}

.vtopia-vfresh-actions button{
    padding:7px 12px;
    border:1px solid #b8c7ba!important;
    border-radius:8px;
    background:#fff!important;
    color:#205830!important;
    font-weight:700;
    line-height:1.2;
    cursor:pointer;
}

.vtopia-vfresh-actions a{
    color:#205830;
    font-weight:750;
    text-decoration:none;
}

.vtopia-vfresh-actions a:hover{
    text-decoration:underline;
}

.vtopia-vfresh-form input,
.vtopia-vfresh-form select,
.vtopia-vfresh-form textarea{
    width:100%;
    border:1px solid #c8d2c9;
    border-radius:9px;
    background:#fff;
}

.vtopia-vfresh-form input,
.vtopia-vfresh-form select{
    min-height:44px;
    padding:9px 11px;
}

.vtopia-vfresh-form textarea{
    padding:12px;
    resize:vertical;
}

.vtopia-vfresh-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
}

.vtopia-vfresh-form-grid.is-three{
    grid-template-columns:repeat(3,minmax(0,1fr));
}

.vtopia-vfresh-form-grid.is-four{
    grid-template-columns:repeat(4,minmax(0,1fr));
}

.vtopia-vfresh-form-grid label,
.vtopia-vfresh-full-field{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.vtopia-vfresh-form-grid label > span,
.vtopia-vfresh-full-field > span{
    font-weight:650;
}

.vtopia-vfresh-form-grid .is-wide{
    grid-column:span 2;
}

.vtopia-vfresh-checkbox{
    flex-direction:row!important;
    align-items:center;
    align-self:end;
    min-height:44px;
}

.vtopia-vfresh-checkbox input{
    width:auto;
    min-height:auto;
}

.vtopia-vfresh-image-picker{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    margin-top:18px;
}

#vtopia-vfresh-image-preview{
    display:flex;
    align-items:center;
    justify-content:center;
    width:160px;
    min-height:100px;
    overflow:hidden;
    border:1px dashed #b8c7ba;
    border-radius:10px;
    background:#f7f9f7;
    color:#718077;
}

#vtopia-vfresh-image-preview img{
    display:block;
    max-width:100%;
    max-height:120px;
}

.vtopia-vfresh-ingredients{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.vtopia-vfresh-ingredient-row{
    position:relative;
    display:grid;
    grid-template-columns:minmax(170px,1.5fr) minmax(170px,1.3fr) 100px 75px 135px 100px 125px 120px;
    gap:9px;
    padding:14px 42px 14px 14px;
    border:1px solid #dce4dd;
    border-radius:11px;
    background:#f9fbf9;
}

.vtopia-vfresh-ingredient-row label{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:5px;
}

.vtopia-vfresh-ingredient-row label > span{
    color:#647168;
    font-size:.78rem;
    font-weight:650;
}

.vtopia-vfresh-remove-row{
    position:absolute;
    top:8px;
    right:9px;
    width:28px!important;
    min-height:28px!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    color:#9a3030;
    font-size:23px;
    cursor:pointer;
}

.vtopia-vfresh-recipe-checks{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.vtopia-vfresh-recipe-checks label{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:13px;
    border:1px solid #dce4dd;
    border-radius:10px;
    background:#f9fbf9;
}

.vtopia-vfresh-recipe-checks input{
    width:auto;
    min-height:auto;
    margin-top:4px;
}

.vtopia-vfresh-recipe-checks span{
    display:flex;
    flex-direction:column;
    gap:3px;
}

.vtopia-vfresh-recipe-checks small{
    color:#68766d;
}

.vtopia-vfresh-empty{
    padding:24px;
    border:1px solid #d9e2da;
    border-radius:12px;
    background:#f7f9f7;
}

.vtopia-vfresh-footnote{
    margin-top:15px;
    color:#68766d;
    font-size:.88rem;
}

.vtopia-vfresh-public{
    max-width:1320px;
    margin:0 auto;
}

.vtopia-vfresh-public-header{
    max-width:780px;
    margin-bottom:28px;
}

.vtopia-vfresh-eyebrow{
    display:inline-flex;
    margin-bottom:8px;
    padding:5px 9px;
    border-radius:999px;
    background:#e8f3e9;
    color:#205830;
    font-size:.82rem;
    font-weight:800;
}

.vtopia-vfresh-public-header h1{
    margin:0 0 10px;
}

.vtopia-vfresh-public-header p{
    margin:0;
    color:#58685e;
    line-height:1.65;
}

.vtopia-vfresh-week-list{
    display:flex;
    flex-direction:column;
    gap:24px;
}

.vtopia-vfresh-public-week{
    padding:22px;
    border:1px solid #d9e2da;
    border-radius:15px;
    background:#fff;
}

.vtopia-vfresh-public-week-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:18px;
    margin-bottom:12px;
}

.vtopia-vfresh-public-week-heading > div > span{
    color:#648c72;
    font-size:.9rem;
    font-weight:750;
}

.vtopia-vfresh-public-week-heading h2{
    margin:4px 0 0;
}

.vtopia-vfresh-preview-label{
    display:inline-flex;
    padding:6px 9px;
    border-radius:999px;
    background:#fff2d2;
    color:#815000;
    font-size:.78rem;
    font-weight:800;
}

.vtopia-vfresh-public-notes{
    margin:0 0 18px;
    color:#5d6c62;
}

.vtopia-vfresh-public-recipes{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}

.vtopia-vfresh-public-recipe{
    overflow:hidden;
    border:1px solid #e0e6e1;
    border-radius:13px;
    background:#fafcfb;
}

.vtopia-vfresh-public-recipe > img{
    display:block;
    width:100%;
    aspect-ratio:16/8;
    object-fit:cover;
}

.vtopia-vfresh-public-recipe-content{
    padding:17px;
}

.vtopia-vfresh-public-badges{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-bottom:10px;
}

.vtopia-vfresh-public-badges span{
    padding:4px 7px;
    border-radius:999px;
    background:#e8f3e9;
    color:#205830;
    font-size:.75rem;
    font-weight:750;
}

.vtopia-vfresh-public-recipe h3{
    margin:0 0 7px;
    color:#193126;
    font-size:1.12rem;
}

.vtopia-vfresh-public-recipe p{
    margin:0 0 13px;
    color:#66736a;
    font-size:.9rem;
}

.vtopia-vfresh-public-ingredients{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.vtopia-vfresh-public-ingredients > span{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:6px 8px;
    border:1px solid #d7e1d8;
    border-radius:8px;
    background:#fff;
    color:#35463b;
    font-size:.82rem;
}

.vtopia-vfresh-public-ingredients small{
    color:#728078;
}

.vtopia-vfresh-public-recipe details{
    margin-top:14px;
    border-top:1px solid #dce4dd;
    padding-top:12px;
}

.vtopia-vfresh-public-recipe summary{
    color:#205830;
    font-weight:750;
    cursor:pointer;
}

.vtopia-vfresh-public-recipe details div{
    margin-top:10px;
    color:#506057;
    line-height:1.65;
}

@media(max-width:1180px){
    .vtopia-vfresh-ingredient-row{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
}

@media(max-width:1000px){
    .vtopia-vfresh-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .vtopia-vfresh-table{
        overflow-x:auto;
    }

    .vtopia-vfresh-table-head,
    .vtopia-vfresh-table-row{
        min-width:950px;
    }
}

@media(max-width:900px){
    .vtopia-vfresh-admin{
        grid-template-columns:1fr;
    }

    .vtopia-vfresh-admin .vtopia-admin-sidebar{
        border-right:0;
        border-bottom:1px solid #d9e2da;
    }

    .vtopia-vfresh-dashboard-grid,
    .vtopia-vfresh-public-recipes{
        grid-template-columns:1fr;
    }
}

@media(max-width:700px){
    .vtopia-vfresh-admin .vtopia-admin-content{
        padding:18px;
    }

    .vtopia-vfresh-heading,
    .vtopia-vfresh-public-week-heading{
        flex-direction:column;
    }

    .vtopia-vfresh-form-grid,
    .vtopia-vfresh-form-grid.is-three,
    .vtopia-vfresh-form-grid.is-four,
    .vtopia-vfresh-recipe-checks{
        grid-template-columns:1fr;
    }

    .vtopia-vfresh-form-grid .is-wide{
        grid-column:auto;
    }

    .vtopia-vfresh-ingredient-row{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:480px){
    .vtopia-vfresh-kpis,
    .vtopia-vfresh-ingredient-row{
        grid-template-columns:1fr;
    }
}


/* VFresh 1.1 — ingrédients issus des fiches Produits */
.vtopia-vfresh-calculation-badge{
    display:inline-flex;
    padding:6px 10px;
    border:1px solid #9fd0ac;
    border-radius:999px;
    background:#e4f5e9;
    color:#21633a;
    font-size:.78rem;
    font-weight:800;
}

.vtopia-vfresh-nutrition-card input[readonly]{
    background:#f4f7f4;
    color:#193126;
    font-weight:750;
}

.vtopia-vfresh-ingredient-row{
    display:grid!important;
    grid-template-columns:minmax(250px,2fr) minmax(170px,1.2fr) 120px 70px 38px!important;
    align-items:end!important;
    gap:12px!important;
}

.vtopia-vfresh-auto-category,
.vtopia-vfresh-fixed-unit{
    display:flex;
    min-height:44px;
    flex-direction:column;
    justify-content:center;
    gap:4px;
    padding:8px 10px;
    border:1px solid #d7dfd8;
    border-radius:9px;
    background:#f7f9f7;
}

.vtopia-vfresh-auto-category > span,
.vtopia-vfresh-fixed-unit > span{
    color:#6a786f;
    font-size:.72rem;
}

.vtopia-vfresh-auto-category strong,
.vtopia-vfresh-fixed-unit strong{
    color:#193126;
    font-size:.88rem;
}

.vtopia-vfresh-product-data-card{
    width:min(100%,980px);
    margin:0 0 24px;
    padding:22px;
    border:1px solid #cbd8cc;
    border-radius:14px;
    background:#f7faf7;
}

.vtopia-vfresh-product-data-heading h2{
    margin:0 0 6px;
    color:#193126;
}

.vtopia-vfresh-product-data-heading p{
    margin:0 0 22px;
    color:#627168;
}

.vtopia-vfresh-product-data-card h3{
    margin:22px 0 12px;
    color:#205830;
    font-size:1rem;
}

.vtopia-vfresh-product-data-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.vtopia-vfresh-product-data-grid.is-four{
    grid-template-columns:repeat(4,minmax(0,1fr));
}

.vtopia-vfresh-product-data-grid label{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.vtopia-vfresh-product-data-grid label > span{
    font-weight:650;
}

.vtopia-vfresh-product-data-grid input,
.vtopia-vfresh-product-data-grid select{
    width:100%!important;
    min-height:46px!important;
    padding:10px 12px!important;
    border:1px solid #c8d2c9!important;
    border-radius:10px!important;
    background:#fff!important;
}

.vtopia-vfresh-input-suffix{
    position:relative;
}

.vtopia-vfresh-input-suffix input{
    padding-right:88px!important;
}

.vtopia-vfresh-input-suffix small{
    position:absolute;
    top:50%;
    right:12px;
    transform:translateY(-50%);
    color:#6c7970;
    pointer-events:none;
}

.vtopia-vfresh-product-checkbox{
    flex-direction:row!important;
    align-items:center;
    align-self:end;
    min-height:46px;
    padding:10px 12px;
    border:1px solid #c8d2c9;
    border-radius:10px;
    background:#fff;
}

.vtopia-vfresh-product-checkbox input{
    width:auto!important;
    min-height:auto!important;
}

@media(max-width:1050px){
    .vtopia-vfresh-product-data-grid.is-four{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:900px){
    .vtopia-vfresh-ingredient-row{
        grid-template-columns:1fr 1fr!important;
    }

    .vtopia-vfresh-remove-row{
        grid-column:span 2;
        width:100%;
    }
}

@media(max-width:650px){
    .vtopia-vfresh-product-data-grid,
    .vtopia-vfresh-product-data-grid.is-four,
    .vtopia-vfresh-ingredient-row{
        grid-template-columns:1fr!important;
    }

    .vtopia-vfresh-remove-row{
        grid-column:auto;
    }
}


.vtopia-vfresh-nutrition-metric{
    gap:8px;
}

.vtopia-vfresh-nutrition-meta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-top:8px;
}

.vtopia-vfresh-nutrition-meta small{
    color:#68766d;
    font-size:.78rem;
}

.vtopia-vfresh-target-indicator{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:max-content;
    padding:6px 10px;
    border-radius:999px;
    font-size:.77rem;
    font-weight:800;
    border:1px solid transparent;
    white-space:nowrap;
}

.vtopia-vfresh-target-indicator.is-good{
    color:#21633a;
    background:#e4f5e9;
    border-color:#9fd0ac;
}

.vtopia-vfresh-target-indicator.is-medium{
    color:#9a5a12;
    background:#fff1dc;
    border-color:#edc27d;
}

.vtopia-vfresh-target-indicator.is-far{
    color:#9a2e2e;
    background:#fde6e6;
    border-color:#e7aaaa;
}


/* VFresh 1.3 — suppression des recettes et semaines */
.vtopia-vfresh-danger-zone{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    margin-top:28px;
    padding:20px 22px;
    border:1px solid #e1a1a1;
    border-radius:14px;
    background:#fff6f6;
}

.vtopia-vfresh-danger-zone h2{
    margin:0 0 6px;
    color:#8a2525;
    font-size:1.08rem;
}

.vtopia-vfresh-danger-zone p{
    max-width:760px;
    margin:0;
    color:#714141;
    line-height:1.55;
}

.vtopia-vfresh-danger-zone form{
    flex:0 0 auto;
    margin:0;
}

.vtopia-vfresh-danger-button{
    padding:11px 15px;
    border:1px solid #b52b2b;
    border-radius:10px;
    background:#b52b2b;
    color:#fff;
    font-weight:800;
    cursor:pointer;
}

.vtopia-vfresh-danger-button:hover{
    background:#972020;
}

@media(max-width:720px){
    .vtopia-vfresh-danger-zone{
        align-items:stretch;
        flex-direction:column;
    }

    .vtopia-vfresh-danger-button{
        width:100%;
    }
}


a.vtopia-vfresh-primary,
a.vtopia-vfresh-primary:link,
a.vtopia-vfresh-primary:visited,
button.vtopia-vfresh-primary{
    color:#ffffff!important;
    -webkit-text-fill-color:#ffffff!important;
}

a.vtopia-vfresh-secondary,
a.vtopia-vfresh-secondary:link,
a.vtopia-vfresh-secondary:visited,
button.vtopia-vfresh-secondary{
    color:#205830!important;
    -webkit-text-fill-color:#205830!important;
}


/* VFresh 1.6 — libellés des boutons et menu Plan de culture */
.vtopia-vfresh-heading-action{
    position:relative!important;
    isolation:isolate!important;
    overflow:visible!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
}

.vtopia-vfresh-heading-action .vtopia-vfresh-button-label{
    display:inline-block!important;
    position:relative!important;
    z-index:10!important;
    visibility:visible!important;
    opacity:1!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    font-family:inherit!important;
    font-size:16px!important;
    font-weight:750!important;
    line-height:1.25!important;
    text-indent:0!important;
    clip:auto!important;
    clip-path:none!important;
    transform:none!important;
}

.vtopia-vfresh-heading-action::after{
    content:attr(data-label)!important;
    display:none!important;
}

.vtopia-admin-sidebar nav a[href*="section=vfresh"][href*="tab=plan"]{
    padding-left:18px;
}


/* VFresh 1.10 — plan de culture regroupé par catégorie */
.vtopia-vfresh-plan-global-card{
    margin-bottom:24px;
}

.vtopia-vfresh-plan-mode-totals{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
}

.vtopia-vfresh-plan-mode-totals.is-compact{
    margin:0 0 16px;
}

.vtopia-vfresh-plan-mode-total{
    min-width:0;
    padding:14px 15px;
    border:1px solid #cfdcd1;
    border-radius:11px;
    background:#f6faf6;
}

.vtopia-vfresh-plan-mode-total > span{
    display:block;
    margin-bottom:6px;
    color:#68766d;
    font-size:.78rem;
    font-weight:700;
}

.vtopia-vfresh-plan-mode-total strong{
    display:block;
    color:#193126;
    font-size:1.05rem;
    line-height:1.25;
}

.vtopia-vfresh-plan-mode-total small{
    display:block;
    margin-top:6px;
    color:#9a5a12;
    font-size:.72rem;
}

.vtopia-vfresh-plan-mode-total.is-empty{
    background:#fafbfa;
    opacity:.62;
}

.vtopia-vfresh-plan-categories{
    display:flex;
    flex-direction:column;
    gap:24px;
}

.vtopia-vfresh-plan-category{
    padding:20px;
    border:1px solid #d4ded5;
    border-radius:14px;
    background:#fff;
}

.vtopia-vfresh-plan-category-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:15px;
}

.vtopia-vfresh-plan-category-heading h2{
    margin:0 0 5px;
    color:#193126;
    font-size:1.35rem;
}

.vtopia-vfresh-plan-category-heading p{
    margin:0;
    color:#68766d;
}

.vtopia-vfresh-plan-product-table{
    overflow-x:auto;
}

.vtopia-vfresh-plan-product-table .vtopia-vfresh-table{
    min-width:920px;
}

.vtopia-vfresh-plan-detail-columns{
    grid-template-columns:minmax(170px,1.35fr) 115px 130px 145px 170px 145px;
}

@media(max-width:1120px){
    .vtopia-vfresh-plan-mode-totals{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:600px){
    .vtopia-vfresh-plan-mode-totals{
        grid-template-columns:1fr;
    }

    .vtopia-vfresh-plan-category{
        padding:15px;
    }
}


/* VFresh 1.11 — 21 catégories du plan de culture */
.vtopia-vfresh-production-category-field{
    grid-column:span 2;
}

.vtopia-vfresh-production-category-field select{
    width:100%;
}

#vtopia-resource-unit[readonly]{
    background:#f4f7f4!important;
    color:#193126!important;
    font-weight:750!important;
    cursor:default;
}

.vtopia-vfresh-plan-category-columns{
    grid-template-columns:minmax(210px,1.55fr) 125px 170px 185px 155px;
}

.vtopia-vfresh-plan-category-total{
    display:grid;
    grid-template-columns:minmax(210px,1.55fr) 125px 170px 185px 155px;
    align-items:center;
    gap:12px;
    min-height:66px;
    padding:13px 15px;
    border-top:2px solid #8fb49a;
    background:#eef6ef;
    color:#193126;
}

.vtopia-vfresh-plan-category-total > strong:first-child{
    font-size:1rem;
}

.vtopia-vfresh-plan-empty-row{
    display:block!important;
    min-height:auto!important;
    padding:18px 15px!important;
    color:#68766d;
    font-style:italic;
}

.vtopia-vfresh-plan-category.is-empty-category{
    background:#fbfcfb;
}

.vtopia-vfresh-plan-category.is-empty-category .vtopia-vfresh-plan-category-heading{
    opacity:.78;
}

@media(max-width:900px){
    .vtopia-vfresh-production-category-field{
        grid-column:auto;
    }

    .vtopia-vfresh-plan-product-table .vtopia-vfresh-table{
        min-width:900px;
    }
}


/* VFresh 1.12 — valeurs cibles du plan */
.vtopia-vfresh-plan-category-target{
    display:grid;
    grid-template-columns:minmax(210px,1.55fr) 125px 170px 185px 155px;
    align-items:center;
    gap:12px;
    min-height:66px;
    padding:13px 15px;
    border-top:1px solid #c8d8cc;
    background:#f8faf8;
}

.vtopia-vfresh-plan-category-target > strong:first-child{
    color:#205830;
}

.vtopia-vfresh-plan-category-target .vtopia-vfresh-target-indicator{
    justify-self:start;
}

.vtopia-vfresh-plan-target-settings{
    overflow:hidden;
    margin-bottom:22px;
    border:1px solid #d9e2da;
    border-radius:14px;
    background:#fff;
}

.vtopia-vfresh-plan-target-settings-head,
.vtopia-vfresh-plan-target-setting-row{
    display:grid;
    grid-template-columns:minmax(320px,1.7fr) minmax(150px,.65fr) minmax(180px,.75fr);
    align-items:center;
    gap:16px;
    padding:13px 16px;
}

.vtopia-vfresh-plan-target-settings-head{
    background:#eef4ef;
    color:#193126;
    font-weight:800;
}

.vtopia-vfresh-plan-target-setting-row{
    border-top:1px solid #e1e7e2;
}

.vtopia-vfresh-plan-target-setting-row input,
.vtopia-vfresh-plan-target-setting-row select{
    width:100%;
    min-height:44px;
    margin:0;
}

@media(max-width:900px){
    .vtopia-vfresh-plan-target-settings{
        overflow-x:auto;
    }

    .vtopia-vfresh-plan-target-settings-head,
    .vtopia-vfresh-plan-target-setting-row{
        min-width:760px;
    }

    .vtopia-vfresh-plan-category-target{
        min-width:900px;
    }
}


/* VFresh 1.13 — navigation séparée */
.vtopia-vfresh-tabs{
    row-gap:10px;
}

.vtopia-vfresh-tabs a{
    text-align:center;
}


/* VFresh 1.14 — catégories personnalisées */
.vtopia-vfresh-add-plan-category{
    margin-bottom:22px;
}

.vtopia-vfresh-add-plan-category .vtopia-vfresh-primary{
    margin-top:16px;
}

.vtopia-vfresh-plan-target-setting-row strong{
    overflow-wrap:anywhere;
}


/* VFresh 1.15 — modification/suppression des catégories et séries */
.vtopia-vfresh-plan-target-settings-head,
.vtopia-vfresh-plan-target-setting-row{
    grid-template-columns:
        minmax(280px,1.45fr)
        minmax(135px,.55fr)
        minmax(165px,.65fr)
        minmax(110px,.45fr);
}

.vtopia-vfresh-plan-target-setting-row input[type="text"]{
    width:100%;
    font-weight:700;
}

.vtopia-vfresh-delete-category{
    min-height:42px;
    padding:9px 13px;
    border:1px solid #b94141!important;
    border-radius:9px;
    background:#fff!important;
    color:#a52f2f!important;
    font-weight:750;
    cursor:pointer;
}

.vtopia-vfresh-delete-category:hover{
    background:#a52f2f!important;
    color:#fff!important;
}

.vtopia-vfresh-series-grid{
    margin-bottom:0;
}

.vtopia-vfresh-series-grid select{
    width:100%;
}

@media(max-width:900px){
    .vtopia-vfresh-plan-target-settings-head,
    .vtopia-vfresh-plan-target-setting-row{
        min-width:900px;
    }
}


/* VFresh 1.16 — densité de plantation et total de plants */
#vtopia-plants-per-m2-field[hidden]{
    display:none!important;
}

.vtopia-vfresh-plan-category-columns{
    grid-template-columns:
        minmax(190px,1.4fr)
        115px
        155px
        170px
        155px
        145px;
}

.vtopia-vfresh-plan-category-total,
.vtopia-vfresh-plan-category-target{
    grid-template-columns:
        minmax(190px,1.4fr)
        115px
        155px
        170px
        155px
        145px;
}

.vtopia-vfresh-plan-plants-cell{
    display:flex;
    flex-direction:column;
    gap:2px;
}

.vtopia-vfresh-plan-plants-cell small{
    color:#657268;
    font-size:.8rem;
}

@media(max-width:1100px){
    .vtopia-vfresh-plan-product-table .vtopia-vfresh-table{
        min-width:1050px;
    }

    .vtopia-vfresh-plan-category-total,
    .vtopia-vfresh-plan-category-target{
        min-width:1050px;
    }
}


/* VFresh 1.17 — carte interactive du plan de culture */
.vtopia-vfresh-plan-map-card{
    margin:0 0 26px;
    padding:22px;
    border:1px solid #cfddd2;
    border-radius:16px;
    background:#f8fbf8;
}

.vtopia-vfresh-plan-map-header{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:14px;
}

.vtopia-vfresh-plan-map-header h2{
    margin:0 0 6px;
}

.vtopia-vfresh-plan-map-header p{
    margin:0;
    color:#607066;
}

.vtopia-vfresh-plan-map-filters{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

.vtopia-vfresh-plan-map-filters label{
    min-width:180px;
}

.vtopia-vfresh-plan-map-filters label > span{
    display:block;
    margin-bottom:5px;
    color:#244c31;
    font-weight:750;
}

.vtopia-vfresh-plan-map-filters select{
    width:100%;
    min-height:44px;
}

.vtopia-vfresh-plan-map-selection{
    margin:0 0 12px;
    color:#4e6255;
}

.vtopia-vfresh-plan-map-stage{
    position:relative;
    overflow:hidden;
    border:1px solid #bfd0c2;
    border-radius:14px;
    background:#fff;
    box-shadow:0 12px 28px rgba(35,75,46,.08);
}

.vtopia-vfresh-plan-map-stage > img{
    display:block;
    width:100%;
    height:auto;
}

.vtopia-vfresh-plan-map-overlay{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
}

.vtopia-vfresh-map-zone{
    fill:rgba(255,255,255,0);
    stroke:rgba(28,101,51,.18);
    stroke-width:3;
    vector-effect:non-scaling-stroke;
    cursor:pointer;
    transition:fill .16s ease, stroke .16s ease, filter .16s ease;
}

.vtopia-vfresh-map-zone:hover,
.vtopia-vfresh-map-zone:focus,
.vtopia-vfresh-map-zone.is-selected{
    fill:rgba(255,221,76,.42);
    stroke:#d69e00;
    stroke-width:4;
    outline:none;
    filter:drop-shadow(0 0 5px rgba(214,158,0,.45));
}

.vtopia-vfresh-map-zone.has-assignment{
    fill:rgba(50,153,74,.24);
    stroke:#24713a;
}

.vtopia-vfresh-map-zone.has-assignment:hover,
.vtopia-vfresh-map-zone.has-assignment:focus,
.vtopia-vfresh-map-zone.has-assignment.is-selected{
    fill:rgba(255,221,76,.48);
    stroke:#d69e00;
}

.vtopia-vfresh-plan-map-popover{
    position:absolute;
    z-index:20;
    top:18px;
    right:18px;
    width:min(390px,calc(100% - 36px));
    max-height:calc(100% - 36px);
    overflow:auto;
    padding:20px;
    border:1px solid #abc0ae;
    border-radius:14px;
    background:rgba(255,255,255,.98);
    box-shadow:0 18px 48px rgba(20,52,29,.24);
}

.vtopia-vfresh-plan-map-popover[hidden]{
    display:none!important;
}

.vtopia-vfresh-plan-map-close{
    position:absolute;
    top:8px;
    right:10px;
    width:34px;
    height:34px;
    padding:0;
    border:0;
    background:transparent;
    color:#345340;
    font-size:28px;
    line-height:1;
    cursor:pointer;
}

.vtopia-vfresh-plan-map-popover h3{
    margin:0 36px 2px 0;
}

.vtopia-vfresh-plan-map-period{
    margin:0 0 13px;
    color:#607066;
}

.vtopia-vfresh-plan-map-current{
    margin-bottom:16px;
    padding:12px;
    border-radius:10px;
    background:#eef5ef;
}

.vtopia-vfresh-plan-map-current strong{
    display:block;
    margin-bottom:4px;
    color:#163d24;
}

.vtopia-vfresh-plan-map-current dl{
    display:grid;
    grid-template-columns:max-content 1fr;
    gap:4px 10px;
    margin:9px 0 0;
}

.vtopia-vfresh-plan-map-current dt{
    color:#617066;
}

.vtopia-vfresh-plan-map-current dd{
    margin:0;
    font-weight:650;
}

.vtopia-vfresh-plan-map-popover form > label{
    display:block;
    margin-bottom:12px;
}

.vtopia-vfresh-plan-map-popover form label > span{
    display:block;
    margin-bottom:5px;
    font-weight:700;
}

.vtopia-vfresh-plan-map-popover input,
.vtopia-vfresh-plan-map-popover select,
.vtopia-vfresh-plan-map-popover textarea{
    width:100%;
}

.vtopia-vfresh-plan-map-form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}

.vtopia-vfresh-plan-map-form-grid label:first-child{
    grid-column:1 / -1;
}

.vtopia-vfresh-plan-map-actions{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin-top:15px;
}

.vtopia-vfresh-plan-map-delete{
    padding:10px 13px;
    border:1px solid #b33c3c!important;
    border-radius:9px;
    background:#fff!important;
    color:#a12f2f!important;
    font-weight:750;
    cursor:pointer;
}

.vtopia-vfresh-plan-map-delete:hover{
    background:#a12f2f!important;
    color:#fff!important;
}

.vtopia-vfresh-plan-map-help{
    margin:12px 0 0;
    color:#657268;
    font-size:.9rem;
}

@media(max-width:900px){
    .vtopia-vfresh-plan-map-header{
        align-items:stretch;
        flex-direction:column;
    }

    .vtopia-vfresh-plan-map-filters{
        display:grid;
        grid-template-columns:1fr 1fr;
    }

    .vtopia-vfresh-plan-map-popover{
        position:fixed;
        z-index:99999;
        top:5vh;
        right:5vw;
        bottom:auto;
        left:5vw;
        width:auto;
        max-height:90vh;
    }
}

@media(max-width:560px){
    .vtopia-vfresh-plan-map-card{
        padding:14px;
    }

    .vtopia-vfresh-plan-map-filters,
    .vtopia-vfresh-plan-map-form-grid{
        grid-template-columns:1fr;
    }

    .vtopia-vfresh-plan-map-form-grid label:first-child{
        grid-column:auto;
    }
}


/* VFresh 1.18 — planification automatique par produit */
.vtopia-vfresh-rotation-year-summary{
    display:flex;
    flex-direction:column;
    gap:4px;
    margin-top:18px;
    padding:14px 16px;
    border:1px solid #cfdcd1;
    border-radius:11px;
    background:#f7faf7;
}

.vtopia-vfresh-rotation-year-summary strong{
    color:#174828;
}

.vtopia-vfresh-rotation-year-summary small,
#vtopia-plan-zone-field > small{
    color:#66756b;
}

#vtopia-plan-zone-field[hidden]{
    display:none!important;
}

.vtopia-vfresh-map-capacities-card{
    margin-top:24px;
}

.vtopia-vfresh-map-capacities-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(150px,1fr));
    gap:14px;
    margin-bottom:20px;
}

.vtopia-vfresh-map-capacities-grid label > span{
    display:block;
    margin-bottom:5px;
    font-weight:700;
}

.vtopia-vfresh-plan-map-occupancy{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin-bottom:16px;
}

.vtopia-vfresh-map-stat{
    padding:10px;
    border:1px solid #d4dfd6;
    border-radius:10px;
    background:#f5f8f5;
}

.vtopia-vfresh-map-stat span{
    display:block;
    margin-bottom:3px;
    color:#607066;
    font-size:.78rem;
}

.vtopia-vfresh-map-stat strong{
    color:#183e25;
    font-size:.96rem;
}

.vtopia-vfresh-map-stat.is-over-capacity{
    border-color:#d99090;
    background:#fff1f1;
}

.vtopia-vfresh-map-stat.is-over-capacity strong{
    color:#a32626;
}

.vtopia-vfresh-map-warning{
    grid-column:1 / -1;
    margin:2px 0 0;
    padding:9px 10px;
    border-radius:8px;
    background:#fff4d8;
    color:#785300;
    font-size:.86rem;
}

.vtopia-vfresh-map-list-title{
    margin:0 0 10px;
    color:#183e25;
}

.vtopia-vfresh-map-culture-card{
    margin-bottom:10px;
    padding:12px;
    border:1px solid #d3dfd5;
    border-radius:10px;
    background:#fff;
}

.vtopia-vfresh-map-culture-card h4{
    margin:0;
    color:#173d24;
}

.vtopia-vfresh-map-culture-category{
    margin:2px 0 8px;
    color:#68776d;
    font-size:.85rem;
}

.vtopia-vfresh-map-culture-card dl{
    display:grid;
    grid-template-columns:max-content 1fr;
    gap:4px 10px;
    margin:0;
}

.vtopia-vfresh-map-culture-card dt{
    color:#67756b;
}

.vtopia-vfresh-map-culture-card dd{
    margin:0;
    font-weight:650;
}

.vtopia-vfresh-map-empty{
    padding:18px;
    border:1px dashed #b8c8bb;
    border-radius:10px;
    color:#66756b;
    text-align:center;
}

@media(max-width:1050px){
    .vtopia-vfresh-map-capacities-grid{
        grid-template-columns:repeat(2,minmax(150px,1fr));
    }
}

@media(max-width:620px){
    .vtopia-vfresh-map-capacities-grid,
    .vtopia-vfresh-plan-map-occupancy{
        grid-template-columns:1fr;
    }

    .vtopia-vfresh-map-warning{
        grid-column:auto;
    }
}


/* VFresh 1.20 — SVG exact créé dans Inkscape */
.vtopia-vfresh-plan-map-object{
    display:block;
    width:100%;
    aspect-ratio:1448 / 1086;
    border:0;
    background:#fff;
}

.vtopia-vfresh-plan-map-stage > .vtopia-vfresh-plan-map-object{
    position:relative;
    z-index:1;
}

.vtopia-vfresh-plan-map-popover{
    z-index:20;
}


/* VFresh 1.21 — ordre du menu client */
.vtopia-vfresh-menu-item > a{
    white-space:nowrap;
}


/* VFresh 1.22 — accueil avec carte Année 1 */
.vtopia-vfresh-homepage{
    max-width:1440px;
    margin:52px auto 30px;
    padding:0 20px;
}

.vtopia-vfresh-home-intro{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:34px;
    margin-bottom:25px;
    padding:28px;
    border:1px solid #d2dfd4;
    border-radius:18px;
    background:#f4f8f4;
}

.vtopia-vfresh-home-intro > div{
    max-width:900px;
}

.vtopia-vfresh-home-intro h2{
    margin:6px 0 14px;
    color:#183e25;
    font-size:clamp(1.7rem,3vw,2.45rem);
}

.vtopia-vfresh-home-intro p{
    margin:0 0 11px;
    color:#516259;
    line-height:1.7;
}

.vtopia-vfresh-home-intro p:last-child{
    margin-bottom:0;
}

.vtopia-vfresh-home-intro > .vtopia-vfresh-primary{
    min-width:210px;
    flex:0 0 auto;
}

.vtopia-vfresh-home-map{
    padding:22px;
    border:1px solid #cfddd2;
    border-radius:18px;
    background:#f8fbf8;
}

.vtopia-vfresh-home-map-header{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:22px;
    margin-bottom:12px;
}

.vtopia-vfresh-home-map-header h3{
    margin:0 0 4px;
    color:#173d24;
    font-size:1.45rem;
}

.vtopia-vfresh-home-map-header p{
    margin:0;
    color:#607066;
}

.vtopia-vfresh-home-map-header label{
    min-width:190px;
}

.vtopia-vfresh-home-map-header label > span{
    display:block;
    margin-bottom:5px;
    color:#244c31;
    font-weight:750;
}

.vtopia-vfresh-home-map-header select{
    width:100%;
    min-height:44px;
}

.vtopia-vfresh-home-map-selection{
    margin:0 0 12px;
    color:#526359;
}

@media(max-width:800px){
    .vtopia-vfresh-home-intro,
    .vtopia-vfresh-home-map-header{
        align-items:stretch;
        flex-direction:column;
    }

    .vtopia-vfresh-home-intro > .vtopia-vfresh-primary{
        align-self:flex-start;
    }

    .vtopia-vfresh-home-map-header label{
        min-width:0;
        width:100%;
    }
}

@media(max-width:560px){
    .vtopia-vfresh-homepage{
        margin-top:30px;
        padding:0 12px;
    }

    .vtopia-vfresh-home-intro,
    .vtopia-vfresh-home-map{
        padding:16px;
    }
}


/* VFresh 1.24 — accueil du portail client */
.vtopia-vfresh-homepage[hidden]{
    display:none!important;
}
