/* NB Order Grid — Colore × Taglia matrix */
.nb-grid-wrap{
    margin:0 0 28px;
    border:1px solid #e2e8f0;
    border-radius:14px;
    overflow:hidden;
    background:#fff;
    box-shadow:0 1px 3px rgba(0,0,0,.06),0 4px 16px rgba(0,0,0,.04);
}

.nb-grid-header{
    padding:14px 18px;
    background:#f8fafc;
    border-bottom:1px solid #e2e8f0;
}
.nb-grid-title{
    display:flex;align-items:center;gap:8px;
    font-size:15px;font-weight:600;color:#0f172a;margin-bottom:3px;
}
.nb-grid-subtitle{font-size:12px;color:#64748b}

.nb-grid-scroll{overflow-x:auto;padding:0}

.nb-grid-table{
    width:100%;border-collapse:collapse;
    font-size:13px;color:#0f172a;
}
.nb-grid-table th{
    padding:8px 10px;
    background:#f8fafc;
    border-bottom:2px solid #e2e8f0;
    font-size:12px;font-weight:600;
    text-align:center;
    white-space:nowrap;
    color:#475569;
}
.nb-col-color{text-align:left;min-width:140px;padding-left:16px}
.nb-col-size{min-width:68px}
.nb-col-total,.nb-col-price{min-width:70px;background:#f0f9ff}

.nb-grid-row{transition:background .1s}
.nb-grid-row:hover{background:#fafbfc}
.nb-grid-row:not(:last-child) td{border-bottom:1px solid #f1f5f9}

.nb-cell-color{
    padding:10px 10px 10px 16px;
    display:flex;align-items:center;gap:8px;
    font-weight:500;white-space:nowrap;
}
.nb-color-swatch{width:24px;height:24px;border-radius:50%;border:1px solid #e2e8f0;object-fit:cover;flex-shrink:0}
.nb-color-dot{width:20px;height:20px;border-radius:50%;border:1px solid rgba(0,0,0,.1);display:inline-block;flex-shrink:0}

.nb-cell-qty{padding:6px 4px;text-align:center;vertical-align:middle}
.nb-cell-qty.unavailable{background:#fafafa;color:#cbd5e1}
.nb-unavail{font-size:16px;color:#cbd5e1;display:block}

.nb-qty-cell{display:flex;flex-direction:column;align-items:center;gap:3px}
.nb-qty-input{
    width:54px;height:32px;
    border:1px solid #e2e8f0;
    border-radius:7px;
    text-align:center;
    font-size:13px;font-weight:500;
    color:#0f172a;
    transition:border-color .15s,box-shadow .15s;
    -moz-appearance:textfield;
    background:#fff;
}
.nb-qty-input::-webkit-outer-spin-button,
.nb-qty-input::-webkit-inner-spin-button{-webkit-appearance:none}
.nb-qty-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.nb-qty-input.has-qty{border-color:#2563eb;background:#eff6ff;font-weight:700}
.nb-cell-price{font-size:10px;color:#94a3b8}

.nb-cell-stock{font-size:10px;line-height:1;color:#16a34a;font-weight:600}
.nb-cell-stock.zero{color:#dc2626}
.nb-cell-qty.outofstock{background:#fff7ed;color:#9a3412}
.nb-cell-qty.outofstock .nb-qty-input{background:#f8fafc;color:#94a3b8;cursor:not-allowed}

.nb-cell-row-total{
    padding:8px 10px;
    text-align:center;
    font-weight:600;
    background:#f0f9ff;
    color:#0369a1;
    font-size:13px;
}
.nb-row-price-total{color:#16a34a}

.nb-grid-footer-row td{
    padding:10px;
    background:#f8fafc;
    border-top:2px solid #e2e8f0;
    font-weight:700;
    text-align:center;
    font-size:13px;
    color:#0f172a;
}
.nb-grid-footer-row td:first-child{text-align:left;padding-left:16px}
.nb-grand-qty,.nb-grand-price{background:#dbeafe;color:#1d4ed8}

/* Stampa section */
.nb-grid-stampa{
    padding:16px 18px;
    border-top:1px solid #e2e8f0;
    background:#f8fafc;
}
.nb-grid-stampa-title{
    display:flex;align-items:center;gap:8px;
    font-size:14px;font-weight:600;color:#0f172a;
    margin-bottom:12px;
}
.nb-grid-tier-badge{
    background:#2563eb;color:#fff;
    font-size:11px;font-weight:600;
    border-radius:4px;padding:2px 8px;
    margin-left:auto;
}
.nb-grid-tier-badge.large{background:#16a34a}

.nb-grid-stampa-options{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
    gap:8px;
}
.nb-grid-stopt{
    display:flex;align-items:center;
    border:1.5px solid #e2e8f0;
    border-radius:9px;padding:9px 13px;
    cursor:pointer;gap:8px;
    background:#fff;
    transition:border-color .15s,background .15s;
    user-select:none;
}
.nb-grid-stopt input{display:none}
.nb-grid-stopt:hover{border-color:#93c5fd;background:#f8fafc}
.nb-grid-stopt.on{border-color:#2563eb;background:#eff6ff}
.nb-stopt-label{font-size:12px;font-weight:500;color:#0f172a;flex:1}
.nb-stopt-price{font-size:12px;font-weight:600;color:#2563eb;white-space:nowrap}
.nb-grid-stopt.on .nb-stopt-price{color:#fff;background:#2563eb;border-radius:20px;padding:1px 8px}
.nb-grid-stopt[data-key="nessuna"] .nb-stopt-price{color:#64748b}

.nb-grid-stampa-summary{
    margin-top:10px;font-size:12px;color:#475569;
    min-height:18px;
}

/* Summary bar */
.nb-grid-summary{
    display:flex;align-items:center;gap:0;
    padding:14px 18px;
    border-top:1px solid #e2e8f0;
    background:#f0fdf4;
}
.nb-summary-row{
    display:flex;align-items:center;gap:24px;flex-wrap:wrap;width:100%;
}
.nb-summary-label{font-size:12px;color:#64748b;margin-right:4px}
.nb-summary-row>div{font-size:13px;color:#0f172a}
.nb-summary-total{
    margin-left:auto;
    font-size:15px;font-weight:700;color:#166534;
    background:#dcfce7;border:1px solid #bbf7d0;
    border-radius:8px;padding:5px 14px;
}

.nb-btn-add-to-cart{
    margin-left:16px;
    display:inline-flex;align-items:center;gap:6px;
    padding:10px 20px;
    background:#2563eb;color:#fff;
    border:none;border-radius:9px;
    font-size:14px;font-weight:600;cursor:pointer;
    box-shadow:0 2px 8px rgba(37,99,235,.3);
    transition:background .15s,transform .1s;
    white-space:nowrap;flex-shrink:0;
}
.nb-btn-add-to-cart:hover{background:#1d4ed8}
.nb-btn-add-to-cart:active{transform:scale(.97)}
.nb-btn-add-to-cart:disabled{opacity:.5;cursor:not-allowed}

.nb-grid-feedback{
    display:none;
    margin-top:10px;
    padding:10px 14px;
    border-radius:8px;
    font-size:13px;
    font-weight:500;
}
.nb-grid-feedback.ok{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}
.nb-grid-feedback.err{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}

@media(max-width:640px){
    .nb-summary-row{gap:10px}
    .nb-summary-total{margin-left:0;width:100%}
    .nb-btn-add-to-cart{margin-left:0;width:100%;justify-content:center}
}
