/* Ivan Mosalev — site development */
.spring-calculator{font-size:16px}
.calc-intro{padding:52px 0 30px}
.calc-eyebrow{margin-bottom:10px;color:#d71920;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.calc-intro h1,.calc-hub h1{margin:0 0 14px;font-size:42px;line-height:1.12}
.calc-intro p,.calc-hub-head p{max-width:950px;margin:0 0 24px;line-height:1.65;color:#555}
.calc-tabs{display:flex;flex-wrap:wrap;gap:10px}
.calc-tabs a{display:inline-flex;align-items:center;justify-content:center;min-width:160px;padding:13px 22px;border:1px solid #d7d7d7;border-radius:4px;background:#fff;color:#222;text-decoration:none;font-weight:600}
.calc-tabs a.active,.calc-tabs a:hover{background:#d71920;border-color:#d71920;color:#fff;text-decoration:none}
.calc-back-link{display:inline-block;margin:0 0 18px;color:#777;text-decoration:none}
.calc-back-link:hover{color:#d71920}

.calc-workspace{padding:36px 0 52px}
.calc-grid{display:grid;grid-template-columns:minmax(300px,.95fr) minmax(320px,1.15fr) minmax(300px,.9fr);gap:22px;align-items:start}
.calc-panel{background:#fff;border-radius:5px;box-shadow:0 2px 12px rgba(0,0,0,.07);padding:24px}
.calc-panel-title{margin-bottom:18px;font-size:22px;font-weight:700;line-height:1.2}
.calc-group-title{margin:0 0 12px;font-weight:700;color:#444}
.calc-fields{display:grid;gap:14px}
.calc-field{display:grid;grid-template-columns:1fr 120px;gap:14px;align-items:center}
.calc-field-stacked{grid-template-columns:1fr !important}
.calc-field-label{line-height:1.25;color:#222}
.calc-field small{display:block;margin-top:4px;font-size:12px;color:#888}
.calc-field input,.calc-field select,.calc-material select{width:100%;box-sizing:border-box;min-height:44px;padding:8px 10px;border:1px solid #cfcfcf;border-radius:3px;background:#fff;font:inherit}
.calc-field input:focus,.calc-field select:focus,.calc-material select:focus,.calc-order-form textarea:focus{outline:2px solid rgba(215,25,32,.16);border-color:#d71920}
.calc-material{margin-top:18px;padding-top:18px;border-top:1px solid #ececec}

.calc-visual-panel{min-height:480px}
.spring-drawing{height:340px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:4px;background:linear-gradient(180deg,#fafafa,#f1f1f1)}
.spring-drawing svg{width:100%;height:100%}
.calc-drawing-note{margin-top:12px;font-size:12px;line-height:1.45;color:#888}
.calc-legend{margin-top:18px}
.calc-legend-grid{display:grid;gap:14px}
.calc-legend-card{padding:14px;border:1px solid #ededed;border-radius:4px;background:#fafafa}
.calc-legend-title{margin-bottom:10px;font-size:15px;font-weight:700}
.calc-legend-card ul{margin:0;padding-left:18px;color:#555;line-height:1.55}
.calc-chip-row{display:flex;flex-wrap:wrap;gap:8px}
.calc-chip{display:inline-flex;padding:7px 10px;border-radius:999px;background:#eceff2;color:#5c6773;font-size:12px;font-weight:600}
.calc-chip.active{background:#d71920;color:#fff}
.hook-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.hook-card{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:118px;padding:10px;border-radius:4px;border:1px solid #e2e6ea;background:#fff;color:#5c6773;text-align:center;font-size:12px}
.hook-card svg{width:58px;height:58px;margin-bottom:8px}
.hook-card.active{border-color:#d71920;background:#fff4f4;color:#d71920}

.calc-results{display:grid;gap:0;border-top:1px solid #ececec}
.calc-result-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:12px 0;border-bottom:1px solid #ececec}
.calc-result-label{color:#555}
.calc-result-value{text-align:right;font-weight:700;white-space:nowrap}
.calc-warning{margin-top:18px;padding:12px 14px;border-radius:3px;background:#fff5db;color:#6d5410;line-height:1.45;font-size:13px}
.calc-warning:empty{display:none}
.calc-order-button{width:100%;margin-top:20px}

.calc-help{padding:46px 0 60px}
.calc-help p{max-width:920px;line-height:1.7}

.calc-modal{display:none;position:fixed;z-index:10050;inset:0}
.calc-modal.open{display:block}
.calc-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.58)}
.calc-modal-dialog{position:relative;z-index:1;width:min(660px,calc(100% - 30px));max-height:calc(100vh - 40px);overflow:auto;box-sizing:border-box;margin:20px auto;padding:32px;border-radius:5px;background:#fff}
.calc-modal-close{position:absolute;top:10px;right:14px;border:0;background:none;font-size:32px;line-height:1;cursor:pointer}
.calc-modal-title{padding-right:30px;font-size:25px;font-weight:700}
.calc-modal-subtitle{margin:8px 0 22px;color:#666;line-height:1.5}
.calc-order-form{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.calc-order-form label{display:grid;gap:6px;font-size:13px;color:#555}
.calc-order-form input,.calc-order-form textarea{box-sizing:border-box;width:100%}
.calc-order-form textarea{padding:12px;border:1px solid #cfcfcf;border-radius:3px;resize:vertical;font:inherit}
.calc-comment-field,.calc-agreement,.calc-order-form button{grid-column:1/-1}
.calc-agreement{grid-template-columns:20px 1fr!important;align-items:start}.calc-agreement input{width:auto;margin-top:2px}
.calc-order-success{padding:20px;background:#eef8ed;font-size:17px;line-height:1.5}

.calc-hub{padding:58px 0 72px}
.calc-hub-head{max-width:930px;margin-bottom:34px}
.calc-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.calc-hub-card{display:flex;min-height:450px;flex-direction:column;overflow:hidden;border:1px solid #e5e5e5;border-radius:5px;background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.06);color:#222;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.calc-hub-card:hover{transform:translateY(-4px);border-color:#d71920;box-shadow:0 9px 25px rgba(0,0,0,.12);color:#222;text-decoration:none}
.calc-hub-media{display:flex;height:220px;align-items:center;justify-content:center;background:linear-gradient(180deg,#f4f6f8,#ecf0f4)}
.calc-hub-media svg{width:84%;height:178px;max-width:320px}
.calc-hub-card-body{display:flex;flex:1;flex-direction:column;padding:25px 25px 27px}
.calc-hub-card h2{margin:0 0 12px;font-size:24px;line-height:1.2}
.calc-hub-card p{margin:0 0 24px;color:#626262;line-height:1.6}
.calc-hub-link{margin-top:auto;color:#d71920;font-weight:700}
.calc-hub-link b{display:inline-block;margin-left:5px;transition:transform .2s ease}
.calc-hub-card:hover .calc-hub-link b{transform:translateX(4px)}
.calc-hub-note{margin-top:28px;padding:18px 20px;border-left:4px solid #d71920;background:#f6f6f6;color:#555;line-height:1.55}

@media (max-width:1180px){
  .calc-grid{grid-template-columns:1fr 1fr}
  .calc-result-panel{grid-column:1/-1}
}
@media (max-width:980px){
  .calc-hub-grid{grid-template-columns:1fr}
  .calc-hub-card{min-height:0;display:grid;grid-template-columns:230px 1fr}
  .calc-hub-media{height:100%;min-height:220px}
}
@media (max-width:760px){
  .calc-intro{padding-top:32px}
  .calc-intro h1,.calc-hub h1{font-size:31px}
  .calc-tabs{display:grid;grid-template-columns:1fr}
  .calc-grid,.calc-hub-card{grid-template-columns:1fr;display:grid}
  .calc-result-panel{grid-column:auto}
  .calc-field{grid-template-columns:1fr 112px}
  .hook-grid{grid-template-columns:1fr}
  .spring-drawing{height:270px}
  .calc-visual-panel{min-height:auto}
  .calc-order-form{grid-template-columns:1fr}
  .calc-modal-dialog{padding:26px 18px}
}
@media (max-width:560px){
  .calc-field,.calc-field-stacked{grid-template-columns:1fr!important}
  .calc-field input,.calc-field select{min-height:42px}
  .calc-result-row{grid-template-columns:1fr}
  .calc-result-value{text-align:left}
  .calc-hub-media{min-height:180px;height:180px}
  .calc-hub-media svg{height:138px}
}

/* v6 modal polish */
.calc-modal.open{display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}
.calc-modal-backdrop{background:rgba(3,15,31,.64);backdrop-filter:blur(2px)}
.calc-modal-dialog{width:min(620px,100%);max-height:calc(100vh - 48px);margin:0;padding:38px 42px 40px;border-radius:8px;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.calc-modal-title{font-size:30px;line-height:1.15;color:#001b41}
.calc-modal-subtitle{font-size:16px;margin:10px 0 25px}
.calc-order-form{gap:17px}
.calc-order-form label{gap:7px;font-size:14px}
.calc-order-form input[type=text],.calc-order-form input[type=tel],.calc-order-form input[type=email],.calc-order-form input[type=number],.calc-order-form textarea{display:block;width:100%;min-height:48px;padding:12px 14px;border:1px solid #cfd3d8!important;border-radius:4px!important;background:#fff!important;color:#18212b!important;box-shadow:none!important;font:inherit!important;box-sizing:border-box}
.calc-order-form textarea{min-height:112px}
.calc-modal-close{top:12px;right:15px;width:42px;height:42px;font-size:34px}
@media(max-width:600px){
 .calc-modal.open{padding:10px;align-items:flex-end}
 .calc-modal-dialog{width:100%;max-height:calc(100vh - 20px);padding:28px 18px 22px;border-radius:12px 12px 4px 4px}
 .calc-modal-title{font-size:24px}
 .calc-modal-subtitle{font-size:14px;margin-bottom:18px}
}

/* v15 responsive safety */
.calc-panel,.calc-field,.calc-result-row,.calc-hub-card,.calc-hub-card-body{min-width:0}
.calc-field input,.calc-field select,.calc-order-form input,.calc-order-form textarea{max-width:100%}
.calc-result-label{overflow-wrap:anywhere}.calc-result-value{max-width:100%}
@media(max-width:1100px){.calc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calc-result-panel{grid-column:1/-1}}
@media(max-width:768px){.calc-grid{grid-template-columns:1fr}.calc-result-panel{grid-column:auto}.calc-field{grid-template-columns:minmax(0,1fr) minmax(96px,120px)}}
@media(max-width:560px){.calc-field{grid-template-columns:1fr}.calc-result-value{white-space:normal}.calc-modal-dialog{width:calc(100% - 20px)}}

/* ======================================================================
   v23 calculator rebuild — Ivan Mosalev
   Functional parity pass for public spring calculator workflow.
   ====================================================================== */
.spring-calculator-v23 .calc-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 18px;padding:14px 18px;background:#fff;border:1px solid #e3e7ea;border-radius:6px}.spring-calculator-v23 .calc-toolbar>div{display:grid;gap:3px}.spring-calculator-v23 .calc-toolbar span{font-size:13px;color:#7b838c}.calc-reset{border:0;background:transparent;color:#d71920;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.spring-calculator-v23 .calc-grid{grid-template-columns:minmax(330px,.92fr) minmax(390px,1.08fr) minmax(360px,1fr)}
.spring-calculator-v23 .calc-field{position:relative;grid-template-columns:minmax(0,1fr) minmax(150px,190px);gap:16px}.spring-calculator-v23 .calc-field-stacked{grid-template-columns:1fr!important}.calc-number-wrap{position:relative;display:block}.calc-number-wrap input{padding-right:48px!important}.calc-unit{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:#90969d;font-size:13px}.spring-calculator-v23 .calc-field-error{grid-column:1/-1;display:none;margin-top:-8px;color:#b00020;font-size:12px}.spring-calculator-v23 .calc-field.has-error .calc-field-error{display:block}.spring-calculator-v23 .calc-field.has-error input,.spring-calculator-v23 .calc-field.has-error select{border-color:#b00020!important;background:#fff8f8!important}.calc-input-hint{margin-top:18px;padding-top:14px;border-top:1px solid #eceff1;color:#777;font-size:12px;line-height:1.5}.spring-calculator-v23 .calc-visual-panel{min-height:0}.spring-calculator-v23 .calc-legend-card p{margin:8px 0 0;line-height:1.5}.spring-calculator-v23 .calc-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:18px}.spring-calculator-v23 .calc-actions .btn{width:100%;margin:0}.calc-drawing-button{border:1px solid #cfd5db!important;background:#fff!important;color:#001b41!important}.calc-drawing-button:hover{border-color:#d71920!important;color:#d71920!important}
.calc-modal-dialog-wide{width:min(920px,calc(100% - 30px))!important}.calc-form-section{padding:0 0 18px;margin:0 0 18px;border-bottom:1px solid #e8ebee}.calc-form-section h3{margin:0 0 16px;color:#001b41;font-size:18px}.calc-order-params{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 18px}.calc-order-params label,.calc-contact-grid label{display:grid;gap:7px;font-size:14px;color:#555}.calc-order-params input,.calc-order-params select,.calc-contact-grid input,.calc-contact-grid select,.calc-file-field input[type=file]{display:block;width:100%;min-height:48px;padding:11px 13px;border:1px solid #cfd3d8;border-radius:4px;background:#fff;color:#18212b;font:inherit;box-sizing:border-box}.calc-contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px 18px}.calc-phone-field{display:grid;grid-template-columns:86px minmax(0,1fr);gap:8px}.calc-phone-field select{padding-left:9px;padding-right:6px}.calc-required-note{margin:-4px 0 4px;color:#777;font-size:12px}.calc-marketing{margin-top:-7px!important}.calc-file-field small{color:#7c838a;font-size:12px;line-height:1.4}.calc-file-field input[type=file]{height:auto;padding:9px}.calc-order-form .calc-form-section{grid-column:1/-1}.calc-order-form .calc-required-note{grid-column:1/-1}.spring-calculator-v23 .calc-warning{background:#f4f7f9;color:#4e5a64}.spring-calculator-v23 .calc-warning strong{color:#b00020}
@media(max-width:1250px){.spring-calculator-v23 .calc-grid{grid-template-columns:1fr 1fr}.spring-calculator-v23 .calc-result-panel{grid-column:1/-1}}
@media(max-width:900px){.calc-order-params{grid-template-columns:1fr 1fr}.calc-contact-grid{grid-template-columns:1fr}.spring-calculator-v23 .calc-field{grid-template-columns:minmax(0,1fr) 150px}}
@media(max-width:768px){.spring-calculator-v23 .calc-toolbar{align-items:flex-start;flex-direction:column}.spring-calculator-v23 .calc-grid{grid-template-columns:1fr}.spring-calculator-v23 .calc-result-panel{grid-column:auto}.calc-order-params{grid-template-columns:1fr}.calc-modal-dialog-wide{width:100%!important}.spring-calculator-v23 .calc-field{grid-template-columns:1fr}.spring-calculator-v23 .calc-field-error{margin-top:0}}

/* ======================================================================
   Ivan Mosalev — v24 UPZ-style tension calculator, IPZ18 visual system
   ====================================================================== */
.spring-calculator-v24 .calc-engineering-upz{padding:46px 0 70px}
.upz-calc-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.65fr);gap:28px;align-items:start}
.upz-parameters-panel,.upz-spec-panel,.upz-results-panel,.upz-drawing-panel,.upz-consult-panel{margin:0 0 28px}
.upz-section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.upz-section-head .calc-panel-title{margin:0!important}
.upz-more-toggle,.upz-help-button{border:0;background:transparent;color:#d71920;font:inherit;font-weight:700;cursor:pointer;padding:8px 0;text-decoration:underline;text-underline-offset:4px}
.upz-more-toggle span{display:inline-block;margin-left:6px;transition:transform .2s ease}.upz-more-open .upz-more-toggle span{transform:rotate(180deg)}
.upz-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px}
.upz-field{display:grid;gap:7px;align-content:start;min-width:0}
.upz-field .calc-field-label{font-size:14px;line-height:1.35;font-weight:600;color:#25313e}
.upz-field select,.upz-field input{width:100%;height:52px;border:1px solid #ced5dc;border-radius:6px;background:#fff;color:#17202a;padding:0 14px;outline:none;box-shadow:none;transition:border-color .15s ease,box-shadow .15s ease}
.upz-field select:focus,.upz-field input:focus{border-color:#9eabb8;box-shadow:0 0 0 3px rgba(0,27,65,.06)}
.upz-field .calc-number-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid #ced5dc;border-radius:6px;background:#fff;overflow:hidden;height:52px}
.upz-field .calc-number-wrap input{border:0!important;border-radius:0;height:50px;min-width:0}.upz-field .calc-number-wrap input:focus{box-shadow:none}
.upz-field .calc-unit{padding:0 13px;color:#7a838c;font-size:13px;white-space:nowrap}
.upz-control-line{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px}
.upz-inline-help{width:44px;height:52px;border:1px solid #ced5dc;border-radius:6px;background:#f8fafb;color:#d71920;font-size:17px;font-weight:800;cursor:pointer}
.upz-field.has-error select,.upz-field.has-error input,.upz-field.has-error .calc-number-wrap{border-color:#c82433!important}.upz-field .calc-field-error{min-height:16px;color:#b00020;font-size:12px;line-height:1.25}
.upz-field-section{grid-column:1/-1;margin-top:8px;padding-top:20px;border-top:1px solid #e5e9ed}.upz-field-section h3{margin:0;color:#001b41;font-size:19px}
.upz-advanced{display:none}.upz-more-open .upz-advanced{display:grid}
.upz-field-section.upz-advanced{display:none}.upz-more-open .upz-field-section.upz-advanced{display:block}
.upz-spec-panel{position:sticky;top:20px}
.upz-spec-list{display:grid;gap:0;border-top:1px solid #e2e7eb}.upz-spec-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:15px 0;border-bottom:1px solid #e2e7eb;align-items:start}.upz-spec-list span{font-size:13px;color:#7a838c}.upz-spec-list strong{font-size:14px;color:#001b41;text-align:right;max-width:200px}
.upz-spec-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.upz-spec-actions .btn{width:100%;min-width:0}.upz-download{border:1px solid #d7dde3!important;background:#fff!important;color:#001b41!important}
.upz-results-panel{grid-column:1/-1}.upz-results-head{margin-bottom:0;padding-bottom:18px;border-bottom:1px solid #dfe4e8}
.upz-unit-switch{display:inline-flex;border:1px solid #ccd4db;border-radius:7px;overflow:hidden}.upz-unit-switch button{height:38px;padding:0 15px;border:0;border-right:1px solid #ccd4db;background:#fff;color:#34404c;cursor:pointer;font-weight:600}.upz-unit-switch button:last-child{border-right:0}.upz-unit-switch button.active{background:#001b41;color:#fff}
.upz-results-table{display:grid;grid-template-columns:1fr 1fr;column-gap:44px}.upz-result-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(76px,auto) minmax(70px,auto);gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #edf0f2}.upz-result-name{color:#35414d;font-size:14px;line-height:1.35}.upz-result-row strong{color:#001b41;text-align:right;font-size:15px}.upz-result-unit{color:#7c858e;font-size:12px;white-space:nowrap}
.upz-drawing-wrap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:28px;align-items:center}.upz-drawing-panel .spring-drawing{min-height:440px;height:auto;background:#fbfcfd;border:1px solid #e2e7eb;border-radius:8px;display:flex;align-items:center;justify-content:center}.upz-drawing-panel .spring-drawing svg{width:100%;height:auto;max-height:450px}.upz-drawing-data{display:grid;gap:0;border:1px solid #e1e6ea;border-radius:7px;overflow:hidden;background:#fff}.upz-drawing-data span{display:flex;justify-content:space-between;gap:16px;padding:11px 13px;border-bottom:1px solid #edf0f2;font-size:13px;color:#555f69}.upz-drawing-data span:last-child{border-bottom:0}.upz-drawing-data b{color:#001b41}.upz-drawing-note{margin:14px 0 0;color:#858d95;font-size:13px}
.upz-help-button span,.upz-inline-help{font-family:Georgia,serif}.upz-help-button span{display:inline-flex;align-items:center;justify-content:center;width:23px;height:23px;margin-left:5px;border:1px solid currentColor;border-radius:50%;text-decoration:none}
.upz-help-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}.upz-help-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.upz-help-card{display:grid;gap:8px;align-content:start;padding:18px;border:1px solid #e0e5e9;border-radius:8px;background:#fafbfc}.upz-help-card svg{width:100%;height:120px}.upz-help-card strong{color:#001b41}.upz-help-card span{font-size:13px;line-height:1.4;color:#5f6871}.upz-legend-list{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;margin-top:20px}.upz-legend-list p{margin:0;padding:10px 0;border-bottom:1px solid #e8ecef;color:#4f5963}
.upz-consult-form{margin-top:22px}.upz-consult-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 22px}.upz-consult-grid label{display:grid;gap:7px;color:#35414d;font-size:14px;font-weight:600}.upz-consult-grid input,.upz-consult-grid textarea{width:100%;border:1px solid #ccd4db;border-radius:6px;background:#fff;padding:12px 14px;color:#17202a;font:inherit}.upz-consult-grid input{height:52px}.upz-consult-wide{grid-column:1/-1}.upz-consult-form .calc-agreement{margin:16px 0 0}.upz-consult-form>.btn{margin-top:20px;min-width:190px}.upz-consult-form .ipz-form-message{margin-top:12px}
@media(max-width:1100px){.upz-calc-layout{grid-template-columns:1fr}.upz-spec-panel{position:static}.upz-results-table{grid-template-columns:1fr}.upz-drawing-wrap{grid-template-columns:1fr}.upz-drawing-panel .spring-drawing{min-height:360px}.upz-help-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:768px){.spring-calculator-v24 .calc-engineering-upz{padding:30px 0 45px}.upz-fields{grid-template-columns:1fr}.upz-section-head{align-items:flex-start;flex-direction:column;gap:8px}.upz-results-head{flex-direction:column}.upz-unit-switch{width:100%}.upz-unit-switch button{flex:1}.upz-result-row{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.upz-result-unit{grid-column:1/-1}.upz-spec-actions{grid-template-columns:1fr}.upz-drawing-panel .spring-drawing{min-height:300px}.upz-consult-grid{grid-template-columns:1fr}.upz-consult-wide{grid-column:auto}.upz-help-grid,.upz-help-grid-2,.upz-legend-list{grid-template-columns:1fr}.upz-spec-list>div{grid-template-columns:1fr;gap:5px}.upz-spec-list strong{text-align:left;max-width:none}}

/* v25 — Ivan Mosalev: material-standard selector */
.spring-calculator-v24 .upz-field[data-field="materialStandard"]{grid-column:1/-1}
.spring-calculator-v24 .upz-field[data-field="materialStandard"] select{width:100%;min-height:48px;font-size:14px}
@media(max-width:768px){.spring-calculator-v24 .upz-field[data-field="materialStandard"] select{font-size:13px}}

/* ======================================================================
   v26 — Ivan Mosalev: compact responsive tension calculator
   Keeps the site-wide 1480px system, but limits the calculator reading
   width and reflows dense engineering controls at sensible breakpoints.
   ====================================================================== */
.spring-calculator-v24 .calc-engineering-upz>.container{
  max-width:1260px!important;
}
.spring-calculator-v24 .calc-engineering-upz{
  padding:34px 0 52px;
}
.spring-calculator-v24 .calc-panel{
  border-radius:10px;
  padding:24px!important;
}
.spring-calculator-v24 .upz-calc-layout{
  grid-template-columns:minmax(0,1fr) minmax(280px,320px);
  gap:20px;
}
.spring-calculator-v24 .upz-parameters-panel,
.spring-calculator-v24 .upz-spec-panel,
.spring-calculator-v24 .upz-results-panel,
.spring-calculator-v24 .upz-drawing-panel,
.spring-calculator-v24 .upz-consult-panel{
  margin-bottom:20px;
}
.spring-calculator-v24 .upz-section-head{
  gap:14px;
  margin-bottom:16px;
}
.spring-calculator-v24 .upz-fields{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px 14px;
}
.spring-calculator-v24 .upz-field{
  gap:5px;
}
.spring-calculator-v24 .upz-field .calc-field-label{
  font-size:13px;
  line-height:1.3;
}
.spring-calculator-v24 .upz-field select,
.spring-calculator-v24 .upz-field input,
.spring-calculator-v24 .upz-field .calc-number-wrap{
  height:46px;
}
.spring-calculator-v24 .upz-field .calc-number-wrap input{
  height:44px;
}
.spring-calculator-v24 .upz-inline-help{
  height:46px;
  width:42px;
}
.spring-calculator-v24 .upz-control-line{
  grid-template-columns:minmax(0,1fr) 42px;
  gap:6px;
}
.spring-calculator-v24 .upz-field .calc-field-error{
  min-height:13px;
  font-size:11px;
}
.spring-calculator-v24 .upz-field-section{
  margin-top:3px;
  padding-top:14px;
}
.spring-calculator-v24 .upz-field-section h3{
  font-size:17px;
}
.spring-calculator-v24 .upz-field[data-field="materialStandard"]{
  grid-column:span 2!important;
}
.spring-calculator-v24 .upz-field[data-field="materialStandard"] select{
  min-height:46px;
  font-size:13px;
}
.spring-calculator-v24 .upz-field[data-field="hookPlane"],
.spring-calculator-v24 .upz-field[data-field="hookType"]{
  grid-column:span 2;
}
.spring-calculator-v24 .upz-spec-panel{
  top:14px;
}
.spring-calculator-v24 .upz-spec-list>div{
  gap:10px;
  padding:11px 0;
}
.spring-calculator-v24 .upz-spec-list strong{
  max-width:150px;
  font-size:13px;
}
.spring-calculator-v24 .upz-spec-actions{
  grid-template-columns:1fr;
  gap:8px;
  margin-top:16px;
}
.spring-calculator-v24 .upz-results-table{
  column-gap:28px;
}
.spring-calculator-v24 .upz-result-row{
  grid-template-columns:minmax(0,1fr) minmax(64px,auto) minmax(58px,auto);
  gap:8px;
  padding:9px 0;
}
.spring-calculator-v24 .upz-result-name{font-size:13px}
.spring-calculator-v24 .upz-result-row strong{font-size:14px}
.spring-calculator-v24 .upz-drawing-wrap{
  grid-template-columns:minmax(0,1.45fr) minmax(240px,.55fr);
  gap:20px;
}
.spring-calculator-v24 .upz-drawing-panel .spring-drawing{
  min-height:340px;
}
.spring-calculator-v24 .upz-drawing-panel .spring-drawing svg{
  max-height:360px;
}
.spring-calculator-v24 .upz-drawing-data span{
  padding:8px 10px;
  font-size:12px;
}
.spring-calculator-v24 .upz-consult-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px 14px;
}
.spring-calculator-v24 .upz-consult-grid input{
  height:46px;
}
.spring-calculator-v24 .upz-consult-grid label{
  gap:5px;
  font-size:13px;
}
.spring-calculator-v24 .upz-consult-wide{
  grid-column:1/-1;
}

@media (max-width:1180px){
  .spring-calculator-v24 .calc-engineering-upz>.container{max-width:1040px!important}
  .spring-calculator-v24 .upz-calc-layout{grid-template-columns:minmax(0,1fr) 280px}
  .spring-calculator-v24 .upz-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .spring-calculator-v24 .upz-field[data-field="materialStandard"],
  .spring-calculator-v24 .upz-field[data-field="hookPlane"],
  .spring-calculator-v24 .upz-field[data-field="hookType"]{grid-column:1/-1!important}
  .spring-calculator-v24 .upz-consult-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:980px){
  .spring-calculator-v24 .calc-engineering-upz>.container{max-width:820px!important}
  .spring-calculator-v24 .upz-calc-layout{grid-template-columns:1fr}
  .spring-calculator-v24 .upz-spec-panel{position:static}
  .spring-calculator-v24 .upz-spec-actions{grid-template-columns:1fr 1fr}
  .spring-calculator-v24 .upz-results-table{grid-template-columns:1fr}
  .spring-calculator-v24 .upz-drawing-wrap{grid-template-columns:1fr}
  .spring-calculator-v24 .upz-drawing-panel .spring-drawing{min-height:320px}
}
@media (max-width:680px){
  .spring-calculator-v24 .calc-engineering-upz{padding:24px 0 36px}
  .spring-calculator-v24 .calc-panel{padding:18px!important;border-radius:8px}
  .spring-calculator-v24 .upz-fields{grid-template-columns:1fr}
  .spring-calculator-v24 .upz-field[data-field="materialStandard"],
  .spring-calculator-v24 .upz-field[data-field="hookPlane"],
  .spring-calculator-v24 .upz-field[data-field="hookType"]{grid-column:auto!important}
  .spring-calculator-v24 .upz-section-head{align-items:flex-start;flex-direction:column;gap:6px}
  .spring-calculator-v24 .upz-spec-actions{grid-template-columns:1fr}
  .spring-calculator-v24 .upz-consult-grid{grid-template-columns:1fr}
  .spring-calculator-v24 .upz-consult-wide{grid-column:auto}
  .spring-calculator-v24 .upz-drawing-panel .spring-drawing{min-height:260px}
  .spring-calculator-v24 .upz-unit-switch{width:100%}
  .spring-calculator-v24 .upz-unit-switch button{flex:1}
}
@media (max-width:390px){
  .spring-calculator-v24 .calc-panel{padding:15px!important}
  .spring-calculator-v24 .upz-field select,
  .spring-calculator-v24 .upz-field input,
  .spring-calculator-v24 .upz-field .calc-number-wrap{font-size:14px}
}

/* Ivan Mosalev — calculator refinements v27 */
.spring-calculator-v24 .calc-engineering-upz>.container{
  max-width:1320px!important;
}
.spring-calculator-v24 .upz-calc-layout{
  grid-template-columns:minmax(0,1fr) 360px;
  gap:24px;
}
.spring-calculator-v24 .upz-fields{
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:14px 16px;
}
.spring-calculator-v24 .upz-field{
  grid-column:span 2;
}
.spring-calculator-v24 .upz-field[data-field="materialStandard"],
.spring-calculator-v24 .upz-field[data-field="hookPlane"],
.spring-calculator-v24 .upz-field[data-field="hookType"]{
  grid-column:span 4!important;
}
.spring-calculator-v24 .upz-spec-caption{
  margin:4px 0 16px;
  color:#6a747d;
  font-size:13px;
  line-height:1.45;
}
.spring-calculator-v24 .upz-spec-actions .btn{
  min-height:56px;
  font-size:17px;
}
.spring-calculator-v24 .upz-download{
  background:#f8fafc!important;
  border-color:#d8e0e6!important;
}
.spring-calculator-v24 .upz-results-panel .calc-panel-title,
.spring-calculator-v24 .upz-drawing-panel .calc-panel-title{
  letter-spacing:-0.01em;
}
.spring-calculator-v24 .upz-drawing-wrap{
  grid-template-columns:minmax(0,1.75fr) minmax(260px,.65fr);
  gap:22px;
  align-items:start;
}
.spring-calculator-v24 .upz-drawing-panel .spring-drawing{
  min-height:560px;
  padding:0;
  background:#eef3f7;
  overflow:hidden;
}
.spring-calculator-v24 .upz-drawing-panel .spring-drawing svg{
  width:100%;
  max-height:none;
  display:block;
}
.spring-calculator-v24 .upz-drawing-data-rich{
  display:grid;
  gap:14px;
  padding:14px;
}
.spring-calculator-v24 .upz-drawing-head{
  display:grid;
  gap:6px;
  padding-bottom:12px;
  border-bottom:1px solid #e8edf1;
}
.spring-calculator-v24 .upz-drawing-head strong{
  font-size:16px;
  color:#001b41;
}
.spring-calculator-v24 .upz-drawing-head span{
  font-size:13px;
  line-height:1.45;
  color:#6a747d;
}
.spring-calculator-v24 .upz-drawing-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.spring-calculator-v24 .upz-drawing-grid span{
  display:grid;
  gap:2px;
  padding:10px 12px;
  border:1px solid #e3e8ec;
  border-radius:8px;
  background:#fff;
}
.spring-calculator-v24 .upz-drawing-grid small{
  font-size:11px;
  text-transform:uppercase;
  color:#7d8690;
}
.spring-calculator-v24 .upz-drawing-grid b{
  font-size:15px;
  color:#001b41;
}
.spring-calculator-v24 .upz-drawing-grid em{
  font-style:normal;
  font-size:12px;
  color:#6a747d;
}
@media (max-width:1240px){
  .spring-calculator-v24 .calc-engineering-upz>.container{max-width:1180px!important}
  .spring-calculator-v24 .upz-calc-layout{grid-template-columns:minmax(0,1fr) 320px}
  .spring-calculator-v24 .upz-fields{grid-template-columns:repeat(4,minmax(0,1fr))}
  .spring-calculator-v24 .upz-field{grid-column:span 2}
  .spring-calculator-v24 .upz-field[data-field="materialStandard"],
  .spring-calculator-v24 .upz-field[data-field="hookPlane"],
  .spring-calculator-v24 .upz-field[data-field="hookType"]{grid-column:1/-1!important}
}
@media (max-width:980px){
  .spring-calculator-v24 .calc-engineering-upz>.container{max-width:860px!important}
  .spring-calculator-v24 .upz-calc-layout{grid-template-columns:1fr}
  .spring-calculator-v24 .upz-drawing-panel .spring-drawing{min-height:460px}
}
@media (max-width:680px){
  .spring-calculator-v24 .upz-fields{grid-template-columns:1fr}
  .spring-calculator-v24 .upz-field{grid-column:auto}
  .spring-calculator-v24 .upz-drawing-wrap,
  .spring-calculator-v24 .upz-drawing-grid{grid-template-columns:1fr}
  .spring-calculator-v24 .upz-drawing-panel .spring-drawing{min-height:320px}
  .spring-calculator-v24 .upz-spec-actions .btn{min-height:52px;font-size:16px}
}

/* Ivan Mosalev — calculator width + own drawing v28 */
.spring-calculator-v24 .calc-engineering-upz>.container{
  width:calc(100% - (var(--ipz-gutter, 24px) * 2))!important;
  max-width:var(--ipz-container-max,1480px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.spring-calculator-v24 .upz-calc-layout{
  grid-template-columns:minmax(0,1fr) minmax(330px,360px);
  gap:24px;
}
.spring-calculator-v24 .upz-own-drawing{
  border:1px solid #cfd8df!important;
  background:#fff!important;
  color:#001b41!important;
  box-shadow:none!important;
}
.spring-calculator-v24 .upz-own-drawing:hover,
.spring-calculator-v24 .upz-own-drawing:focus-visible{
  border-color:#d71920!important;
  color:#d71920!important;
  background:#fff!important;
}
.spring-calculator-v24 .upz-parameters-panel{
  min-width:0;
}
.spring-calculator-v24 .upz-fields{
  width:100%;
}
@media (min-width:1241px){
  .spring-calculator-v24 .upz-fields{
    grid-template-columns:repeat(6,minmax(0,1fr));
  }
  .spring-calculator-v24 .upz-field{grid-column:span 2}
  .spring-calculator-v24 .upz-field[data-field="materialStandard"]{grid-column:span 4!important}
  .spring-calculator-v24 .upz-field[data-field="hookPlane"],
  .spring-calculator-v24 .upz-field[data-field="hookType"]{grid-column:span 4!important}
}
@media (max-width:1240px){
  .spring-calculator-v24 .calc-engineering-upz>.container{
    max-width:var(--ipz-container-max,1480px)!important;
  }
}
@media (max-width:980px){
  .spring-calculator-v24 .upz-calc-layout{grid-template-columns:1fr}
  .spring-calculator-v24 .upz-spec-panel{position:static}
}

/* Ivan Mosalev — v30 stable drawing layout */
.spring-calculator-v24 .upz-drawing-wrap{
  grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr)!important;
  gap:22px!important;
  align-items:start!important;
}
.spring-calculator-v24 .upz-drawing-panel .spring-drawing{
  min-height:0!important;
  height:auto!important;
  aspect-ratio:840/520;
  padding:0!important;
  overflow:hidden!important;
  background:#fbfcfd!important;
  border:1px solid #e2e7eb!important;
  border-radius:8px!important;
  display:block!important;
}
.spring-calculator-v24 .upz-drawing-panel .spring-drawing svg{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  overflow:hidden!important;
}
.spring-calculator-v24 .calc-legend{
  min-width:0!important;
}
.spring-calculator-v24 .upz-drawing-data{
  width:100%!important;
}
.spring-calculator-v24 .upz-drawing-data>span{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(110px,auto)!important;
  align-items:center!important;
  gap:12px!important;
}
.spring-calculator-v24 .upz-drawing-data>span>span{
  min-width:0!important;
  overflow-wrap:anywhere!important;
}
.spring-calculator-v24 .upz-drawing-data b{
  max-width:190px!important;
  text-align:right!important;
  overflow-wrap:anywhere!important;
}
@media (max-width:1100px){
  .spring-calculator-v24 .upz-drawing-wrap{grid-template-columns:1fr!important}
  .spring-calculator-v24 .upz-drawing-panel .spring-drawing{aspect-ratio:840/520!important}
  .spring-calculator-v24 .upz-drawing-data{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .spring-calculator-v24 .upz-drawing-data>span{border-right:1px solid #edf0f2!important}
}
@media (max-width:680px){
  .spring-calculator-v24 .upz-drawing-panel .spring-drawing{
    aspect-ratio:1/1!important;
    overflow:hidden!important;
  }
  .spring-calculator-v24 .upz-drawing-panel .spring-drawing svg{
    width:162%!important;
    max-width:none!important;
    height:100%!important;
    transform:translateX(-7%)!important;
    transform-origin:left center!important;
  }
  .spring-calculator-v24 .upz-drawing-panel .spring-drawing .ipz-drawing-values{display:none!important}
  .spring-calculator-v24 .upz-drawing-data{grid-template-columns:1fr!important}
  .spring-calculator-v24 .upz-drawing-data>span{border-right:0!important}
  .spring-calculator-v24 .upz-drawing-note{font-size:12px!important;line-height:1.45!important}
}

/* v31 technical drawing style */
.spring-calculator-v24 .upz-drawing-panel .spring-drawing{
  background:#fff!important;
  border:1px solid #e2e7eb!important;
  border-radius:8px!important;
  padding:8px!important;
}
.spring-calculator-v24 .upz-drawing-panel .spring-drawing svg{
  display:block;
  width:100%;
  height:auto;
  max-height:none!important;
}
.spring-calculator-v24 .upz-drawing-note{
  margin-top:10px!important;
  color:#7d8690!important;
}
@media (max-width:768px){
  .spring-calculator-v24 .upz-drawing-panel .spring-drawing{padding:4px!important}
}

/* Ivan Mosalev — v34 compression engineering calculator */
.spring-calculator-v24 .calc-engineering-upz .upz-field[data-field="application"]{
  grid-column:1/-1!important;
}
.spring-calculator-v24 .calc-engineering-upz .upz-field[data-field="application"] input{
  width:100%;
  height:46px;
  min-height:46px;
  padding:0 14px;
  border:1px solid #cfd7de;
  border-radius:6px;
  background:#fff;
  color:#1f2a35;
  box-sizing:border-box;
}
.spring-calculator-v24[data-calculator-type="compression"] .upz-field[data-field="supportType"]{
  grid-column:span 2;
}
.spring-calculator-v24[data-calculator-type="compression"] .upz-field[data-field="materialStandard"]{
  grid-column:span 2!important;
}
.spring-calculator-v24[data-calculator-type="compression"] .upz-result-row strong{
  white-space:nowrap;
}
@media(max-width:1180px){
  .spring-calculator-v24[data-calculator-type="compression"] .upz-field[data-field="supportType"],
  .spring-calculator-v24[data-calculator-type="compression"] .upz-field[data-field="materialStandard"]{grid-column:1/-1!important}
}
@media(max-width:680px){
  .spring-calculator-v24[data-calculator-type="compression"] .upz-field[data-field="supportType"],
  .spring-calculator-v24[data-calculator-type="compression"] .upz-field[data-field="materialStandard"]{grid-column:auto!important}
}

/* Ivan Mosalev — v37 calculator action buttons alignment */
.spring-calculator .calc-actions{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:12px!important;
  width:100%!important;
  margin-top:20px!important;
}
.spring-calculator .calc-actions .btn,
.spring-calculator .calc-actions button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  min-height:68px!important;
  height:auto!important;
  margin:0!important;
  padding:14px 20px!important;
  box-sizing:border-box!important;
  line-height:1.25!important;
  text-align:center!important;
  white-space:normal!important;
}
.spring-calculator .calc-actions .calc-drawing-button{
  border-width:1px!important;
}
@media (max-width:768px){
  .spring-calculator .calc-actions{gap:10px!important;margin-top:16px!important}
  .spring-calculator .calc-actions .btn,
  .spring-calculator .calc-actions button{min-height:56px!important;padding:12px 16px!important;font-size:15px!important}
}
