/* Калькулятор веса, объёма и поставки труб ПЭ — все селекторы под .sv-ves */
.sv-ves{--ln:var(--line,#D6E1EB);--i2:var(--ink-2,#4A5560);--z:var(--blue-z,#F4F8FC);--or:var(--orange,#E07A1F);margin:18px 0 28px;font-family:var(--f);min-width:0}
.sv-ves *{box-sizing:border-box}
.sv-ves [hidden]{display:none!important}
.sv-ves__tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.sv-ves__tab{flex:1 1 auto;min-height:46px;padding:10px 14px;border:1px solid var(--ln);background:#fff;border-radius:10px;font:700 15px var(--f);color:var(--i2);cursor:pointer}
.sv-ves__tab.is-on{background:var(--blue);border-color:var(--blue);color:#fff}
.sv-ves__pane{border:1px solid var(--ln);border-radius:14px;padding:18px;background:#fff;min-width:0}
.sv-ves__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:10px}
.sv-ves__h{font-size:20px;margin:0}
.sv-ves__h3{font-size:17px;margin:18px 0 8px}
.sv-ves__ex{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sv-ves__chip{border:1px solid var(--ln);background:var(--z);border-radius:99px;padding:6px 12px;font:14px var(--f);color:var(--blue-d);cursor:pointer;min-height:36px}
.sv-ves__chip:hover{border-color:var(--blue)}
.sv-ves__rows{display:flex;flex-direction:column;gap:10px}
.sv-ves__row{border:1px solid var(--ln);border-left:4px solid var(--blue);border-radius:10px;padding:10px 12px 8px;margin:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr)) auto;gap:10px;align-items:end;min-width:0}
.sv-ves__row legend{font-size:13px;font-weight:700;color:var(--i2);padding:0 4px}
.sv-ves__row label,.sv-ves__grid3 label,.sv-ves__optgrid label{font-size:13px;min-width:0}
.sv-ves__row select,.sv-ves__row input,.sv-ves__grid3 select,.sv-ves__grid3 input,.sv-ves__optgrid input{min-height:46px;font-size:16px}
.sv-ves__qrow{display:flex;gap:4px}
.sv-ves__qrow input{flex:1 1 60%;min-width:0}
.sv-ves__qrow select{flex:0 0 64px;padding-left:8px;padding-right:4px}
.sv-ves__rowact{display:flex;gap:4px}
.sv-ves__ib{width:42px;height:46px;border:1px solid var(--ln);background:#fff;border-radius:8px;font-size:18px;cursor:pointer;color:var(--i2)}
.sv-ves__ib:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}
.sv-ves__ib:disabled{opacity:.35;cursor:default}
.sv-ves__rowsum{grid-column:1/-1;margin:0;font-size:14px;color:var(--i2)}
.sv-ves__rowsum b{color:var(--blue-d)}
.sv-ves__addbar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-start;margin:12px 0 4px}
.sv-ves__opts{flex:1 1 300px}
.sv-ves__opts summary,.sv-ves__how summary{cursor:pointer;font-weight:700;color:var(--blue-d);min-height:40px;display:flex;align-items:center}
.sv-ves__optgrid{display:grid;grid-template-columns:1fr 1.4fr;gap:12px;padding-top:6px}
.sv-ves__optgrid small,.sv-ves__chk small{font-weight:400;color:var(--i2);font-size:12px}
.sv-ves__chk{flex-direction:row!important;align-items:flex-start;gap:8px!important}
.sv-ves__chk input{width:22px;height:22px;min-height:0!important;flex:0 0 22px;margin-top:2px}
.sv-ves__res{background:var(--z);border-radius:12px;padding:16px;margin-top:14px;min-width:0}
.sv-ves__kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.sv-ves__kpi{background:#fff;border:1px solid var(--ln);border-radius:10px;padding:10px 12px;min-width:0}
.sv-ves__kpi span{display:block;font-size:13px;color:var(--i2)}
.sv-ves__kpi b{display:block;font:700 22px var(--fn,var(--f));color:var(--blue-d);line-height:1.2;overflow-wrap:anywhere}
.sv-ves__kpi small{display:block;font-size:12px;color:var(--i2);line-height:1.3}
.sv-ves__alerts:empty{display:none}
.sv-ves__warn{margin:8px 0 0;padding:8px 12px;border-left:4px solid var(--or);background:#fff7ee;border-radius:6px;font-size:14px}
.sv-ves__tbl{font-size:14px;min-width:760px;background:#fff}
.sv-ves__tbl td,.sv-ves__tbl th{white-space:nowrap}
.sv-ves__tbl .sv-ves__sm{white-space:normal;min-width:180px;font-size:13px;color:var(--i2)}
.sv-ves__tbl tr.is-hl td{background:var(--blue-l,#EAF2FA)}
.sv-ves__trucks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.sv-ves__fit{border-top:1px dashed var(--ln);padding-top:6px;margin-top:2px}
.sv-ves__cut{display:block;margin-top:8px;padding:8px 12px;background:#fff;border-left:4px solid var(--blue);border-radius:6px;font-size:14px}
.sv-ves__lens{min-width:720px}
.sv-ves__lens th small{font-weight:400;color:var(--i2)}
.sv-ves__lens td{text-align:center}
.sv-ves__lens .sv-ves__f-ok{color:#1f7a45;font-weight:700}
.sv-ves__lens .sv-ves__f-oh{color:#b45f12;background:#fff7ee}
.sv-ves__lens .sv-ves__f-no{color:#a7b2bd}
.sv-ves__lens th.is-use,.sv-ves__lens td.is-use{box-shadow:inset 0 0 0 2px var(--blue)}
.sv-ves__lens thead th.is-use{background:var(--blue);color:#fff}
.sv-ves__truck{position:relative;background:#fff;border:1px solid var(--ln);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.sv-ves__truck.is-rec{border:2px solid var(--blue);box-shadow:0 8px 22px -14px rgba(20,82,138,.6)}
.sv-ves__truck.is-no{opacity:.75;background:#fafbfc}
.sv-ves__truck small{font-size:12px;color:var(--i2);line-height:1.35}
.sv-ves__tt{display:flex;gap:8px;align-items:center;font-size:13px;font-weight:700;color:var(--i2);line-height:1.3}
.sv-ves__ti{width:44px;height:20px;flex:0 0 44px;color:var(--blue)}
.sv-ves__tn{font:700 22px var(--fn,var(--f));color:var(--blue-d)}
.sv-ves__tn--no{color:#a33;font-size:18px}
.sv-ves__badge{position:absolute;top:-10px;right:10px;background:var(--blue);color:#fff;font-size:12px;font-weight:700;padding:2px 8px;border-radius:99px}
.sv-ves__bar{font-size:12px;color:var(--i2)}
.sv-ves__bar i{display:block;height:6px;border-radius:3px;background:var(--blue);margin-top:2px;max-width:100%}
.sv-ves__bar i.is-over{background:var(--or)}
.sv-ves__rec{margin:12px 0 0;font-size:15px}
.sv-ves__ugrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.sv-ves__how{margin-top:14px;background:#fff;border:1px solid var(--ln);border-radius:10px;padding:4px 14px}
.sv-ves__howbody{font-size:14px;padding-bottom:8px;overflow-wrap:anywhere}
.sv-ves__howbody ol{padding-left:20px;margin:6px 0}
.sv-ves__howbody li{margin:4px 0}
.sv-ves__brand{margin:12px 0 0;padding-top:8px;border-top:1px solid var(--ln);font-size:12px;color:var(--i2)}
.sv-ves__act{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}
.sv-ves__act .btn{min-height:44px}
.sv-ves__lnk{font-size:14px;color:var(--blue);text-decoration:underline;text-underline-offset:2px}
.sv-ves__toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%) translateY(20px);background:#1E2328;color:#fff;padding:10px 16px;border-radius:8px;font-size:14px;opacity:0;pointer-events:none;transition:.2s;z-index:90;margin:0;max-width:90vw}
.sv-ves__toast.on{opacity:1;transform:translateX(-50%)}
.sv-ves__viz{min-width:0}
.sv-ves__viz .sv-ves__h3{margin-top:0}
.sv-ves__vizhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:8px}
.sv-ves__vizsel{flex:0 1 280px;font-size:13px}
.sv-ves__vizsel select{min-height:42px}
.sv-ves__stage{position:relative;height:360px;border-radius:12px;background:radial-gradient(circle at 50% 35%,#fff 0,#eef3f8 70%);border:1px solid var(--ln);overflow:hidden;margin-top:8px}
.sv-ves__cv{position:absolute;inset:0;width:100%!important;height:100%!important;display:block;touch-action:pan-y}
.sv-ves__stage.is-active .sv-ves__cv{touch-action:none}
.sv-ves__stage.is-active{outline:2px solid var(--blue);outline-offset:-2px}
.sv-ves__labels{position:absolute;inset:0;pointer-events:none}
.sv-ves__labels span{position:absolute;left:0;top:0;background:rgba(255,255,255,.92);border:1px solid var(--or);color:#1E2328;font-size:12px;font-weight:700;padding:1px 6px;border-radius:4px;white-space:nowrap}
.sv-ves__svg{display:none;position:absolute;inset:0;padding:10px}
.sv-ves__svg svg{width:100%;height:100%}
.sv-ves__stage.is-2d .sv-ves__svg{display:block}
.sv-ves__stage.is-2d .sv-ves__labels{display:none}
.sv-ves__vizbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.sv-ves__vizbar .btn{min-height:42px}
.sv-ves__vizcap{font-size:13px;margin:6px 0 0}
.sv-ves__labels span.is-len{border-color:var(--blue);color:var(--blue-d)}
.sv-ves__lay{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"in" "side" "out";gap:16px}
.sv-ves__left{display:contents}
.sv-ves__in{grid-area:in;min-width:0}.sv-ves__side{grid-area:side;min-width:0}.sv-ves__out{grid-area:out;min-width:0}
.sv-ves__full{min-width:0;border-top:1px solid var(--ln);margin-top:18px}
.sv-ves__out .sv-ves__res{margin-top:0}
.sv-ves__stage{height:360px}
.sv-ves__row{position:relative;padding-top:14px}
.sv-ves__rowact{position:absolute;top:-17px;right:10px;background:#fff;padding:0 4px}
.sv-ves__ib{height:34px;width:40px}
.sv-ves__grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}
.sv-ves__note{font-size:13px;margin-top:10px}
.sv-ves__rfit{font-size:14px;margin:10px 0 0;padding:8px 12px;background:#fff;border-left:4px solid var(--blue);border-radius:6px}
@media (min-width:1024px){
  .sv-ves__lay{grid-template-columns:minmax(0,44fr) minmax(0,56fr);grid-template-areas:"left side";gap:22px;align-items:start}
  .sv-ves__left{display:block;grid-area:left;min-width:0}
  .sv-ves__left .sv-ves__out{margin-top:16px}
  .sv-ves__side{align-self:start;position:sticky;top:90px}
  .sv-ves__stage{height:min(560px,calc(100vh - 230px));min-height:380px}
  .sv-ves__row{grid-template-columns:repeat(4,minmax(0,1fr))}
  .sv-ves__row .sv-ves__qty{grid-column:span 2}
  .sv-ves__in .sv-ves__optgrid{grid-template-columns:1fr}
  .sv-ves__out .sv-ves__kpis,.sv-ves__out .sv-ves__ugrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sv-ves__in .sv-ves__head{flex-direction:column;align-items:flex-start}
}
@media (max-width:1023px){.sv-ves__row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){
  .sv-ves__pane{padding:12px}
  .sv-ves__row{grid-template-columns:1fr 1fr}
  .sv-ves__qty{grid-column:1/-1}
  .sv-ves__kpis,.sv-ves__ugrid{grid-template-columns:1fr 1fr}
  .sv-ves__optgrid,.sv-ves__grid3{grid-template-columns:1fr}
  .sv-ves__stage{height:340px}
  .sv-ves__vizbar{display:grid;grid-template-columns:1fr 1fr}
  .sv-ves__vizbar .btn{width:100%;padding-left:6px;padding-right:6px;font-size:14px}
  .sv-ves__trucks{grid-template-columns:1fr 1fr}
  .sv-ves__kpi b{font-size:19px}
  .sv-ves__tab{font-size:14px;padding:8px 10px}
  .sv-ves__res{padding:12px}
}
@media (max-width:480px){.sv-ves__trucks{grid-template-columns:1fr}}
@media print{
  .sv-ves__lay{display:block}.sv-ves__side{position:static}
  .sv-ves__tabs,.sv-ves__ex,.sv-ves__addbar,.sv-ves__act,.sv-ves__rowact,.sv-ves__vizbar,.sv-ves__vizsel,.sv-ves__toast,.sv-ves__cv,.sv-ves__labels{display:none!important}
  .sv-ves__pane{border:0;padding:0}
  .sv-ves__row{break-inside:avoid;border-left-width:2px}
  .sv-ves__res{background:#fff;border:1px solid #999}
  .sv-ves__how{display:block}
  .sv-ves__how:not([open]) .sv-ves__howbody{display:block}
  .sv-ves__stage{height:220px;background:#fff;break-inside:avoid}
  .sv-ves__svg{display:block!important}
  .sv-ves__tbl{min-width:0;font-size:11px}
  .sv-ves__tbl td,.sv-ves__tbl th{white-space:normal}
  .sv-ves__trucks{grid-template-columns:repeat(3,1fr)}
  .sv-ves__truck{break-inside:avoid}
}
