
.calc-flow { display: flex; flex-direction: column; gap: var(--sp-300); }

.calc-viewonly {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-150);
  margin-bottom: var(--sp-300);
  padding: var(--sp-150) var(--sp-200);
  border: var(--bw) solid var(--line);
  border-radius: var(--r-l);
  background: var(--fill-info);
}
.calc-viewonly-text { display: flex; flex-direction: column; gap: var(--sp-025); }
.calc-viewing :is(#btnFile, #btnUndo, #btnRedo, #btnHistory, #actrow, .addrow, .xdel) {
  display: none;
}

.work-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
  gap: var(--gap);
  align-items: stretch;
}

.work-col { overflow: visible; }
.work-col > .addrow { margin-top: 0; align-self: flex-start; }
.work-col > .work-list { flex: none; }

.field-affix { position: relative; flex: 0 0 112px; width: 112px; }
.field-affix > input.input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]) {
  width: 100%; text-align: left;
}
.field-affix.has-affix > input.input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]) {
  /* вне шкалы: место под приставку, а не воздух */
  padding-right: 58px;
}
.field-affix.has-affix { flex-basis: 150px; width: 150px; }
.affix {
  position: absolute; top: 50%; right: var(--sp-100); transform: translateY(-50%);
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0; border: 0; background: none;
  color: var(--ink3); opacity: .75;
  font-size: var(--fs-s); font-weight: var(--fw-med); cursor: pointer;
  transition: color .12s, opacity .12s;
}
.affix:hover { color: var(--acc-ink); opacity: 1; }

.disc-seg { flex: none; height: var(--h-field); align-items: stretch; }
.disc-seg .disc-mode { height: auto; }

.pin { position: relative; }
.pin-cells {
  display: grid; grid-template-columns: repeat(6, 1fr);
  gap: var(--sp-100); pointer-events: none;
}
.pin-cell {
  display: flex; align-items: center; justify-content: center;
  height: 56px; border: 1.5px solid var(--line2); border-radius: var(--r-s);
  background: var(--field); color: var(--ink);
  font-family: var(--num); font-size: var(--fs-num); font-weight: var(--fw-semi);
}
.pin-cell.on {
  border-color: var(--acc);
  box-shadow: inset 0 0 0 2px var(--acc-weak);
}
input.pin-input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),
input.pin-input:not([type=checkbox]):not([type=radio]):not([type=range]):focus {
  position: absolute; inset: 0; width: 100%; height: 100%;
  padding: 0; border: 0; border-radius: 0;
  background: none; color: transparent; caret-color: transparent;
  outline: none; box-shadow: none; cursor: text;
}

.dialog-actions { flex-wrap: wrap; }

.mrow, .frow2, .xrow {
  padding: var(--sp-150);
  border: var(--bw) solid var(--line); border-radius: var(--r-s);
  background: var(--a-100);
  margin-bottom: var(--sp-150);
}
.mrow:hover, .frow2:hover, .xrow:hover { border-color: var(--line2); }
.hidden-chip { flex: none; align-self: center; }
.hidden-chip[hidden] { display: none; }
:is(.mat, .fcat, .mrow, .frow2, .xrow) .combo-button {
  height: auto; min-height: var(--h-field);
  padding-top: var(--sp-075); padding-bottom: var(--sp-075);
}
:is(.mat, .fcat, .mrow, .frow2, .xrow) :is(.combo-label, .combo-option-title) {
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2;
  white-space: normal; overflow: hidden; overflow-wrap: anywhere;
}
.pos-head {
  flex: 1 1 100%; min-width: 0;
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center;
  gap: var(--sp-050);
}
.pos-title { display: contents; }
.pos-title > * { grid-column: 1; min-width: 0; }
.pos-head > .pos-tools { grid-column: 2; grid-row: 1; }
.pos-name { font-weight: var(--fw-med); }
:is(.mrow, .frow2, .xrow, .mat, .fcat):has(> .pos-head) {
  --r: calc(var(--r-l) - var(--sp-100));
  padding: var(--sp-100);
  border-radius: var(--r-l);
}
:is(.mrow, .frow2, .xrow):has(> .pos-head) { gap: var(--sp-100); }
.xrow .cr-line { flex: 1 1 100%; min-width: 0; display: flex; flex-wrap: wrap; align-items: flex-end;
                 gap: var(--sp-100); }
:is(.mat, .fcat):has(> .pos-head) { display: flex; flex-direction: column; gap: var(--sp-100); }
:is(.mat, .fcat):has(> .pos-head) > * { margin-top: 0; margin-bottom: 0; }
:is(.mat, .fcat):has(> .pos-head) > :empty { display: none; }
.mat:has(> .pos-head) .pick { gap: var(--sp-100); }
.mat:has(> .pos-head) .mat-glass { margin-top: 0; padding-top: var(--sp-100); }
.fcat:has(> .pos-head) > .body,
.fcat:has(> .pos-head) > .body > :first-child { display: flex; flex-direction: column; gap: var(--sp-100); }
.fcat:has(> .pos-head) .frow { gap: var(--sp-100); margin: 0; padding: 0 0 var(--sp-100); }
.fcat:has(> .pos-head) .frow:last-child { padding-bottom: 0; }
.fcat:has(> .pos-head) > .body > * { margin-top: 0; margin-bottom: 0; }
.fcat:has(> .pos-head) > .body > .addrow { align-self: flex-start; }
.pos-head > .pos-tools { margin: calc(var(--sp-050) * -1) calc(var(--sp-050) * -1) calc(var(--sp-050) * -1) 0; }
.pos-tools :is(.icon-btn, .xdel) { width: var(--h-btn-sm); height: var(--h-btn-sm); }
.pos-tools .xdel svg { width: 16px; height: 16px; }
.pos-variant { display: flex; align-items: center; gap: var(--sp-025); }
.pos-variant-mark {
  display: inline-grid; place-items: center; min-width: var(--h-btn-sm); height: var(--h-btn-sm);
  padding: 0 var(--sp-050); border: 0; border-radius: var(--r-xs); background: transparent;
  color: var(--ink2); font: inherit; font-size: var(--fs-s); font-weight: var(--fw-med);
}
button.pos-variant-mark { cursor: pointer; transition: background var(--dur-pop) var(--ease-out); }
button.pos-variant-mark:not(.on):hover { background: var(--a-200); }
.pos-variant-mark.on { background: var(--acc-weak); color: var(--acc-ink); }
html[data-motion="calm"] button.pos-variant-mark { transition: none; }
.work-list > .pos-joined:not([data-joint="last"]) {
  margin-bottom: 0; border-bottom-left-radius: 0; border-bottom-right-radius: 0;
}
.work-list > .pos-joined:not([data-joint="first"]) {
  margin-top: calc((var(--sp-075) + var(--bw)) * -1);
  border-top-left-radius: 0; border-top-right-radius: 0;
}
.fparts > .frow.pos-joined:not([data-joint="last"]) { border-bottom-style: dashed; }
.fparts > .frow:not(:has(~ .frow:not(.pos-variant-off))) { border-bottom: 0; }
:is(.work-list, .fparts) > .pos-variant-off { display: none; }
.ar-variants { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--sp-025) var(--sp-150); }
.ar-variant { display: inline-flex; align-items: center; gap: var(--sp-050); white-space: nowrap; }
.ar-variant .variant-star:not(.final) { opacity: .6; }
.ar-variant .variant-star:not(.final):hover { opacity: 1; }
.pos-tools > [hidden] { display: none; }
.pos-head .title-field-view {
  margin: 0 0 0 calc(var(--sp-050) * -1); padding: 0 var(--sp-050); max-width: calc(100% + var(--sp-050));
}
.pos-head input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]):not(.wp-num):not(.pin-input).title-field-input {
  margin: 0 0 0 calc(var(--sp-050) * -1); padding: 0 var(--sp-050); max-width: calc(100% + var(--sp-050));
}
.pos-meta .counter { margin-left: 0; }
.pos-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--sp-100);
            font-size: var(--fs-s); color: var(--ink2); }
.pos-meta .pos-cat:empty { display: none; }
.pos-meta .unit-price { margin-left: 0; }
.pos-tools { flex: none; display: flex; align-items: center; gap: var(--sp-050); }
.pos-tools .xdel { margin-left: 0; }
.pos-slot { display: contents; }
.reserve.detached:not(.on) { display: none; }
.xrow.xrow-custom .cr-name { flex: 1 1 100%; width: auto; }
.xrow.xrow-custom :is(.cr-unit, .cr-kind) { flex: none; width: max-content; min-width: var(--qty-w); }
.xrow.xrow-custom .cr-unit-own { flex: 1 1 0; width: auto; min-width: 0; }
.xrow.xrow-custom .cr-sum { flex: 0 0 var(--qty-w); }
.xrow.xrow-radius :is(.rd-name, .rd-material, .rd-service) { flex: 1 1 100%; width: auto; min-width: 0; }
.xrow.xrow-radius .rd-cat > .segment { width: max-content; }
.xrow.xrow-radius .rd-kind { flex: 1 1 0; min-width: 0; align-self: flex-end; }
.xrow.xrow-radius .rd-f { display: flex; flex-direction: column; gap: var(--sp-050); flex: 1 1 0; min-width: 0; }
.xrow.xrow-radius .rd-f input { flex: none; width: 100%; }
.xrow.xrow-radius .rd-l { font-size: var(--fs-s); line-height: var(--lh-s); color: var(--ink2); }
.xrow.xrow-radius .rd-info { flex: 1 1 0; min-width: 0; white-space: normal; text-wrap: balance; }
.work-list > [data-block] { cursor: var(--cur-grab); }
.frow {
  padding: var(--sp-100) 0;
  border-bottom: var(--bw) solid var(--line);
  margin-bottom: var(--sp-100);
}
.frow:last-of-type { border-bottom: 0; }

.syscard.locked { cursor: default; pointer-events: none; }

.actrow .btn.small { height: var(--h-btn); border-radius: var(--r); }

.actrow .ar-price {
  display: flex; align-items: center; gap: var(--sp-150);
  min-height: var(--h-field);
  padding: var(--sp-050) var(--sp-050) var(--sp-050) var(--sp-200);
  border: var(--bw) solid var(--line); border-radius: var(--r-l);
  background: var(--card);
  white-space: nowrap; font-variant-numeric: tabular-nums;
}
.actrow .ar-price:not(:has(.ar-parts)) { padding-right: var(--sp-200); }
.screen[data-mounted="calc"] { display: flex; flex-direction: column; }
.screen[data-mounted="calc"] > #workView { flex: 1 0 auto; }
.screen[data-mounted="calc"] > #workView > .actrow { margin-top: auto; }
.actrow .ar-price-label { color: var(--ink2); font-size: var(--fs-s); }
.actrow .ar-price-sum { font-size: var(--fs-l); line-height: var(--lh-l); font-weight: 600;
                        transition: opacity var(--dur-pop) var(--ease-out); }
.actrow .ar-price.stale .ar-price-sum { opacity: .5; }
.actrow .ar-price.partial { background: var(--warn-weak); color: var(--warn-ink); }
.actrow .ar-price-partial { display: inline-flex; color: var(--warn-ink); }
@media (min-width: 701px) {
  .screen[data-mounted="calc"] .actrow > .actrow-err { flex: 0 1 auto; max-width: none; }
}
.screen[data-mounted="calc"] .actrow[data-tight] > .actrow-err {
  flex: 1 0 100%; order: -1; white-space: normal;
}
.screen .actrow[data-tight]:has(> [data-spill]) { flex-wrap: wrap; row-gap: var(--sp-100); }
.actrow > .ar-break { display: none; }
.actrow[data-tight] > .spacer { display: none; }
.actrow[data-tight] > .ar-price { order: -1; margin-right: auto; }
.actrow[data-tight] > .ar-break {
  display: block; flex: 0 0 100%; order: -1; height: 0;
}
@media (max-width: 600px) { .actrow .ar-price-label { display: none; } }

.calc-head { align-items: flex-end; }
.calc-title { display: flex; flex-direction: column; gap: var(--sp-050); min-width: 0; }
.calc-title-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-100); min-width: 0; }
.calc-title-row > h1 { flex: 1 1 auto; min-width: 0; }

