
.avania-quote-modal{ position:fixed !important; inset:0 !important; z-index:999999 !important; display:none !important; }
.avania-quote-modal.open{ display:block !important; }
.avania-quote-backdrop{ position:absolute !important; inset:0 !important; background:rgba(0,0,0,.55) !important; }
.avania-quote-dialog{
  position:relative !important;
  margin: 4vh auto !important;
  max-width: 920px !important;
  width: min(920px, calc(100% - 28px)) !important;
  background:#fff !important;
  border-radius:14px !important;
  box-shadow: 0 15px 60px rgba(0,0,0,.25) !important;
  overflow:hidden !important;
}
.avania-quote-btn-wrap{ margin:12px 0 0; }

.avania-quote-header{ padding:18px 18px 0; }
.avania-quote-header h3{ margin:0 0 6px; }
.avania-quote-sub{ margin:0 0 12px; opacity:.8; font-size:13px; }
.avania-quote-body{ padding: 10px 18px 0; max-height: 72vh; overflow:auto; }
.avania-quote-footer{ display:flex; justify-content:space-between; gap:10px; padding: 16px 18px 18px; background:#fafafa; border-top:1px solid #eee; }
.avania-quote-close{
  position:absolute; top:10px; right:12px;
  width:36px; height:36px; border-radius:10px;
  border:1px solid #eee; background:#fff;
  font-size:22px; line-height:32px; cursor:pointer;
}
.avania-quote-step{ display:none; padding-bottom: 16px; }
.avania-quote-step h4{ margin: 10px 0 10px; }

.avania-table-wrap{ overflow:auto; border:1px solid #eee; border-radius:12px; }
.avania-quote-table{ width:100%; border-collapse:collapse; font-size:14px; min-width: 620px; }
.avania-quote-table th, .avania-quote-table td{ padding:10px 12px; border-bottom:1px solid #eee; text-align:left; }
.avania-quote-table th{ background:#fafafa; position:sticky; top:0; z-index:1; }
.avania-quote-table td.qty{ width: 160px; }
.avania-quote-table input[type="number"]{ width: 100px; padding: 6px 8px; }

.avania-quote-total{ display:flex; justify-content:flex-end; padding: 10px 2px 0; font-size:14px; }

.avania-field{ display:block; margin: 10px 0; }
.avania-field > span{ display:block; font-size:13px; margin-bottom:6px; opacity:.9; }
.avania-field input[type="text"],
.avania-field input[type="file"],
.avania-field select,
.avania-field textarea{
  width:100%;
  padding: 9px 10px;
  border: 1px solid #ddd;
  border-radius: 10px;
  font-size:14px;
}

.avania-check span{ display:flex; gap:10px; align-items:center; }

.avania-quote-pricebox{
  border:1px solid #eee;
  border-radius:12px;
  padding: 12px;
  background:#fcfcfc;
  display:grid;
  gap:6px;
}
.avania-quote-estimate{
  border:1px dashed #e0e0e0;
  border-radius:12px;
  padding: 12px;
  margin-top: 12px;
  background:#fff;
}
.avania-quote-estimate .row{ display:flex; justify-content:space-between; padding: 6px 0; }
.avania-quote-estimate .row.total{ border-top:1px solid #eee; margin-top: 6px; padding-top: 10px; font-size:16px; }
.avania-quote-estimate small{ display:block; margin-top: 8px; font-size:12px; opacity:.75; }

.avania-quote-toast{
  position:absolute; left:18px; bottom:78px;
  background:#111; color:#fff;
  padding:10px 12px; border-radius:12px;
  opacity:0; transform: translateY(10px);
  transition:.2s;
  max-width: calc(100% - 36px);
  font-size:13px;
}
.avania-quote-toast.show{ opacity:1; transform: translateY(0); }
.avania-quote-toast.ok{ background:#0b7a3b; }
.avania-quote-toast.err{ background:#b00020; }

body.avania-quote-open-body{ overflow:hidden !important; }

/* Matrix enhancements */
.avania-quote-matrix td.cell{ text-align:center; }
.avania-quote-matrix td.cell input[type="number"]{ width: 82px; text-align:center; }
.avania-quote-matrix td.empty{ color:#999; text-align:center; }
.avania-quote-matrix .sticky-col{
  position: sticky;
  left: 0;
  background: #fff;
  z-index: 2;
  border-right: 1px solid #eee;
}
.avania-quote-matrix thead .sticky-col{ background:#fafafa; z-index:3; }


/* Informative-only native variation UI */
.avania-disabled{ opacity:1; color:inherit; background:inherit; cursor:not-allowed; }
form.cart .avania-informative{ pointer-events:none; opacity:.75; }
.avania-variation-info{
  margin: 10px 0 14px;
  padding: 10px 12px;
  border: 1px dashed #e0e0e0;
  border-radius: 12px;
  font-size: 13px;
  opacity: .85;
}

/* Generic: hide any file upload row inside Elementor add-to-cart widget */
.elementor-widget-woocommerce-product-add-to-cart input[type="file"]{
  display:none !important;
}

/* Hide CodeDropz upload field in native product form (informative mode) */

form.cart .codedropz-upload-handler.wc-upload-wrap,
.elementor-widget-woocommerce-product-add-to-cart .codedropz-upload-handler.wc-upload-wrap{
  display:none !important;
}

/* Cosmetic: keep variation labels readable even when selects disabled */
form.cart .variations th.label, form.cart .variations td.label{ opacity:1 !important; }

/* Extra: hide CodeDropz helper texts in native form */
form.cart .codedropz-upload-handler .codedropz-label,
form.cart .codedropz-upload-handler .dnd-upload-counter{
  display:none !important;
}


/* Mobile fix: keep footer buttons always visible in modal */
.avania-quote-dialog{
  display:flex;
  flex-direction:column;
  max-height: calc(100vh - 24px);
}
.avania-quote-body{
  overflow:auto;
  -webkit-overflow-scrolling: touch;
  flex: 1 1 auto;
  padding-bottom: 84px; /* space so content never hides behind footer */
}
.avania-quote-footer{
  position: sticky;
  bottom: 0;
  z-index: 10;
  background: #fff;
  border-top: 1px solid rgba(0,0,0,.06);
  padding-bottom: max(14px, env(safe-area-inset-bottom));
}

@media (max-width: 520px){
  .avania-quote-dialog{
    width: calc(100vw - 16px);
    margin: 8px;
    border-radius: 16px;
  }
}
