:root{--kpvc-gap:14px;--kpvc-radius:12px;--kpvc-border:#e5e7eb;--kpvc-bg:#ffffff;--kpvc-accent:#0ea5e9}

/* ===== Card/formular ===== */
.kpvc-card{max-width:860px;margin:24px auto;padding:22px;background:var(--kpvc-bg);border:1px solid var(--kpvc-border);border-radius:16px;box-shadow:0 2px 14px rgba(2,6,23,.06);font-family:inherit}
.kpvc-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.kpvc-logo{height:38px;width:auto;display:block}
.kpvc-contact{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.kpvc-contact a{font-size:13px;color:#0f172a;text-decoration:none}
.kpvc-contact a:hover{text-decoration:underline}
.kpvc-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--kpvc-gap)}
.kpvc-field{display:flex;flex-direction:column;gap:6px}
.kpvc-field label{font-weight:600;font-size:.95rem}
.kpvc-field input[type='text'],.kpvc-field input[type='email'],.kpvc-field input[type='number'],.kpvc-field select,.kpvc-field textarea{appearance:none;width:100%;border:1px solid var(--kpvc-border);border-radius:var(--kpvc-radius);padding:12px 14px;font-size:1rem;line-height:1.4;background:#fff}
.kpvc-field.readonly div{border:1px solid var(--kpvc-border);border-radius:var(--kpvc-radius);padding:12px 14px;background:#f8fafc}
.kpvc-amount{font-weight:700;font-size:1.1rem}
.kpvc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px}
.kpvc-actions .button{border-radius:999px;padding:10px 18px;font-weight:700;border:1px solid var(--kpvc-border);background:#fff;cursor:pointer}
.kpvc-actions .button-primary{background:var(--kpvc-accent);border-color:var(--kpvc-accent);color:#fff}
.kpvc-actions .button:disabled{opacity:.5;cursor:not-allowed}
.kpvc-msg{font-size:.95rem;color:#475569}
.kpvc-hint{font-size:.85rem;color:#475569}
.kpvc-visible-note{margin-top:8px;font-size:.9rem;color:#475569}
#kpvc-ral-wrap .kpvc-ral-inline{display:flex;gap:10px}
#kpvc-ral-wrap .kpvc-ral-inline input{flex:1}
.kpvc-ral-info{margin-top:6px;font-size:.95rem;font-weight:600}
.kpvc-ral-gallery{margin-top:8px;display:flex;gap:8px;flex-wrap:wrap}
.kpvc-ral-thumb{height:80px;border-radius:10px;border:1px solid var(--kpvc-border);box-shadow:0 1px 10px rgba(2,6,23,.06)}
.span-2{grid-column:1 / -1}

@media (max-width: 768px){
  .kpvc-card{padding:16px;border-radius:14px}
  .kpvc-grid{grid-template-columns:1fr;gap:12px}
  .kpvc-actions{flex-direction:column;align-items:stretch}
  .kpvc-actions .button{width:100%;padding:12px 18px}
  .kpvc-field label{font-size:1rem}
  .kpvc-field input[type='text'],.kpvc-field input[type='email'],.kpvc-field input[type='number'],.kpvc-field select,.kpvc-field textarea{font-size:16px}
}

/* ===== Row 3 (L, Wfix, T) ===== */
/* ✔ FIX 1/2: toate cele 3 coloane pot micșora uniform */
.kpvc-row-3{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr)); /* minmax(0,1fr) => permite shrink */
  gap:var(--kpvc-gap);
  align-items:stretch; /* întinde cutiile pe aceeași înălțime în rând */
}
.kpvc-row-3 > .kpvc-field{ min-width:0; } /* IMPORTANT: permite shrink conținut */

/* La telefoane foarte înguste, a treia casetă coboară pe rând nou */
@media (max-width: 360px){
  .kpvc-row-3{ grid-template-columns: 1fr 1fr; }
  .kpvc-row-3 > .kpvc-field:nth-child(3){ grid-column: 1 / -1; }
}

/* ===== Tooltip ===== */
.kpvc-tip{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--kpvc-border);font-size:.75rem;font-weight:700;margin-left:6px;cursor:help;position:relative}
.kpvc-tip::before{content:'?';line-height:18px}
.kpvc-tip::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);background:#111827;color:#fff;padding:8px 10px;border-radius:8px;white-space:nowrap;box-shadow:0 6px 18px rgba(2,6,23,.20);opacity:0;pointer-events:none;transition:opacity .15s ease}
.kpvc-tip:hover::after{opacity:1}

/* ===== RAL chip mic (formular) ===== */
.kpvc-ral-chip{display:inline-block;width:18px;height:18px;border-radius:4px;border:1px solid var(--kpvc-border);vertical-align:middle;margin-left:6px}

/* =========================================================
   RAL MODAL — 6 coloane, celule pătrate, text centrat
   ========================================================= */
.kpvc-ral-modal-backdrop{position:fixed;inset:0;background:rgba(2,6,23,.5);z-index:2147483646;display:none}
.kpvc-ral-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:2147483647}
/* shell modal (duplicat păstrat intenționat pt compat) */
.kpvc-ral-modal-backdrop{position:fixed;inset:0;background:rgba(2,6,23,.5);z-index:2147483646;display:none}
.kpvc-ral-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:2147483647}

/* FIX de înălțime stabilă */
.kpvc-ral-panel{
  position:relative;background:#fff;width:min(1100px,92vw);
  height:min(84vh,720px);
  border-radius:16px;border:1px solid var(--kpvc-border);box-shadow:0 30px 90px rgba(2,6,23,.12);
  overflow:hidden;display:flex;flex-direction:column
}
@supports (height: 1dvh){
  .kpvc-ral-panel{ height:min(84dvh,720px); }
}

/* Grid & scroll în panel */
.kpvc-ral-grid{
  padding:14px 16px;overflow:auto;flex:1 1 auto;min-height:0;
  overscroll-behavior:contain;
  scrollbar-gutter: stable both-edges;
}

/* Header — titlu + controale */
.kpvc-ral-head{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--kpvc-border);flex-wrap:wrap}
.kpvc-ral-head h3{margin:0;font-size:1.05rem;font-weight:800}
.kpvc-ral-search,.kpvc-ral-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end;flex:1}
.kpvc-ral-search input[type="text"],.kpvc-ral-controls input[type="text"]{border:1px solid var(--kpvc-border);border-radius:12px;padding:10px 12px;width:clamp(220px,40vw,520px)}
.kpvc-ral-search .kpvc-ral-stock,.kpvc-ral-controls .kpvc-ral-stock{display:flex;gap:6px;align-items:center;font-size:.95rem;white-space:nowrap}
.kpvc-ral-close{border-radius:10px;border:1px solid var(--kpvc-border);background:#ffea00;padding:10px 14px;font-weight:700;cursor:pointer}

/* Tablete */
@media (max-width:860px){
  .kpvc-ral-search,.kpvc-ral-controls{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;width:100%}
  .kpvc-ral-search input[type="text"],.kpvc-ral-controls input[type="text"]{width:100%}
}

/* Mobil: ascunde titlul din header, dar arată-l în footer */
@media (max-width:640px){ .kpvc-ral-head h3{display:none} .kpvc-ral-close{padding:10px 12px} }

/* Grid RAL */
.kpvc-ral-grid{padding:14px 16px;overflow:auto;flex:1;min-height:0;overscroll-behavior:contain;scrollbar-gutter:stable both-edges}
.kpvc-ral-grid-inner{display:grid;gap:12px;grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:1100px){.kpvc-ral-grid-inner{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:860px){ .kpvc-ral-grid-inner{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:640px){ .kpvc-ral-grid-inner{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* Footer cu titlul pe mobil */
.kpvc-ral-foot{display:none;padding:10px 16px;border-top:1px solid var(--kpvc-border)}
.kpvc-ral-title-mobile{font-size:.98rem;font-weight:800;text-align:center;color:#0f172a;margin:0}
@media (max-width:640px){ .kpvc-ral-foot{display:block} }

/* Item pătrat colorat */
.kpvc-ral-item{position:relative;display:block;width:100%;aspect-ratio:1/1;box-sizing:border-box;border-radius:14px;border:1px solid var(--kpvc-border);overflow:hidden;cursor:pointer;background:#f1f5f9;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.kpvc-ral-item:hover,.kpvc-ral-item:focus-visible{transform:translateY(-1px);border-color:rgba(2,6,23,.25);box-shadow:0 10px 28px rgba(2,6,23,.12);outline:none}
.kpvc-ral-meta{position:absolute;inset:0;padding:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;line-height:1.15}
.kpvc-ral-code{font-weight:800;font-size:1.16rem}
.kpvc-ral-name{font-weight:400;font-size:.9rem;opacity:.98}
.kpvc-ral-item:hover .kpvc-ral-code{text-decoration:underline}
.kpvc-badge{position:absolute;top:10px;right:10px;font-size:.72rem;padding:4px 9px;border-radius:999px;border:1px solid transparent;backdrop-filter:saturate(1.1)}
.kpvc-ral-item[data-fullbg="1"] .kpvc-ral-chip{display:none !important}

/* display compact lângă input (formular) */
.kpvc-ral-inline .kpvc-ral-display{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px dashed var(--kpvc-border);border-radius:10px;background:#f8fafc;margin:6px 0}
.kpvc-ral-inline .kpvc-ral-display .code{font-weight:700}
.kpvc-ral-inline .chip{width:18px;height:18px;border-radius:4px;border:1px solid var(--kpvc-border)}

/* ============================================
   Layout mobil „compact” pentru calculator
   ============================================ */
.kpvc-type-qty{ display: contents; }
.kpvc-dims,
.kpvc-res-areas,
.kpvc-res-prices{ grid-column: 1 / -1; }

@media (max-width: 768px){
  /* Tip (2/3) + Cantitate (1/3) pe același rând */
  .kpvc-type-qty{
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--kpvc-gap);
  }
  /* L + Wfix + T / arii / prețuri – 3 coloane */
  .kpvc-row-3.kpvc-dims,
  .kpvc-row-3.kpvc-res-areas,
  .kpvc-row-3.kpvc-res-prices{
    grid-template-columns: 2fr 2fr 1fr;
    gap: var(--kpvc-gap);
  }
}

/* Evidențiere Total estimat */
.kpvc-total-emph > .kpvc-field.readonly div{
  background:#fffbe6;
  border:1px solid #facc15;
  box-shadow:0 2px 10px rgba(250,204,21,.18);
}
.kpvc-total-emph #kpvc-total{
  font-weight:800;
  font-size:1.15rem;
}
.kpvc-field.readonly:has(#kpvc-total) div{
  background:#fffbe6;
  border:1px solid #facc15;
  box-shadow:0 2px 10px rgba(250,204,21,.18);
}
#kpvc-total{ font-weight:800; font-size:1.15rem; }

/* Scroll stop deasupra etichetelor (pentru focus/validare) */
.kpvc-field{ scroll-margin-top: 120px; }

/* Aliniere checkbox „Folosește dimensiune standard” */
.kpvc-std-inline{
  grid-column: 1 / -1;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-top: 4px;
}
.kpvc-std-label{ display:inline-flex; align-items:center; gap:8px; font-size:.98rem; }
@media (max-width: 992px){ .kpvc-std-inline{ justify-content: flex-start; } }

/* =========================
   FLUID TYPE + ALINIERE MOBIL
   ========================= */
.kpvc-card{
  --kpvc-gap: clamp(8px, 2.2vw, 14px);
  --kpvc-radius: 12px;
  --kpvc-fs-label:   clamp(11px, 2.6vw, 14px);
  --kpvc-fs-input:   clamp(13px, 3.5vw, 16px);
  --kpvc-fs-read:    clamp(13px, 3.3vw, 16px);
  --kpvc-fs-meta:    clamp(11px, 2.4vw, 13px);
}
.kpvc-field label{
  font-size: var(--kpvc-fs-label);
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.kpvc-field input[type='text'],
.kpvc-field input[type='email'],
.kpvc-field input[type='number'],
.kpvc-field select,
.kpvc-field textarea{
  font-size: var(--kpvc-fs-input);
  line-height: 1.25;
  padding: clamp(10px, 2.1vw, 12px) clamp(12px, 2.6vw, 14px);
  font-variant-numeric: tabular-nums;
}
.kpvc-field.readonly div{
  font-size: var(--kpvc-fs-read);
  line-height: 1.25;
  padding: clamp(10px, 2.1vw, 12px) clamp(12px, 2.6vw, 14px);
}
.kpvc-tip{ transform: scale(clamp(.85, 2vw, 1)); }
.kpvc-ral-inline .kpvc-ral-display{ font-size: var(--kpvc-fs-meta); }
.kpvc-std-label{ font-size: clamp(12px, 2.6vw, 14px); }
.kpvc-actions .button{
  font-size: clamp(13px, 3vw, 15px);
  padding: clamp(10px, 2.4vw, 12px) clamp(14px, 3.2vw, 18px);
}

/* --- FIX suplimentar pentru rândurile de rezultate (aria/prețuri) --- */
/* păstrăm elipsarea pe o linie, dar acum pot micșora pentru toate cele 3 coloane */
.kpvc-res-areas .kpvc-field.readonly div,
.kpvc-res-prices .kpvc-field.readonly div{
  display:flex;
  align-items:center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ✔ FIX 2/2: egalizare înălțime în același rând (label + valoare) */
.kpvc-row-3 .kpvc-field.readonly{
  display: grid;
  grid-template-rows: auto 1fr; /* label pe primul rând, valoarea umple restul */
}
.kpvc-row-3 .kpvc-field.readonly > div{
  height: 100%;
  display: flex;
  align-items: center;
}
/* === OVERRIDE: 3 coloane egale, flexibile (2fr 2fr 2fr) === */
.kpvc-row-3{
  grid-template-columns: repeat(3, minmax(0, 2fr));
}

/* pe mobil, și grupurile cu rezultate/dimensiuni rămân 3×egale */
@media (max-width: 768px){
  .kpvc-row-3.kpvc-dims,
  .kpvc-row-3.kpvc-res-areas,
  .kpvc-row-3.kpvc-res-prices{
    grid-template-columns: repeat(3, minmax(0, 2fr));
  }
}

/* asigură-te că fiecare celulă poate să se micșoreze */
.kpvc-row-3 > .kpvc-field{ min-width: 0; }

/* egalizează înălțimea (label + valoare) în același rând */
.kpvc-row-3 .kpvc-field.readonly{
  display: grid;
  grid-template-rows: auto 1fr;
}
.kpvc-row-3 .kpvc-field.readonly > div{
  height: 100%;
  display: flex;
  align-items: center;
}

/* fallback pentru ecrane foarte înguste */
@media (max-width: 360px){
  .kpvc-row-3{ grid-template-columns: 1fr 1fr; }
  .kpvc-row-3 > .kpvc-field:nth-child(3){ grid-column: 1 / -1; }
}
