/* Commercial-proposal (КП) generator section — scoped to #kp, matches spetsprilad landing (white, Montserrat, accent #f9004d) */
#kp{ --kp-accent:#f9004d; --kp-accent2:#d0003f; --kp-line:#e7e7ee; --kp-muted:#717173; --kp-text:#1f1f25; --kp-field-border:#dcdce4; }
#kp .section-title .description{ max-width:640px !important; width:auto !important; padding-left:0 !important; padding-right:0 !important; margin-left:auto !important; margin-right:auto !important; }
#kp .kp-wrap{ max-width:900px; margin:0 auto; }
#kp .kp-card{ background:#fff; border:1px solid var(--kp-line); border-radius:14px; padding:30px; box-shadow:0 14px 40px rgba(20,20,40,.07); }
#kp label{ display:block; font-size:13px; color:var(--kp-muted); margin-bottom:6px; font-weight:500; }
#kp .kp-field{ margin-bottom:18px; }
#kp input[type=text], #kp input[type=number]{ width:100%; padding:11px 12px; background:#fff; border:1px solid var(--kp-field-border); border-radius:9px; color:var(--kp-text); font-size:15px; font-family:inherit; }
#kp input:focus{ outline:none; border-color:var(--kp-accent); box-shadow:0 0 0 3px rgba(249,0,77,.08); }
#kp table.kp-items{ width:100%; border-collapse:collapse; margin-top:6px; }
#kp table.kp-items th{ text-align:left; font-size:12px; color:var(--kp-muted); font-weight:600; padding:8px; border-bottom:1px solid var(--kp-line); }
#kp table.kp-items td{ padding:6px 8px; vertical-align:middle; border-bottom:1px solid var(--kp-line); }
#kp .kp-sum{ font-weight:600; white-space:nowrap; color:var(--kp-text); }
#kp .kp-col-idx{ width:34px; color:var(--kp-muted); text-align:center; }
#kp .kp-col-qty{ width:100px; } #kp .kp-col-price{ width:140px; } #kp .kp-col-sum{ width:140px; } #kp .kp-col-del{ width:38px; text-align:center; }
#kp .kp-btn{ display:inline-flex; align-items:center; gap:8px; cursor:pointer; border:none; border-radius:9px; padding:12px 20px; font-weight:600; font-size:15px; font-family:inherit; line-height:1.2; }
#kp .kp-btn-ghost{ background:transparent; border:1px dashed var(--kp-line); color:var(--kp-muted); margin-top:14px; }
#kp .kp-btn-ghost:hover{ border-color:var(--kp-accent); color:var(--kp-text); }
#kp .kp-btn-del{ background:transparent; color:#c0556a; border:none; font-size:20px; cursor:pointer; padding:2px 6px; line-height:1; }
#kp .kp-btn-primary{ background:var(--kp-accent); color:#fff; padding:14px 28px; font-size:16px; }
#kp .kp-btn-primary:hover{ background:var(--kp-accent2); }
#kp .kp-btn-primary:disabled{ opacity:.6; cursor:default; }
#kp .kp-total-row{ display:flex; justify-content:flex-end; align-items:center; gap:14px; margin-top:20px; font-size:18px; color:var(--kp-text); }
#kp .kp-total-row b{ font-size:23px; color:var(--kp-accent); }
#kp .kp-actions{ display:flex; justify-content:space-between; align-items:center; margin-top:26px; flex-wrap:wrap; gap:14px; }
#kp .kp-hint{ color:var(--kp-muted); font-size:13px; max-width:440px; }
#kp .kp-status{ font-size:14px; margin-top:14px; min-height:20px; }
#kp .kp-status.kp-ok{ color:#1c8a4b; }
#kp .kp-status.kp-err{ color:#c0392b; }
@media (max-width:575px){
  #kp .kp-card{ padding:16px; }
  #kp .kp-actions{ justify-content:center; text-align:center; }
  #kp .kp-hint{ max-width:none; }
  /* turn the table into stacked cards: hide header, each row = a labeled card */
  #kp table.kp-items thead{ display:none; }
  #kp table.kp-items, #kp table.kp-items tbody{ display:block; width:100%; }
  #kp table.kp-items tr{ display:block; position:relative; border:1px solid var(--kp-line); border-radius:11px; padding:22px 12px 10px; margin-bottom:12px; }
  #kp table.kp-items td{ display:flex; align-items:center; justify-content:space-between; gap:12px; border:none; padding:7px 0; }
  #kp table.kp-items td::before{ content:attr(data-label); color:var(--kp-muted); font-size:12px; font-weight:600; flex:1 1 auto; white-space:nowrap; }
  #kp table.kp-items td.kp-col-name{ display:block; }
  #kp table.kp-items td.kp-col-name::before{ display:block; margin-bottom:5px; white-space:normal; }
  #kp .kp-col-name input{ width:100%; }
  #kp .kp-col-qty input, #kp .kp-col-price input{ flex:0 0 140px; width:140px; text-align:right; }
  #kp .kp-col-sum .kp-sum{ font-size:15px; }
  #kp table.kp-items td.kp-col-idx{ position:absolute; top:-11px; left:12px; display:block; width:auto; padding:2px 11px; background:var(--kp-accent); color:#fff; border-radius:20px; font-size:11px; font-weight:700; line-height:1.5; }
  #kp table.kp-items td.kp-col-idx::before{ content:'№ '; }
  #kp table.kp-items td.kp-col-del{ position:absolute; top:6px; right:8px; display:block; width:auto; padding:0; }
  #kp table.kp-items td.kp-col-del::before{ content:none; }
  #kp .kp-total-row{ flex-direction:column; align-items:center; gap:4px; text-align:center; margin-top:8px; font-size:16px; }
  #kp .kp-total-row b{ font-size:24px; }
}

/* ===== Catalogue picker (button lives in #kp, modal is appended to <body>) ===== */
#kp .kp-btn-pick{ margin-right:10px; border-style:solid; border-color:var(--kp-line); color:var(--kp-text); }
#kp .kp-btn-pick:hover{ border-color:var(--kp-accent); color:var(--kp-accent); }

.kp-modal{ position:fixed; inset:0; z-index:99999; display:none; font-family:'Montserrat','Segoe UI',Arial,sans-serif; }
.kp-modal.kp-modal-open{ display:block; }
body.kp-modal-lock{ overflow:hidden; }
.kp-modal-backdrop{ position:absolute; inset:0; background:rgba(16,16,24,.55); backdrop-filter:blur(2px); }
.kp-modal-box{ position:relative; margin:5vh auto; width:min(720px,94vw); max-height:90vh; display:flex; flex-direction:column;
  background:#fff; border-radius:14px; box-shadow:0 24px 70px rgba(10,10,30,.35); overflow:hidden; }
.kp-modal-head{ display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid #e7e7ee; font-size:17px; color:#1f1f25; }
.kp-modal-x{ background:none; border:none; font-size:26px; line-height:1; cursor:pointer; color:#8a8a92; padding:0 4px; }
.kp-modal-x:hover{ color:#f9004d; }
.kp-modal-search{ padding:14px 20px 10px; }
.kp-modal-search input{ width:100%; padding:11px 12px; border:1px solid #dcdce4; border-radius:9px; font-size:15px; font-family:inherit; color:#1f1f25; background:#fff; }
.kp-modal-search input:focus{ outline:none; border-color:#f9004d; box-shadow:0 0 0 3px rgba(249,0,77,.08); }
.kp-modal-list{ flex:1 1 auto; overflow-y:auto; padding:4px 12px 8px; }
.kp-pick-row{ display:flex; align-items:center; gap:12px; padding:11px 8px; border-radius:10px; border:1px solid transparent; cursor:pointer; }
.kp-pick-row:hover{ background:#f7f7fb; }
.kp-pick-row.kp-pick-on{ background:rgba(249,0,77,.05); border-color:rgba(249,0,77,.35); }
.kp-pick-main{ flex:1 1 auto; min-width:0; }
.kp-pick-name{ font-size:14.5px; color:#1f1f25; line-height:1.35; }
.kp-pick-cat{ font-size:12px; color:#8a8a92; margin-top:2px; }
.kp-pick-price{ flex:0 0 auto; font-weight:600; font-size:14px; color:#1f1f25; white-space:nowrap; }
.kp-pick-qty{ flex:0 0 auto; display:flex; align-items:center; gap:4px; }
.kp-pick-qty button{ width:28px; height:28px; border:1px solid #dcdce4; background:#fff; border-radius:7px; cursor:pointer; font-size:16px; line-height:1; color:#5a5a63; }
.kp-pick-qty button:hover{ border-color:#f9004d; color:#f9004d; }
.kp-pick-input{ width:56px; height:28px; text-align:center; border:1px solid #dcdce4; border-radius:7px; font-size:14px; font-family:inherit; color:#1f1f25; background:#fff; }
.kp-pick-input:focus{ outline:none; border-color:#f9004d; }
.kp-pick-empty{ padding:28px 10px; text-align:center; color:#8a8a92; font-size:14px; }
.kp-modal-foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 20px; border-top:1px solid #e7e7ee; }
.kp-modal-count{ font-size:13px; color:#717173; }
.kp-modal-foot .kp-btn{ display:inline-flex; align-items:center; cursor:pointer; border:none; border-radius:9px; padding:12px 22px; font-weight:600; font-size:15px; font-family:inherit; background:#f9004d; color:#fff; }
.kp-modal-foot .kp-btn:hover{ background:#d0003f; }
@media (max-width:575px){
  .kp-modal-box{ margin:0; width:100vw; max-height:100vh; height:100vh; border-radius:0; }
  .kp-pick-row{ flex-wrap:wrap; gap:8px; }
  .kp-pick-main{ flex:1 1 100%; }
  .kp-pick-price{ flex:1 1 auto; }
  #kp .kp-btn-pick{ margin-right:0; width:100%; justify-content:center; }
}

/* ===== Dark theme (site switcher adds body.active-dark-mode) ===== */
body.active-dark-mode #kp .kp-card{ background:#1d1d24; border-color:rgba(255,255,255,.09); box-shadow:0 14px 40px rgba(0,0,0,.4); }
body.active-dark-mode #kp label{ color:#a7abb4; }
body.active-dark-mode #kp input[type=text], body.active-dark-mode #kp input[type=number]{ background:#14141b; border-color:#33343d; color:#f2f4f7; }
body.active-dark-mode #kp input::placeholder{ color:#6c6f77; }
body.active-dark-mode #kp input:focus{ border-color:var(--kp-accent); box-shadow:0 0 0 3px rgba(249,0,77,.18); }
body.active-dark-mode #kp table.kp-items th{ color:#a7abb4; border-bottom-color:rgba(255,255,255,.1); }
body.active-dark-mode #kp table.kp-items td{ border-bottom-color:rgba(255,255,255,.08); }
body.active-dark-mode #kp .kp-sum{ color:#f2f4f7; }
body.active-dark-mode #kp .kp-total-row{ color:#f2f4f7; }
body.active-dark-mode #kp .kp-hint{ color:#9a9ea7; }
body.active-dark-mode #kp .kp-btn-ghost{ border-color:rgba(255,255,255,.18); color:#a7abb4; }
body.active-dark-mode #kp .kp-btn-ghost:hover{ border-color:var(--kp-accent); color:#fff; }
body.active-dark-mode #kp .kp-status.kp-ok{ color:#4bd07f; }
/* mobile stacked-card variant in dark */
body.active-dark-mode #kp table.kp-items tr{ border-color:rgba(255,255,255,.1); }
body.active-dark-mode #kp table.kp-items td::before{ color:#a7abb4; }
/* catalogue picker in dark */
body.active-dark-mode #kp .kp-btn-pick{ border-color:rgba(255,255,255,.18); color:#dfe2e8; }
body.active-dark-mode .kp-modal-box{ background:#1d1d24; box-shadow:0 24px 70px rgba(0,0,0,.6); }
body.active-dark-mode .kp-modal-head{ border-bottom-color:rgba(255,255,255,.09); color:#f2f4f7; }
body.active-dark-mode .kp-modal-search input,
body.active-dark-mode .kp-pick-input,
body.active-dark-mode .kp-pick-qty button{ background:#14141b; border-color:#33343d; color:#f2f4f7; }
body.active-dark-mode .kp-modal-search input::placeholder,
body.active-dark-mode .kp-pick-input::placeholder{ color:#6c6f77; }
body.active-dark-mode .kp-pick-row:hover{ background:#24242d; }
body.active-dark-mode .kp-pick-row.kp-pick-on{ background:rgba(249,0,77,.12); border-color:rgba(249,0,77,.45); }
body.active-dark-mode .kp-pick-name{ color:#f2f4f7; }
body.active-dark-mode .kp-pick-cat, body.active-dark-mode .kp-pick-empty, body.active-dark-mode .kp-modal-count{ color:#9a9ea7; }
body.active-dark-mode .kp-pick-price{ color:#f2f4f7; }
body.active-dark-mode .kp-modal-foot{ border-top-color:rgba(255,255,255,.09); }
