/* =========================================================================
   СМЕТА НА МОНТАЖ — калькулятор стоимости монтажных работ + подбор
   оборудования из прайс-листа. Стилизовано под общий светлый стиль сайта
   (см. assets/styles.css), только для страницы calculator.html.
   ========================================================================= */

.estimate-intro{margin-bottom:20px;}

.estimate-disclaimer{
  display:flex;gap:10px;align-items:flex-start;
  background:#fdeeea;border:1.5px solid #f2b3b0;border-left:5px solid var(--coral-dark);
  border-radius:12px;padding:16px 20px;margin-bottom:32px;
  font-size:14.5px;font-weight:600;color:#7a2116;line-height:1.6;
  box-shadow:0 2px 10px rgba(196,31,66,.10);
}
.estimate-disclaimer strong{color:#5c1710;}

.estimate-wrap{
  display:grid;grid-template-columns:380px 1fr;gap:30px;align-items:start;
}
@media(max-width:960px){
  .estimate-wrap{grid-template-columns:1fr;}
  /* На мобильном чек-смета переносится в конец — после выбора оборудования
     из прайс-листа, чтобы сначала шла форма, а итоговый чек со всеми
     ценами показывался последним разделом. */
  .receipt{order:2;}
  .eform{order:1;}
}

/* ── чек-смета ── */
.receipt{position:sticky;top:88px;}
@media(max-width:960px){.receipt{position:static;}}

.paper{
  background:var(--card);color:var(--text);
  border-radius:var(--radius) var(--radius) 0 0;
  padding:24px 24px 20px;
  box-shadow:0 18px 40px rgba(20,30,50,.12);
  border:1px solid var(--line);
  position:relative;
}
.paper::before{
  content:'';position:absolute;left:0;right:0;top:-7px;height:14px;
  background:radial-gradient(circle at 8px 7px,transparent 5px,var(--card) 5.5px);
  background-size:16px 14px;
}
.phead{
  display:flex;justify-content:space-between;align-items:flex-start;
  border-bottom:2.5px solid var(--text);padding-bottom:12px;margin-bottom:14px;
}
.phead .t{font-size:20px;font-weight:800;letter-spacing:1px;font-family:var(--font-display);}
.phead .n{font-size:11.5px;color:var(--text-soft);text-align:right;line-height:1.5;white-space:nowrap;}
.pgroup{font-size:11px;font-weight:700;letter-spacing:1.5px;color:var(--text-soft);text-transform:uppercase;margin:16px 0 6px;}
.row{display:flex;gap:12px;align-items:baseline;padding:7px 0;font-size:14px;}
.row.hidden{display:none;}
.row .nm{flex:1;min-width:0;}
.row .nm b{font-weight:600;}
.row .nm small{display:block;font-size:11.5px;color:var(--text-soft);margin-top:1px;}
.row .pr{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;}
.row.sub{border-top:1.5px dashed var(--line);margin-top:4px;padding-top:9px;}
.row.sub .pr{color:var(--accent-text);}
.tear{
  height:14px;
  background:
    linear-gradient(-45deg,transparent 8px,var(--card) 0) 0 0/16px 16px repeat-x,
    linear-gradient(45deg,transparent 8px,var(--card) 0) 8px 0/16px 16px repeat-x;
}
.totalrow{display:flex;justify-content:space-between;align-items:baseline;padding:4px 2px 14px;}
.totalrow span{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--text-soft);}
#estTotalVal{font-size:30px;font-weight:800;color:var(--text);transition:color .3s;}
.totalrow.bump #estTotalVal{animation:estBump .35s ease;}
@keyframes estBump{45%{transform:scale(1.04);color:var(--coral-dark);}}
.pmeta{
  display:flex;justify-content:space-between;align-items:flex-end;
  border-top:1px solid var(--line);padding-top:12px;margin-top:4px;
}
.pmeta .l{font-size:11px;color:var(--text-soft);line-height:1.55;}
.barcode{width:112px;}
.bars{height:32px;background:repeating-linear-gradient(90deg,#1C2229 0 2px,transparent 2px 4px,#1C2229 4px 7px,transparent 7px 8px,#1C2229 8px 9px,transparent 9px 12px);opacity:.85;}
.bnum{font-size:10px;letter-spacing:3px;text-align:center;color:var(--text-soft);margin-top:3px;}
.rbtns{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;}
.rbtns .btn,.rbtns .mini-btn{flex:1;min-width:130px;text-align:center;}
.estmail{width:100%;margin-top:10px;text-align:center;}
.pfoot{font-size:10.5px;color:var(--text-soft);text-align:center;margin-top:12px;}

/* ── группы формы ── */
.egroup{
  background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px;margin-bottom:20px;box-shadow:0 1px 3px rgba(20,30,50,.04);
}
.eghead{display:flex;align-items:center;gap:12px;margin-bottom:6px;flex-wrap:wrap;}
.eidx{
  width:30px;height:30px;border-radius:9px;display:grid;place-items:center;
  font-weight:800;font-size:13px;color:#1a1204;flex:0 0 auto;background:var(--accent);
}
.egroup.eb .eidx{background:var(--coral-dark);color:#fff;}
.egroup.ec .eidx{background:var(--green);color:#fff;}
.eghead h3{font-size:14px;font-weight:700;letter-spacing:1px;text-transform:uppercase;}
.esum{
  margin-left:auto;font-size:13px;font-weight:700;color:var(--text-soft);
  background:#f2f5f9;border:1px solid var(--line);border-radius:8px;padding:6px 11px;
  transition:color .25s;white-space:nowrap;
}
.esum.hot{color:var(--accent-text);}
.egroup.eb .esum.hot{color:var(--coral-dark);}
.egroup.ec .esum.hot{color:var(--green);}

.efield{
  display:flex;justify-content:space-between;align-items:center;gap:18px;
  padding:16px 0;border-top:1px dashed var(--line);flex-wrap:wrap;
}
.efield:first-of-type{border-top:none;}
.efname{font-size:15px;font-weight:600;}
.efprice{font-size:13px;font-weight:600;color:var(--accent-text);margin-top:3px;}
.egroup.eb .efprice{color:var(--coral-dark);}
.egroup.ec .efprice{color:var(--green);}
.efhint{font-size:12px;color:var(--text-soft);margin-top:3px;}
.efsync{min-height:15px;}
.efsync .synclink{
  background:none;border:none;padding:0;margin:0;font:inherit;
  color:var(--accent-text);text-decoration:underline;cursor:pointer;font-weight:600;
}
.efsync .synclink:hover{color:var(--text);}

.estep{display:flex;align-items:center;gap:8px;}
.estep button{
  width:40px;height:40px;border-radius:10px;border:1px solid var(--line);
  background:#f6f8fb;color:var(--text);font-size:19px;cursor:pointer;transition:.15s;
}
.estep button:hover{border-color:var(--accent);color:var(--accent-text);}
.estep .enum{min-width:56px;text-align:center;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;}

.echips{display:flex;gap:8px;flex-wrap:wrap;}
.echip{
  border:1px solid var(--line);padding:8px 15px;border-radius:8px;background:#f6f8fb;
  color:var(--text-soft);font-size:13px;font-weight:600;cursor:pointer;transition:.15s;
}
.echip:hover{border-color:var(--accent);color:var(--accent-text);}
.echip.on{background:var(--accent);border-color:var(--accent);color:#1a1204;}

.eswitch{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;user-select:none;}
.eswitch input{position:absolute;opacity:0;width:0;}
.etrack{width:44px;height:25px;border-radius:20px;background:var(--line);position:relative;transition:.2s;flex:0 0 auto;}
.etrack::after{content:'';position:absolute;width:19px;height:19px;border-radius:50%;background:#fff;top:3px;left:3px;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2);}
.eswitch input:checked+.etrack{background:var(--accent);}
.eswitch input:checked+.etrack::after{left:22px;}

.efield.eblock{flex-direction:column;align-items:stretch;}
.edistline{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;}
.emval{font-size:18px;font-weight:700;color:var(--coral-dark);}
input[type=range].erange{
  -webkit-appearance:none;appearance:none;width:100%;height:7px;border-radius:6px;
  background:var(--line);outline:none;margin:14px 0 8px;cursor:pointer;
}
input[type=range].erange::-webkit-slider-thumb{
  -webkit-appearance:none;width:19px;height:19px;border-radius:50%;background:var(--coral);
  border:3px solid #fff;box-shadow:0 0 0 1px var(--line),0 2px 6px rgba(0,0,0,.2);
}
input[type=range].erange::-moz-range-thumb{
  width:15px;height:15px;border-radius:50%;background:var(--coral);border:3px solid #fff;
  box-shadow:0 0 0 1px var(--line);
}
.escale{display:flex;justify-content:space-between;font-size:11px;color:var(--text-soft);}
.edistin{display:flex;align-items:center;gap:6px;}
.edistin input{
  width:64px;background:#f6f8fb;border:1.5px solid var(--line);border-radius:9px;
  color:var(--text);font-size:15px;font-weight:700;text-align:center;padding:8px 4px;
}
.edistin input:focus{outline:none;border-color:var(--accent);}
.edistin em{font-style:normal;font-size:12px;color:var(--text-soft);}

/* ── подбор оборудования из прайс-листа ── */
.epicker-status{font-size:13px;color:var(--text-soft);margin-bottom:14px;}
.epicker-tools{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.epicker-search{
  flex:1;min-width:160px;padding:10px 14px;border:1.5px solid var(--line);border-radius:8px;
  font-size:14px;font-family:inherit;color:var(--text);background:#fff;
}
.epicker-search:focus{outline:none;border-color:var(--accent);}
.epicker-tabs{display:flex;gap:8px;flex-wrap:wrap;}
.epicker-tab{
  border:1px solid var(--line);padding:8px 14px;border-radius:999px;background:#f6f8fb;
  color:var(--text-soft);font-size:13px;font-weight:600;cursor:pointer;transition:.15s;
}
.epicker-tab:hover{border-color:var(--green);color:var(--green);}
.epicker-tab.on{background:var(--green);border-color:var(--green);color:#fff;}

.epicker-list{border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.epicker-item{
  display:flex;align-items:center;gap:14px;padding:13px 16px;
  border-top:1px solid var(--line);background:#fff;flex-wrap:wrap;
}
.epicker-item:first-child{border-top:none;}
.epicker-item.in-cart{background:#eef8e4;}
.epicker-name{flex:1;min-width:160px;font-size:14.5px;font-weight:600;}
.epicker-cat{display:block;font-size:11.5px;color:var(--text-soft);font-weight:500;margin-top:2px;}
.epicker-price{font-size:14px;font-weight:700;color:var(--green);white-space:nowrap;}
.epicker-empty,.epicker-error{padding:26px 16px;text-align:center;color:var(--text-soft);font-size:14px;}
.epicker-error{color:var(--coral-dark);}

.esplit{background:#f6f8fb;border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px;margin-bottom:20px;}
.esplabel{font-size:10.5px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--text-soft);margin-bottom:10px;}
.esbar{display:flex;height:10px;border-radius:6px;overflow:hidden;background:var(--line);}
#estSegA{background:var(--accent);width:33.3%;transition:width .5s cubic-bezier(.4,0,.2,1);}
#estSegB{background:var(--coral);width:33.3%;transition:width .5s cubic-bezier(.4,0,.2,1);}
#estSegC{background:var(--green);width:33.4%;transition:width .5s cubic-bezier(.4,0,.2,1);}
.eslegend{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:10px;font-size:12.5px;color:var(--text-soft);}
.eslegend b{color:var(--text);}
.edotA,.edotB,.edotC{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;}
.edotA{background:var(--accent);}
.edotB{background:var(--coral);}
.edotC{background:var(--green);}

.enote{
  display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--text-soft);line-height:1.6;
  margin-top:4px;padding:13px 16px;border-left:3px solid var(--accent);
  background:#fff8ec;border-radius:0 10px 10px 0;
}

.etoast{
  position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);
  background:var(--bg);border:1px solid var(--coral);color:#fff;padding:12px 22px;
  border-radius:10px;font-size:14px;opacity:0;pointer-events:none;transition:.3s;z-index:120;
  max-width:min(92vw,440px);text-align:center;line-height:1.45;
}
.etoast.show{opacity:1;transform:translate(-50%,0);}

@media print{
  header,.floating-actions,footer,#calculator,.page-hero,.rbtns{display:none!important;}
  .estimate-wrap{display:block;}
  .paper{box-shadow:none;border-radius:0;border:none;}
}
@media(prefers-reduced-motion:reduce){
  .totalrow.bump #estTotalVal{animation:none;}
}
