/* =====================================================
RESET
===================================================== */

*{
margin:0;
padding:0;
box-sizing:border-box;
}

body{
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
background:#f5f7fb;
color:#1f2937;
line-height:1.6;
font-size:15px;
overflow-x: hidden; /* 🔴 FIX IMPORTANTISSIMO */
}


/* =====================================================
LINK
===================================================== */

a{
text-decoration:none;
color:inherit;
}

a:hover{
text-decoration:none;
}


/* =====================================================
LAYOUT
===================================================== */

.container{
max-width:1150px;
margin:auto;
padding:40px 20px;
}


/* =====================================================
HEADER DEFINITIVO (FIX REALE)
===================================================== */

.site-header{
    background:white;
    border-bottom:1px solid #e5e7eb;
    box-shadow:0 2px 10px rgba(0,0,0,0.04);
    position:sticky;
    top:0;
    z-index:1002;

    display:flex;
    flex-direction:column;
    align-items:center; /* 🔥 centra tutto */
}

/* 🔴 HEADER SUPERIORE (logo + user) */
.header-inner{
    max-width:1200px;
    margin:auto;

    display:flex;
    align-items:center;
    justify-content:space-between;

    padding:12px 20px;
}

/* =====================
LOGO
===================== */

.logo{
    flex-shrink:0;
}

.logo img{
    height:55px;
    width:auto;
    max-width:180px;
}

/* =====================
UTENTE
===================== */

.user-info{
    display:flex;
    align-items:center;
    gap:10px;
    flex-shrink:0;
}

/* =====================
MENU (SEPARATO SOTTO)
===================== */

.menu{
    display:flex;
    justify-content:center;
    align-items:center;

    width:100%;
    margin:0 auto;

    gap:22px;

    padding:6px 0 8px; /* 🔥 ridotto */
}

/* =====================
LINK MENU
===================== */

.menu a{
    font-size:15px;
    color:#6b7280;
    transition:0.2s;
    padding:6px 4px;
    cursor:pointer;
}

.menu a:hover{
    color:#111;
}

/* =====================
HAMBURGER
===================== */

.mobile-menu-toggle{
    display:none;
}

/* =====================================================
DESKTOP FIX
===================================================== */

@media (min-width:601px){

    .menu{
        position:static;
        flex-direction:row;
        white-space:nowrap;
    }

    .menu-overlay{
        display:none;
    }

    .mobile-menu-toggle{
        display:none;
    }

}

/* =====================================================
FOOTER
===================================================== */

.site-footer{
margin-top:50px;
background:#f9fafb;
border-top:1px solid #e5e7eb;
}

.footer-inner{
text-align:center;
padding:20px;
font-size:13px;
color:#6b7280;
}


/* =====================================================
CARD SYSTEM
===================================================== */

.card,
.tile,
.stat-card,
.table-card,
.card-section{
background:white;
border-radius:16px;
border:1px solid #e5e7eb;
box-shadow:0 6px 20px rgba(0,0,0,0.04);
transition:0.2s;
}

.card-section{
padding:25px;
margin-bottom:20px;
}

.card:hover,
.tile:hover{
transform:translateY(-3px);
box-shadow:0 10px 30px rgba(0,0,0,0.08);
}


/* =====================================================
BUTTONS
===================================================== */

.btn-principale{
background:#dc2626;
color:white;
padding:12px 20px;
border-radius:10px;
border:none;
font-weight:500;
font-size:14px;
cursor:pointer;
transition:0.2s;
}

.btn-principale:hover{
    background:#a81e1e;
    transform:translateY(-1px);
}

.btn-secondario{
background:#f3f4f6;
border:1px solid #e5e7eb;
padding:10px 16px;
border-radius:10px;
cursor:pointer;
font-size:14px;
}

.btn-secondario:hover{
background:#e5e7eb;
}

.btn-azione{
padding:7px 12px;
border-radius:6px;
font-size:13px;
border:none;
cursor:pointer;
}

.btn-apri{
background:#e3f2fd;
color:#0d47a1;
}

.btn-modifica{
background:#fff3cd;
color:#856404;
}

.btn-elimina{
background:#ffecec;
color:#b71c1c;
}


/* =====================================================
TABLE
===================================================== */

.table-card{
padding:20px;
overflow:hidden;
}

table{
width:100%;
border-collapse:collapse;
font-size:14px;
}

th{
font-size:12px;
color:#6b7280;
text-transform:uppercase;
padding:12px;
text-align:left;
}

td{
padding:14px 12px;
border-bottom:1px solid #f1f1f1;
}

tr:hover{
background:#fafafa;
}


/* =====================================================
FORM (FIX GROSSO PROBLEMA)
===================================================== */

.form-group{
margin-bottom:18px;
}

label{
display:block;
font-size:13px;
font-weight:500;
margin-bottom:6px;
color:#374151;
}

input,
select,
textarea{
width:100%;
padding:12px;
border:1px solid #d1d5db;
border-radius:10px;
font-size:14px;
background:white;
transition:0.2s;
}

input:focus,
select:focus,
textarea:focus{
outline:none;
border-color:#dc2626;
box-shadow:0 0 0 2px rgba(220,38,38,0.1);
}

textarea{
resize:vertical;
min-height:100px;
}


/* =====================================================
TEXT
===================================================== */

.section-title{
font-size:20px;
font-weight:600;
margin:25px 0 15px;
}

.testo-grigio{
font-size:14px;
color:#6b7280;
}


/* =====================================================
BADGE
===================================================== */

.badge{
padding:5px 10px;
border-radius:20px;
font-size:12px;
font-weight:500;
}

.badge-success{
background:#e6ffed;
color:#166534;
}

.badge-warning{
background:#fff8e1;
color:#92400e;
}


/* =====================================================
EMPTY
===================================================== */

.empty-box{
background:white;
border-radius:12px;
padding:40px;
text-align:center;
border:1px solid #e5e7eb;
color:#6b7280;
}


/* =====================================================
FILTER BAR COMPACT
===================================================== */

.filter-bar{
margin-bottom:20px;
}

.filter-form{
display:flex;
flex-wrap:wrap;
gap:10px;
align-items:stretch;
}

.filter-form .form-group{
margin:0;
flex:1;
min-width:160px;
display:flex;
}

.filter-form .form-group:last-child{
flex:unset;
display:flex;
gap:10px;
align-items:stretch;
}

.filter-form input,
.filter-form select{
height:42px;
padding:0 12px;
font-size:14px;
line-height:42px;
border:1px solid #d1d5db;
border-radius:10px;
background:white;
display:block;
}

.filter-form select{
appearance:none;
-webkit-appearance:none;
-moz-appearance:none;
line-height:normal;
padding-right:36px;
background-image:linear-gradient(45deg, transparent 50%, #6b7280 50%), linear-gradient(135deg, #6b7280 50%, transparent 50%);
background-position:calc(100% - 18px) calc(50% - 3px), calc(100% - 12px) calc(50% - 3px);
background-size:6px 6px, 6px 6px;
background-repeat:no-repeat;
}

.filter-form button,
.filter-form a{
height:42px;
padding:0 16px;
display:inline-flex;
align-items:center;
justify-content:center;
white-space:nowrap;
font-size:14px;
line-height:1;
}

@media (max-width:600px){

.filter-form{
flex-direction:column;
align-items:stretch;
}

.filter-form .form-group,
.filter-form .form-group:last-child{
width:100%;
}

.filter-form .form-group:last-child{
display:flex;
flex-direction:column;
gap:10px;
}

}


/* =====================================================
CONSEGNE FIX (LAYOUT PULITO)
===================================================== */

.consegne-tiles{
display:flex;
flex-direction:column;
gap:20px;
margin-top:20px;
}

.consegna-tile{
padding:20px;
display:flex;
flex-direction:column;
gap:15px;
}

/* HEADER */

.consegna-tile-header{
display:flex;
justify-content:space-between;
align-items:center;
font-size:14px;
}

/* INFO GRID */

.consegna-tile-info{
display:grid;
grid-template-columns:1fr 1fr;
gap:12px;
}

/* LABEL */

.tile-item .label{
font-size:12px;
color:#6b7280;
display:block;
margin-bottom:3px;
}

/* AZIONI */

.consegna-tile-actions{
margin-top:auto;
padding-top:10px;
display:flex;
justify-content:flex-end;
}

/* =====================================================
SPAZIATURE GENERALI
===================================================== */

.consegna-tile strong{
font-weight:600;
}


/* =====================================================
RESPONSIVE
===================================================== */

@media (max-width:600px){

.filter-form{
flex-direction:column;
}

.consegna-tile-info{
grid-template-columns:1fr;
}

.consegna-tile-actions{
justify-content:stretch;
}

.consegna-tile-actions .btn-principale{
width:100%;
}

}





// FRECCIETTINE ORDINAMENTO TIPO EXCEL
.sort-icon{
font-size:10px;
margin-left:6px;
opacity:0.4;
}

th.asc .sort-icon{
opacity:1;
}

th.desc .sort-icon{
opacity:1;
}

/* =====================================================
ORDINAMENTO TABELLA
===================================================== */

.tabella-strutture th.sortable{
    cursor: pointer;
}

.tabella-strutture th.sortable:hover{
    background-color: #f5f5f5;
}

/* frecce dinamiche */

.tabella-strutture th.asc .sort-icon{
    content: "↑";
}

.tabella-strutture th.desc .sort-icon{
    content: "↓";
}




/* =====================================================
ORDINATI / IN CONSEGNA
===================================================== */

/* wrapper card */

.lavanderia-ordinati-wrap{
    margin-top:34px;
    margin-bottom:26px;
    background:#ffffff;
    border:1px solid #e5e7eb;
    border-radius:12px;
    overflow:hidden;
}

/* cappello blu */

.lavanderia-ordinati-header{
    background:#2563eb;
    color:#ffffff;
    font-size:13px;
    font-weight:600;
    text-align:center;
    padding:2px 10px;
    line-height:0.2;
}

/* contenuto */

.lavanderia-ordinati-body{
    display:flex;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    padding:12px 14px;
    background:#ffffff;
}

/* chip kit */

.lavanderia-ordinato-chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:5px 10px;
    border:1px solid #e5e7eb;
    border-radius:8px;
    background:#f9fafb;
    font-size:13px;
    line-height:1;
}

/* testo kit */

.lavanderia-ordinato-chip .kit-name{
    color:#6b7280;
    font-weight:500;
}

/* numero */

.lavanderia-ordinato-chip .kit-value{
    color:#1d4ed8;
    font-weight:700;
}

/* titolo stile uguale agli altri */

.lavanderia-ordinati-title{
    width:100%;
    text-align:center;
    font-size:14px;
    font-weight:600;   /* 🔥 grassetto */
    color:#1f2937;
    margin-bottom:8px;
}

/* riga separata per i kit */

.lavanderia-ordinati-row{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
}


/* header */

.ordine-header{
display:flex;
justify-content:space-between;
align-items:center;
}

.ordine-id{
font-weight:600;
font-size:14px;
}


/* badge stato */

.badge-stato{
background:#e3f2fd;
color:#1d4ed8;
font-size:12px;
padding:4px 8px;
border-radius:8px;
}


/* sezioni */

.ordine-sezione{
font-size:14px;
}

.ordine-sezione .label{
font-size:12px;
color:#6b7280;
display:block;
margin-bottom:2px;
}


/* kit */

.ordine-kit{
display:flex;
gap:8px;
flex-wrap:wrap;
margin-top:5px;
}

.kit-chip{
background:#f3f4f6;
border:1px solid #e5e7eb;
border-radius:6px;
padding:4px 8px;
font-size:12px;
display:flex;
gap:4px;
}

.kit-chip span{
font-weight:600;
}


/* azioni */

.ordine-actions{
display:flex;
justify-content:flex-end;
gap:10px;
margin-top:10px;
}


/* =====================================================
TOOLBAR ORDINI
===================================================== */

.ordini-toolbar{
display:flex;
flex-wrap:wrap;
gap:12px;
align-items:center;
margin-bottom:20px;
}

.search-input,
.date-input{
padding:10px 12px;
border-radius:10px;
border:1px solid #d1d5db;
font-size:14px;
background:white;
}

.ordini-sort{
display:flex;
align-items:center;
gap:8px;
margin-left:auto;
flex-wrap:wrap;
}

.sort-btn{
background:#f3f4f6;
border:1px solid #e5e7eb;
padding:6px 10px;
border-radius:8px;
cursor:pointer;
font-size:13px;
}

.sort-btn.active{
background:#2563eb;
color:white;
}


/* =====================================================
ORDINI GRID
===================================================== */

.ordini-grid{
display:grid;
grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
gap:20px;
margin-top:20px;
}


/* =====================================================
CARD ORDINE
===================================================== */

.ordine-card{
background:white;
border-radius:14px;
border:1px solid #e5e7eb;
padding:18px;
display:flex;
flex-direction:column;
gap:12px;
box-shadow:0 4px 15px rgba(0,0,0,0.04);
transition:0.2s;
}

.ordine-card:hover{
transform:translateY(-3px);
box-shadow:0 8px 25px rgba(0,0,0,0.08);
}

.ordine-top{
display:flex;
justify-content:space-between;
align-items:center;
}

.ordine-id{
font-weight:600;
font-size:14px;
}

.ordine-stato{
font-size:12px;
padding:4px 8px;
border-radius:8px;
font-weight:600;
background:#e5e7eb;
color:#374151;
}

.ordine-struttura{
font-weight:600;
font-size:15px;
}

.ordine-address{
font-size:13px;
color:#6b7280;
margin-top:-6px;
}

.ordine-info{
display:grid;
grid-template-columns:1fr 1fr;
gap:10px;
}

.ordine-sezione .label,
.ordine-info .label{
font-size:12px;
color:#6b7280;
display:block;
margin-bottom:2px;
}

.ordine-kit{
display:flex;
gap:8px;
flex-wrap:wrap;
margin-top:5px;
}

.kit-chip{
background:#f3f4f6;
border:1px solid #e5e7eb;
border-radius:6px;
padding:4px 8px;
font-size:12px;
display:flex;
gap:4px;
}

.kit-chip span{
font-weight:600;
}

.ordine-actions{
display:flex;
justify-content:flex-end;
gap:10px;
margin-top:10px;
}

.btn-disabled{
opacity:0.6;
pointer-events:none;
}

@media (max-width:600px){

.ordini-toolbar{
flex-direction:column;
align-items:stretch;
}

.ordini-sort{
margin-left:0;
}

.ordine-info{
grid-template-columns:1fr;
}

.ordine-actions{
flex-direction:column;
}

.ordine-actions a,
.ordine-actions span{
width:100%;
text-align:center;
justify-content:center;
display:inline-flex;
}
}

.ordine-proprietario{
font-size:13px;
color:#6b7280;
margin-top:-4px;
}

.ordini-summary{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
gap:15px;
margin-bottom:20px;
}

.summary-card{
background:white;
border:1px solid #e5e7eb;
border-radius:12px;
padding:14px;
text-align:center;
box-shadow:0 4px 12px rgba(0,0,0,0.04);
}

.summary-card .label{
font-size:12px;
color:#6b7280;
margin-bottom:4px;
}

.summary-card .value{
font-size:20px;
font-weight:600;
color:#111;
}

.ordini-per-giorno{
margin-bottom:20px;
display:flex;
flex-direction:column;
gap:10px;
}

.giorno-card{
background:white;
border:1px solid #e5e7eb;
border-radius:10px;
padding:10px 14px;
display:flex;
justify-content:space-between;
align-items:center;
font-size:14px;
}

.giorno-data{
font-weight:600;
}

.giorno-kit{
display:flex;
gap:12px;
font-size:13px;
color:#374151;
}

.giorno-kit span{
font-weight:600;
color:#111;
}

/* =====================================================
FILTRI CALENDARIO
===================================================== */

.calendario-filtri{
display:flex;
flex-wrap:wrap;
gap:12px;
align-items:center;
margin-bottom:20px;
}

.filtri-group{
display:flex;
gap:8px;
align-items:center;
}

.filtri-group .label{
font-size:13px;
color:#6b7280;
}

.reset-btn{
margin-left:auto;
}


/* =====================================================
FORM GRID
===================================================== */

.calendario-form-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
gap:12px;
margin-top:10px;
}


/* =====================================================
GRID GIORNI
===================================================== */

.calendario-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
gap:18px;
margin-top:20px;
}


/* =====================================================
CARD GIORNO
===================================================== */

.calendario-card{
background:white;
border:1px solid #e5e7eb;
border-radius:14px;
padding:16px;
display:flex;
flex-direction:column;
gap:12px;
box-shadow:0 4px 14px rgba(0,0,0,0.05);
transition:0.2s;
}

.calendario-card:hover{
transform:translateY(-3px);
box-shadow:0 8px 24px rgba(0,0,0,0.08);
}


/* header */

.calendario-header{
display:flex;
justify-content:space-between;
align-items:center;
}

.calendario-data{
font-weight:600;
font-size:15px;
}


/* body */

.calendario-body{
font-size:14px;
color:#374151;
}

.calendario-max{
font-size:13px;
color:#6b7280;
}


/* actions */

.calendario-actions{
display:flex;
gap:8px;
margin-top:8px;
flex-wrap:wrap;
}

.page-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:20px;
}

.search-input{
    margin-bottom:24px;
}


/* NUOVO ORDINE */


.ordine-wrapper{
    max-width:1150px;
    margin:50px auto;
    padding:0 20px;
}

.ordine-grid{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:35px;
}

.card-section{
    background:white;
    border-radius:12px;
    padding:24px;
    margin-bottom:22px;
    box-shadow:0 6px 18px rgba(0,0,0,0.06);
    border:1px solid #eef1f4;
    transition:all .15s ease;
}

.card-section:hover{
    transform:translateY(-2px);
    box-shadow:0 10px 28px rgba(0,0,0,0.08);
}

.step-title{
    font-size:18px;
    font-weight:600;
    margin-bottom:14px;
    display:flex;
    align-items:center;
    gap:8px;
}

.nuovo-ordine select{
    width:100%;
    padding:12px;
    border-radius:8px;
    border:1px solid #d9dfe6;
    background:white;
    font-size:14px;
}

.nuovo-ordine select:focus{
    outline:none;
    border-color:#c62828;
}

.kit-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 0;
    border-bottom:1px solid #f1f1f1;
}

.kit-row:last-child{
    border-bottom:none;
}

.kit-info strong{
    font-size:15px;
}

.kit-prezzo{
    font-size:13px;
    color:#7a7a7a;
}

.quantita-input{
    width:70px;
    padding:7px;
    border-radius:6px;
    border:1px solid #d9dfe6;
    text-align:center;
    font-size:14px;
}

.sidebar{
    position:sticky;
    top:35px;
}

.riepilogo-card{
    background:white;
    border-radius:12px;
    padding:25px;
    box-shadow:0 6px 18px rgba(0,0,0,0.06);
    border:1px solid #eef1f4;
}

.riepilogo-card h3{
    margin-bottom:18px;
}

.riepilogo-card p{
    font-size:14px;
    margin-bottom:8px;
}

#totale{
    font-size:22px;
    font-weight:700;
    color:#c62828;
}

.riepilogo-card .btn-principale{
width:100%;
margin-top:22px;
background:#c62828;
color:white;
padding:13px;
border-radius:8px;
font-size:15px;
font-weight:600;
cursor:pointer;
transition:all .15s ease;
}

.btn-principale:hover{
    background:#a81e1e;
    transform:translateY(-1px);
}

.azienda-box{
    font-size:12px;
    color:#666;
    margin-top:18px;
    padding-top:14px;
    border-top:1px solid #eee;
}

.azienda-nome{
    font-weight:600;
    color:#222;
    margin-bottom:4px;
}

.testo-grigio{
    color:#777;
}


/* =====================================================
NUOVO ORDINE
===================================================== */

.nuovo-ordine{
max-width:1200px;
margin:40px auto;
}

.nuovo-ordine .ordine-grid{
display:grid;
grid-template-columns:2.2fr 1fr;
gap:40px;
align-items:start;
}

.nuovo-ordine .card-section{
padding:24px;
border-radius:14px;
}

.nuovo-ordine .step-title{
font-size:17px;
font-weight:600;
margin-bottom:12px;
}

.nuovo-ordine select{
margin-top:6px;
}

.nuovo-ordine .kit-row{
display:flex;
justify-content:space-between;
align-items:center;
padding:14px 0;
border-bottom:1px solid #f1f1f1;
}

.nuovo-ordine .kit-row:last-child{
border-bottom:none;
}

.nuovo-ordine .quantita-input{
width:70px;
text-align:center;
}

.nuovo-ordine .sidebar{
position:sticky;
top:30px;
}

.nuovo-ordine .riepilogo-card{
padding:25px;
border-radius:14px;
}

.nuovo-ordine #totale{
font-size:22px;
font-weight:700;
color:#dc2626;
}


.consegna-header{
display:flex;
justify-content:space-between;
align-items:center;
margin-bottom:10px;
}

.consegna-data{
font-size:12px;
color:#6b7280;
}

.consegna-blocco{
margin-top:12px;
}

.consegna-blocco .label{
font-size:12px;
color:#6b7280;
margin-bottom:4px;
}

.consegna-blocco .valore{
font-size:14px;
font-weight:500;
}

.kit-list{
display:flex;
flex-wrap:wrap;
gap:6px;
margin-top:6px;
}

.consegna-actions{
margin-top:14px;
}





/* ERRORE SUPER VISIBILE */
.alert-error-strong{
    display:flex;
    align-items:center;
    gap:12px;

    background:#b91c1c;
    color:white;

    padding:18px 20px;
    border-radius:12px;

    font-size:16px;
    font-weight:600;

    margin-bottom:20px;

    box-shadow:0 8px 20px rgba(185,28,28,0.3);

    animation: shake 0.3s ease;
}

/* ICONA */
.alert-icon{
    font-size:22px;
}

/* SUCCESS */
.alert-success-strong{
    background:#16a34a;
    color:white;
    padding:14px 18px;
    border-radius:10px;
    font-weight:500;
    margin-bottom:20px;
}

/* ANIMAZIONE ATTENZIONE */
@keyframes shake{
    0%{transform:translateX(0);}
    25%{transform:translateX(-5px);}
    50%{transform:translateX(5px);}
    75%{transform:translateX(-5px);}
    100%{transform:translateX(0);}
}
