/* Larger form controls and typography for desktop, tablet and phone. */
.form-card { padding: 24px; }
.form-card-head { margin-bottom: 20px; }
.form-card h2 { font-size: 18px; }
.form-card-head p { margin-top: 5px; font-size: 12px; line-height: 1.45; }
.form-grid { gap: 15px; }
.mf { gap: 8px; }
.mf > label { font-size: 13px; }
.mf > input,
.mf > select,
.mf > textarea {
  min-height: 50px;
  padding: 12px 14px;
  border-radius: 11px;
  font-size: 15px;
}
.mf > textarea { min-height: 96px; }

.move-tabs { margin-bottom: 20px; padding: 5px; border-radius: 14px; }
.move-tab { min-height: 44px; padding: 0 18px; border-radius: 10px; font-size: 13px; }

.billing-options { gap: 10px; }
.mf label.billing-option { gap: 10px; min-height: 50px; padding: 0 15px; font-size: 14px; }
.billing-option input[type="radio"] {
  appearance: auto;
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 0;
  padding: 0;
  flex: 0 0 18px;
  border: 0;
  box-shadow: none;
  accent-color: var(--p);
}

/* Keep address fields aligned: the helper note sits in the row gap instead of
   increasing only the street field's grid height. */
.address-demo-hint {
  position: absolute;
  top: calc(100% + 3px);
  left: 0;
  margin: 0;
  line-height: 1.2;
  pointer-events: none;
}
.address-search .address-suggestions { top: calc(100% + 18px); }

/* The master-data and inventory tabs share one common case header. */
.inventory-head.move-form-head {
  position: sticky;
  top: 0;
  z-index: 18;
  display: flex;
  align-items: center;
  gap: 13px;
  margin: 0 -30px 21px;
  padding: 15px 30px;
}
.inventory-head .inventory-actions { margin-left: auto; }
.inventory-context-bar {
  display: flex;
  align-items: center;
  gap: 24px;
  margin: -5px 0 17px;
  padding: 13px 16px;
  border: 1px solid #e2e3e9;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 28px #1c1f2d0a;
}
.inventory-context-bar > div:first-child { min-width: 0; }
.inventory-context-bar strong,
.inventory-context-bar span { display: block; }
.inventory-context-bar strong { font-size: 13px; }
.inventory-context-bar > div:first-child span { margin-top: 3px; color: var(--muted); font-size: 11px; }
.inventory-context-bar .inventory-progress { width: 220px; margin-left: auto; }

/* Inventory readability and a clearly anchored room navigation. */
.inventory-context-bar strong { font-size: 15px; }
.inventory-context-bar > div:first-child span { font-size: 13px; }
.inventory-progress-row { font-size: 11px; }
.inventory-shell { grid-template-columns: 260px minmax(0, 1fr) 275px; gap: 18px; }
.room-panel {
  display: block;
  height: auto;
  padding: 0;
  overflow: hidden;
  color: var(--ink);
}
.room-panel-head {
  padding: 18px 16px;
  border-bottom: 1px solid #e7e4f0;
  background: #faf9ff;
}
.room-panel h2,
.goods-panel h2,
.inventory-summary h2 { font-size: 18px; }
.room-add { width: 40px; height: 40px; border: 1px solid #ded8ef; font-size: 23px; }
.room-list { gap: 8px; padding: 12px; }
.room-button {
  min-height: 64px;
  padding: 10px;
  border: 1px solid #e4e5eb;
  background: #fafafd;
}
.room-button:hover { border-color: #cfc9e2; }
.room-button.active { border-color: #9b90c1; background: var(--ps); }
.room-icon { width: 38px; height: 38px; font-size: 19px; }
.room-button strong { font-size: 14px; }
.room-button small { font-size: 11px; line-height: 1.35; }
.room-list-empty {
  width: 100%;
  min-height: 150px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 20px 12px;
  border: 1px dashed #bdb5d5;
  border-radius: 13px;
  color: var(--p);
  background: #faf9ff;
  text-align: center;
}
.room-list-empty:hover { border-color: var(--p); background: #f5f1ff; }
.room-empty-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: #fff; font-size: 25px; }
.room-list-empty strong { font-size: 13px; }
.room-list-empty small { color: var(--muted); font-size: 11px; }
.goods-head { padding: 20px; }
.goods-head p { font-size: 12px; }
.goods-empty { padding: 54px 24px; }
.goods-empty-icon { width: 64px; height: 64px; font-size: 30px; }
.goods-empty h3 { font-size: 18px; }
.goods-empty p { max-width: 390px; font-size: 13px; }
.goods-name { font-size: 14px; }
.goods-meta { font-size: 11px; }
.goods-re { font-size: 13px; }
.item-detail-toggle { font-size: 11px; }
.visit-options { padding: 17px; }
.visit-options h3 { font-size: 14px; }
.visit-options p { font-size: 11px; }
.visit-option { min-height: 42px; padding: 0 12px; font-size: 11px; }
.inventory-summary { height: auto; padding: 20px; }
.inventory-summary > p { font-size: 12px; }
.summary-number strong { font-size: 24px; }
.summary-number span { font-size: 10px; }
.summary-line { font-size: 12px; }
.summary-line strong { font-size: 12px; }
.summary-tip { font-size: 11px; }

/* iPad landscape: keep rooms and inventory side by side, but move the
   calculation summary below so item names and controls have enough room. */
@media (min-width: 741px) and (max-width: 1400px) {
  .inventory-shell {
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 18px;
  }
  .room-panel { position: sticky; top: 87px; }
  .inventory-summary {
    position: static;
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 210px minmax(250px, 0.9fr) minmax(320px, 1.2fr);
    gap: 18px;
    align-items: center;
  }
  .inventory-summary > p { display: none; }
  .summary-main,
  .summary-list { margin: 0; }
  .summary-list {
    padding: 0 18px;
    border-top: 0;
    border-bottom: 0;
    border-left: 1px solid #ffffff20;
    border-right: 1px solid #ffffff20;
  }
  .summary-tip { line-height: 1.6; }
}

/* Smaller iPads: controls get their own row and the summary becomes a
   comfortable two-column block instead of shrinking the labels. */
@media (min-width: 741px) and (max-width: 1150px) {
  .inventory-shell { grid-template-columns: 240px minmax(0, 1fr); }
  .goods-row { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .goods-actions { justify-content: space-between; }
  .inventory-summary {
    grid-template-columns: minmax(190px, 0.8fr) minmax(0, 1.4fr);
  }
  .summary-list {
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px 24px;
    padding: 15px 0 0;
    border: 0;
    border-top: 1px solid #ffffff20;
  }
  .summary-tip { grid-column: 1 / -1; }
}

/* Match the item-detail dialog to the larger master-data form controls. */
.item-detail-dialog { width: min(680px, 100%); }
.item-detail-head { padding: 24px 25px; }
.item-detail-head h2 { font-size: 22px; }
.item-detail-head p { margin-top: 6px; font-size: 13px; }
.item-detail-body { gap: 18px; padding: 24px 25px; }
.item-detail-body .detail-field { gap: 8px; }
.item-detail-body .detail-field span { font-size: 13px; }
.item-detail-body .detail-field input {
  height: 50px;
  padding: 12px 14px;
  border-radius: 11px;
  font-size: 15px;
}
.item-detail-body .detail-field textarea {
  min-height: 125px;
  padding: 12px 14px;
  border-radius: 11px;
  font-size: 15px;
  line-height: 1.45;
}
.item-detail-options { gap: 10px; }
.item-detail-options .detail-check,
.item-detail-options .photo-button {
  min-height: 50px;
  padding: 0 14px;
  border-radius: 11px;
  font-size: 13px;
}
.item-detail-options .detail-check input { width: 18px; height: 18px; }
.item-detail-foot { padding: 0 25px 24px; }
.item-detail-foot .primary,
.item-detail-foot .secondary { min-height: 48px; font-size: 14px; }

/* Per-stop information collected later during the on-site inspection. */
.site-conditions { margin-top: 16px; padding-top: 14px; border-top: 1px solid #e3e4e9; }
.site-conditions summary {
  min-height: 56px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 13px;
  border: 1px solid #dedfe6;
  border-radius: 12px;
  color: var(--ink);
  background: #fff;
  cursor: pointer;
  list-style: none;
}
.site-conditions summary::-webkit-details-marker { display: none; }
.site-conditions summary > span:first-child { min-width: 0; }
.site-conditions summary strong,
.site-conditions summary small { display: block; }
.site-conditions summary strong { font-size: 14px; }
.site-conditions summary small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.site-conditions summary::after { content: "⌄"; margin-left: 2px; color: var(--p); font-size: 18px; transition: transform .18s; }
.site-conditions[open] summary::after { transform: rotate(180deg); }
.conditions-status {
  margin-left: auto;
  padding: 6px 9px;
  border-radius: 20px;
  color: #8a5300;
  background: #fff3dc;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}
.conditions-status.complete { color: #176d29; background: #eaf8ee; }
.conditions-grid { padding: 15px 2px 2px; }
[data-no-parking-sides][hidden] { display: none !important; }
[data-consultation-time-field][hidden], [data-consultation-duration-field][hidden] { display: none !important; }

/* Transparent calculation core based on the current Excel logic. */
.calculation-panel { display: none; padding-bottom: 40px; }
.calculation-panel.active { display: block; }
.calc-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 18px; }
.calc-title-line { display: flex; align-items: center; gap: 12px; }
.calc-head h2 { margin: 3px 0 4px; font-size: 29px; }
.calc-head p { margin: 0; color: var(--muted); font-size: 14px; }
.calc-state,.calc-excel-tag { display: inline-flex; padding: 6px 9px; border-radius: 20px; color: #7b4a00; background: #fff1d5; font-size: 10px; font-weight: 800; white-space: nowrap; }
.calc-catalog-open { min-height: 43px; }
.calc-basis-card,.calc-card,.calc-catalog-teaser { border: 1px solid #dedfe7; border-radius: 17px; background: #fff; box-shadow: 0 8px 26px #241b4d0b; }
.calc-basis-card { display: grid; grid-template-columns: minmax(210px,.75fr) minmax(0,2fr); align-items: center; gap: 20px; margin-bottom: 16px; padding: 18px 20px; }
.calc-basis-intro,.calc-team-card header>div { display: flex; align-items: center; gap: 12px; }
.calc-basis-intro strong,.calc-basis-intro small { display: block; }
.calc-basis-intro strong { font-size: 14px; }
.calc-basis-intro small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.calc-section-number { flex: 0 0 auto; width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: var(--p); background: var(--ps); font-size: 11px; font-weight: 900; }
.calc-bases { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }
.calc-bases>div { padding: 11px 13px; border-left: 1px solid #ececf1; }
.calc-bases span,.calc-bases strong,.calc-bases small { display: block; }
.calc-bases span { color: var(--muted); font-size: 10px; font-weight: 700; }
.calc-bases strong { margin: 4px 0 2px; font-size: 18px; }
.calc-bases small { color: #8c909b; font-size: 9px; }
.calc-workspace { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(290px,.75fr); gap: 16px; align-items: start; }
.calc-personnel-column { display: grid; gap: 16px; min-width: 0; }
.calc-team-card { overflow: hidden; }
.calc-team-card>header { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 20px 22px; border-bottom: 1px solid #e7e7ed; }
.calc-team-card h3 { margin: 0; font-size: 20px; }
.calc-team-card header p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.calc-team-head-actions { justify-content: flex-end; }
.calc-collapse-button { min-height: 34px; display: inline-flex; align-items: center; gap: 8px; padding: 0 10px; border: 1px solid #d9d6e5; border-radius: 9px; color: var(--p); background: #fff; font-size: 10px; font-weight: 800; white-space: nowrap; }
.calc-collapse-button b { width: 14px; font-size: 16px; line-height: 1; transition: transform .2s; }
.calc-collapsed-summary { display: none; align-items: center; gap: 8px; }
.calc-collapsed-summary strong { padding: 6px 9px; border-radius: 20px; color: #4f5360; background: #f3f3f6; font-size: 10px; white-space: nowrap; }
.calc-collapsed-summary strong:last-child { color: #176d29; background: #eaf8ee; }
.calc-team-body { max-height: 900px; overflow: hidden; opacity: 1; transition: max-height .3s ease,opacity .2s ease; }
.calc-team-card.collapsed .calc-team-body { max-height: 0; opacity: 0; }
.calc-team-card.collapsed>header { border-bottom-color: transparent; }
.calc-team-card.collapsed .calc-excel-tag { display: none; }
.calc-team-card.collapsed .calc-collapsed-summary { display: inline-flex; }
.calc-formula { display: flex; align-items: center; gap: 10px; padding: 12px 22px; color: #463376; background: #f7f4ff; font-size: 11px; }
.calc-formula strong { margin-left: auto; font-size: 13px; }
.calc-info { flex: 0 0 auto; width: 22px; height: 22px; display: inline-grid; place-items: center; padding: 0; border: 0; border-radius: 50%; color: #fff; background: var(--p); font-size: 11px; font-weight: 850; line-height: 1; cursor: pointer; transition: transform .16s,background .16s; }
.calc-info:hover,.calc-info:focus-visible { transform: scale(1.08); background: var(--p2); outline: 2px solid #8f7dc8; outline-offset: 2px; }
.calc-info.light { color: #372373; background: #fff; }
.calc-value-with-info { display: inline-flex!important; align-items: center; justify-content: flex-end; gap: 7px; }
.calc-team-list { padding: 3px 22px; }
.calc-person { display: grid; grid-template-columns: minmax(190px,1fr) 116px 138px; align-items: center; gap: 16px; min-height: 73px; border-bottom: 1px solid #ececf1; }
.calc-person>div:first-child strong,.calc-person>div:first-child small { display: block; }
.calc-person>div:first-child strong { font-size: 13px; }
.calc-person>div:first-child small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.calc-stepper { display: grid; grid-template-columns: 36px 40px 36px; align-items: center; overflow: hidden; border: 1px solid #d7d4e3; border-radius: 10px; background: #fff; }
.calc-stepper button { height: 36px; padding: 0; border: 0; color: var(--p); background: #f7f5fc; font-size: 19px; font-weight: 700; }
.calc-stepper button:disabled { color: #b9bbc4; cursor: not-allowed; }
.calc-stepper output { text-align: center; font-size: 13px; font-weight: 850; }
.calc-person-result { text-align: right; }
.calc-person-result strong,.calc-person-result small { display: block; }
.calc-person-result strong { font-size: 13px; }
.calc-person-result small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.calc-advisor { display: grid; grid-template-columns: 1fr 115px 138px; align-items: center; gap: 16px; margin: 8px 22px 20px; padding: 15px 16px; border: 1px solid #dcefdc; border-radius: 13px; background: #f4fbf5; }
.calc-advisor>div strong,.calc-advisor>div small { display: block; }
.calc-advisor>div strong { font-size: 13px; }
.calc-advisor>div small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.calc-advisor label { display: flex; align-items: center; overflow: hidden; border: 1px solid #cfd8cf; border-radius: 9px; background: #fff; }
.calc-advisor input { width: 76px; height: 38px; padding: 0 8px; border: 0; font: inherit; font-weight: 800; }
.calc-advisor label span { color: var(--muted); font-size: 10px; }
.calc-advisor>.calc-value-with-info { text-align: right; font-size: 13px; }
.calc-allowance { margin-top: -10px; border-color: #eadfbd; background: #fffaf0; }
.calc-allowance label { border-color: #dfd2ad; }
.calc-warning { display: grid; gap: 3px; margin: -7px 22px 20px; padding: 11px 13px; border: 1px solid #edc16a; border-radius: 10px; color: #774900; background: #fff8e7; }
.calc-warning strong { font-size: 11px; }.calc-warning span { font-size: 9px; }
.calc-result-card { grid-column: 2; grid-row: 1; position: sticky; top: 18px; padding: 24px; border: 0; border-radius: 18px; color: #fff; background: radial-gradient(circle at 100% 0,#40d36033,transparent 37%),linear-gradient(145deg,#382279,#25165e); box-shadow: 0 18px 42px #2b19672f; }
.calc-result-kicker { color: #b9efc4; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .7px; }
.calc-result-card h3 { margin: 7px 0 4px; font-size: 22px; }.calc-result-card>p { margin: 0; color: #dcd6f0; font-size: 11px; line-height: 1.45; }
.calc-result-total { margin: 22px -7px 14px; padding: 18px; border: 1px solid #ffffff1f; border-radius: 14px; background: #ffffff12; }
.calc-result-total>span:first-child,.calc-result-total strong { display: block; }.calc-result-total>span:first-child { color: #d4cde9; font-size: 10px; }.calc-result-total>.calc-value-with-info { justify-content: space-between; margin-top: 5px; }.calc-result-total strong { font-size: 28px; }
.calc-result-lines { display: grid; gap: 11px; padding: 5px 0 18px; border-bottom: 1px solid #ffffff25; }
.calc-result-lines div { display: flex; justify-content: space-between; gap: 12px; color: #ddd8ee; font-size: 10px; }.calc-result-lines strong { color: #fff; }
.calc-result-note { display: grid; gap: 5px; padding: 17px 0; }.calc-result-note strong { color: #b9efc4; font-size: 10px; }.calc-result-note span { color: #ddd8ee; font-size: 10px; line-height: 1.55; }
.calc-next { width: 100%; min-height: 42px; border: 1px solid #ffffff2b; border-radius: 11px; color: #fff; background: #ffffff14; font-size: 10px; font-weight: 800; }
.calc-external-card { overflow: hidden; }
.calc-external-card>header { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 20px 22px; border-bottom: 1px solid #e7e7ed; }
.calc-external-card>header>div { display: flex; align-items: center; gap: 12px; }
.calc-external-card h3 { margin: 0; font-size: 20px; }.calc-external-card header p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.calc-external-body { max-height: 900px; overflow: hidden; opacity: 1; transition: max-height .3s ease,opacity .2s ease; }
.calc-external-card.collapsed .calc-external-body { max-height: 0; opacity: 0; }.calc-external-card.collapsed>header { border-bottom-color: transparent; }.calc-external-card.collapsed .calc-excel-tag { display: none; }.calc-external-card.collapsed .calc-collapsed-summary { display: inline-flex; }
.ext-link-note { display: flex; align-items: center; gap: 10px; padding: 12px 22px; color: #315337; background: #eff9f1; font-size: 10px; }.ext-link-note strong { white-space: nowrap; }
.ext-list { padding: 3px 22px; }
.ext-person { display: grid; grid-template-columns: minmax(230px,1fr) 116px 155px; align-items: center; gap: 16px; min-height: 75px; border-bottom: 1px solid #ececf1; }
.ext-person>div:first-child>strong,.ext-person>div:first-child>small { display: block; }.ext-person>div:first-child>strong { font-size: 13px; }.ext-person>div:first-child>small { margin-top: 4px; color: var(--muted); font-size: 10px; }
.rate-missing,.manual-badge { display: inline-flex; margin-left: 6px; padding: 4px 6px; border-radius: 12px; color: #8a5300; background: #fff0d2; font-size: 8px; vertical-align: 1px; }.manual-badge { color: #5e6270; background: #ececf1; }
.missing-rate { background: linear-gradient(90deg,#fffaf1,transparent); }
.ext-manual { grid-template-columns: minmax(210px,1fr) minmax(220px,.8fr) 155px; }
.ext-manual-counts { display: flex; gap: 8px; }.ext-manual-counts label { display: grid; gap: 3px; color: var(--muted); font-size: 8px; }.ext-manual-counts input { width: 84px; height: 35px; padding: 0 8px; border: 1px solid #d9d9e1; border-radius: 8px; font: inherit; font-size: 11px; }
.ext-manual-price { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }.ext-manual-price>label { display: flex; align-items: center; overflow: hidden; border: 1px solid #d9d9e1; border-radius: 8px; background: #fff; }.ext-manual-price input { width: 94px; height: 35px; padding: 0 8px; border: 0; font: inherit; font-size: 11px; font-weight: 750; }.ext-manual-price label span { padding-right: 8px; color: var(--muted); font-size: 10px; }
.ext-total { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 17px 22px; background: #f7f5fc; }.ext-total span small,.ext-total span strong { display: block; }.ext-total span small { color: var(--muted); font-size: 9px; }.ext-total span strong { margin-top: 3px; font-size: 12px; }.ext-total>strong { color: var(--p); font-size: 19px; }
.calc-logistics-card { overflow: hidden; }
.calc-logistics-card>header { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 20px 22px; border-bottom: 1px solid #e7e7ed; }
.calc-logistics-card>header>div { display: flex; align-items: center; gap: 12px; }
.calc-logistics-card h3 { margin: 0; font-size: 20px; }
.calc-logistics-card header p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.calc-logistics-body { max-height: 500px; overflow: hidden; padding: 3px 22px; opacity: 1; transition: max-height .3s ease,opacity .2s ease,padding .3s ease; }
.calc-logistics-card.collapsed .calc-logistics-body { max-height: 0; padding-top: 0; padding-bottom: 0; opacity: 0; }
.calc-logistics-card.collapsed>header { border-bottom-color: transparent; }
.calc-logistics-card.collapsed .calc-excel-tag { display: none; }
.calc-logistics-card.collapsed .calc-collapsed-summary { display: inline-flex; }
.logistics-row { display: grid; grid-template-columns: minmax(190px,1fr) 115px 115px 135px; align-items: center; gap: 16px; min-height: 78px; border-bottom: 1px solid #ececf1; }
.logistics-row:last-child { border-bottom: 0; }
.logistics-row>div strong,.logistics-row>div small,.logistics-row>div span { display: block; }
.logistics-row>div:first-child strong { font-size: 13px; }
.logistics-row>div:first-child small { margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.logistics-row>div:not(:first-child) span { color: var(--muted); font-size: 9px; }
.logistics-row>div:not(:first-child) strong { margin-top: 4px; font-size: 12px; }
.logistics-row>.calc-value-with-info strong { font-size: 15px; }
.calc-packaging-card { overflow: hidden; }
.calc-packaging-card>header { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 20px 22px; border-bottom: 1px solid #e7e7ed; }
.calc-packaging-card>header>div:first-child { display: flex; align-items: center; gap: 12px; }
.calc-packaging-card h3 { margin: 0; font-size: 20px; }
.calc-packaging-card header p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.calc-packaging-body { max-height: 4000px; overflow: hidden; opacity: 1; transition: max-height .3s ease,opacity .2s ease; }
.calc-packaging-card.collapsed .calc-packaging-body { max-height: 0; opacity: 0; }
.calc-packaging-card.collapsed>header { border-bottom-color: transparent; }
.calc-packaging-card.collapsed .calc-excel-tag { display: none; }
.calc-packaging-card.collapsed .calc-collapsed-summary { display: inline-flex; }
.pack-source-note { display: flex; align-items: center; gap: 10px; padding: 12px 22px; color: #315337; background: #eff9f1; font-size: 10px; }
.pack-source-note strong { white-space: nowrap; }
.pack-list { padding: 3px 22px; }
.pack-row { display: grid; grid-template-columns: minmax(230px,1fr) 145px 180px; align-items: center; gap: 16px; min-height: 88px; border-bottom: 1px solid #ececf1; }
.pack-row:last-child { border-bottom: 0; }
.pack-material-row { grid-template-columns: minmax(160px,1fr) 85px 120px 145px; }
.pack-row>div:first-child>strong,.pack-row>div:first-child>small,.pack-metric span,.pack-metric strong,.pack-metric small,.pack-result>span:first-child,.pack-result>small { display: block; }
.pack-row>div:first-child>strong { font-size: 13px; }
.pack-row>div:first-child>small,.pack-metric span,.pack-metric small,.pack-result>span:first-child,.pack-result>small { color: var(--muted); font-size: 9px; }
.pack-row>div:first-child>small { margin-top: 4px; }
.pack-metric strong { margin: 3px 0; font-size: 17px; }
.pack-result { text-align: right; }
.pack-result .calc-value-with-info { justify-content: flex-end; margin: 4px 0; }
.pack-result .calc-value-with-info strong { font-size: 16px; }
.calc-catalog-teaser { width: 100%; display: grid; grid-template-columns: 46px 1fr auto; align-items: center; gap: 14px; margin-top: 16px; padding: 15px 18px; color: inherit; text-align: left; }
.calc-catalog-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; color: #fff; background: var(--p); font-size: 18px; font-weight: 900; }
.calc-catalog-teaser strong,.calc-catalog-teaser small { display: block; }.calc-catalog-teaser strong { font-size: 13px; }.calc-catalog-teaser small { margin-top: 3px; color: var(--muted); font-size: 10px; }.calc-catalog-teaser>span:last-child { color: var(--p); font-size: 11px; font-weight: 800; }
.calc-explain-backdrop { position: fixed; inset: 0; z-index: 70; display: none; place-items: center; padding: 24px; background: #19112bbf; backdrop-filter: blur(5px); }
.calc-explain-backdrop.open { display: grid; }
.calc-explain-modal { width: min(540px,100%); overflow: hidden; border-radius: 20px; background: #fff; box-shadow: 0 28px 80px #140c30a8; }
.calc-explain-modal>header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px 24px 17px; border-bottom: 1px solid #e5e5eb; }
.calc-explain-modal h3 { margin: 4px 0 0; font-size: 20px; }
.calc-explain-close { width: 36px; height: 36px; padding: 0; border: 1px solid #dddde5; border-radius: 10px; color: #5c6070; background: #f8f8fa; font-size: 23px; }
.calc-explain-modal>p { margin: 18px 24px 14px; color: #575d69; font-size: 12px; line-height: 1.55; }
.calc-explain-steps { display: grid; gap: 1px; margin: 0 24px; overflow: hidden; border: 1px solid #e1e1e7; border-radius: 12px; background: #e1e1e7; }
.calc-explain-steps>div { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 43px; padding: 0 13px; background: #fff; }
.calc-explain-steps span { color: #747985; font-size: 10px; }
.calc-explain-steps strong { max-width: 65%; text-align: right; font-size: 11px; }
.calc-explain-result { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 15px 24px 10px; padding: 15px; border-radius: 12px; color: #fff; background: linear-gradient(135deg,#3b267d,#281660); }
.calc-explain-result span { font-size: 10px; font-weight: 700; }.calc-explain-result strong { font-size: 18px; }
.calc-explain-source { display: block; margin: 0 24px 22px; color: #8a8e98; font-size: 9px; line-height: 1.4; }
.catalog-backdrop { position: fixed; inset: 0; z-index: 60; display: none; place-items: center; padding: 24px; background: #19112bbf; backdrop-filter: blur(5px); }.catalog-backdrop.open { display: grid; }
.catalog-modal { width: min(820px,100%); max-height: min(780px,92vh); overflow: auto; border-radius: 21px; background: #fff; box-shadow: 0 28px 80px #140c30a8; }
.catalog-modal>header { position: sticky; top: 0; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 23px 26px 18px; border-bottom: 1px solid #e6e6ec; background: #fff; }.catalog-modal h2 { margin: 4px 0; font-size: 25px; }.catalog-modal header p { margin: 0; color: var(--muted); font-size: 11px; }
.catalog-close { width: 38px; height: 38px; padding: 0; border: 1px solid #dddde5; border-radius: 11px; color: #5c6070; background: #f8f8fa; font-size: 24px; }
.catalog-notice { display: grid; grid-template-columns: auto 1fr; gap: 12px; margin: 18px 26px; padding: 12px 14px; border-left: 4px solid var(--g); border-radius: 0 10px 10px 0; color: #315337; background: #eef9f0; }.catalog-notice strong { font-size: 10px; }.catalog-notice span { font-size: 10px; line-height: 1.45; }
.catalog-group { margin: 0 26px 22px; }.catalog-group h3 { margin: 0 0 9px; font-size: 15px; }.catalog-table { overflow: hidden; border: 1px solid #e2e2e8; border-radius: 12px; }
.catalog-row { display: grid; grid-template-columns: minmax(175px,1.5fr) .75fr .75fr 1fr .7fr; align-items: center; gap: 12px; min-height: 42px; padding: 0 14px; border-bottom: 1px solid #ececf1; font-size: 10px; }.catalog-row:last-child { border: 0; }.catalog-row strong { font-size: 11px; }.catalog-row small { color: var(--muted); }.catalog-label { min-height: 34px; color: #7b7f8c; background: #f7f7fa; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .4px; }
.catalog-modal>footer { position: sticky; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 26px; border-top: 1px solid #e5e5eb; background: #fff; }.catalog-modal>footer span { color: var(--muted); font-size: 10px; }.catalog-modal>footer button { min-height: 40px; }

@media (max-width: 1080px) {
  .calc-workspace { grid-template-columns: 1fr; }
  .calc-personnel-column,.calc-result-card { grid-column: 1; grid-row: auto; }
  .calc-personnel-column { order: 1; }
  .calc-result-card { order: 2; position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 0 26px; }
  .calc-result-card .calc-result-total { margin-top: 12px; }
  .calc-result-card .calc-next { align-self: end; }
}

@media (max-width: 820px) {
  .calc-basis-card { grid-template-columns: 1fr; }
  .calc-bases { grid-template-columns: repeat(2,1fr); }
  .calc-bases>div { border-left: 0; border-top: 1px solid #ececf1; }
  .calc-person { grid-template-columns: minmax(175px,1fr) 116px; padding: 11px 0; }
  .calc-person-result { grid-column: 1 / -1; display: flex; justify-content: space-between; padding: 7px 10px; border-radius: 8px; background: #f8f8fa; text-align: left; }
  .calc-person-result small { margin: 0; }
  .calc-advisor { grid-template-columns: 1fr 115px; }
  .calc-advisor>.calc-value-with-info { grid-column: 1 / -1; padding-top: 8px; border-top: 1px solid #dce7dc; }
  .calc-team-card>header { align-items: flex-start; }
  .calc-team-head-actions { flex-wrap: wrap; }
  .ext-person { grid-template-columns: minmax(175px,1fr) 116px; padding: 11px 0; }
  .ext-person>.calc-person-result,.ext-person>.ext-manual-price { grid-column: 1 / -1; }
  .ext-manual { grid-template-columns: 1fr; }
  .ext-manual-counts { grid-column: 1 / -1; }
  .logistics-row { grid-template-columns: minmax(175px,1fr) 110px; padding: 12px 0; }
  .logistics-row>.calc-value-with-info { grid-column: 1 / -1; justify-content: space-between; padding: 9px 10px; border-radius: 8px; background: #f8f8fa; }
}

/* Case documents generated after calculation. */
.documents-panel { display: none; padding-bottom: 40px; }
.documents-panel.active { display: block; }
.documents-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.documents-head h2 { margin: 3px 0 5px; font-size: 27px; }
.documents-head p { margin: 0; color: var(--muted); font-size: 14px; }
.documents-count { padding: 7px 11px; border-radius: 20px; color: #176d29; background: #eaf8ee; font-size: 11px; font-weight: 800; white-space: nowrap; }
.documents-grid { display: grid; gap: 14px; max-width: 1020px; }
.document-card { display: grid; grid-template-columns: 58px minmax(0,1fr) auto; align-items: center; gap: 18px; padding: 22px; border: 1px solid #e0e1e7; border-radius: 17px; background: #fff; box-shadow: 0 8px 26px #241b4d0c; }
.document-card.ready { border-left: 5px solid var(--g); }
.document-card.future { grid-template-columns: 58px minmax(0,1fr); color: #737885; background: #fafafd; box-shadow: none; }
.document-card-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 15px; color: var(--p); background: var(--ps); }
.document-card-icon .icon { width: 24px; height: 24px; }
.document-card-icon.muted { color: #8d91a0; background: #eff0f4; font-size: 24px; font-weight: 600; }
.document-card-top { display: flex; align-items: center; gap: 12px; }
.document-card h3 { margin: 0; font-size: 17px; }
.document-card p { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.document-status { padding: 5px 8px; border-radius: 20px; color: #176d29; background: #eaf8ee; font-size: 10px; font-weight: 800; white-space: nowrap; }
.document-status.incomplete { color: #8a5300; background: #fff0d2; }
.document-warning { display: grid; gap: 3px; margin: 14px 0; padding: 11px 12px; border: 1px solid #efc36b; border-radius: 11px; color: #754700; background: #fff8e9; }
.document-warning strong { font-size: 12px; }
.document-warning span { font-size: 10px; line-height: 1.4; }
.document-warning.hidden { display: none; }
.document-actions button:disabled,
.doc-top button:disabled,
.send-panel button:disabled { opacity: .45; cursor: not-allowed; }

/* The contract cover letter deliberately follows the existing Excel letter
   instead of the branded order-confirmation layout. */
.paper.excel-letter { padding: 38px 44px 42px; font-size: 12px; line-height: 1.48; }
.excel-letter .recipient { min-height: 118px; margin: 0; line-height: 1.45; }
.excel-letter .recipient strong { font-weight: 400; }
.excel-letter .letter-date { margin-bottom: 6px; font-weight: 700; }
.excel-letter h1 { margin: 0 0 46px; font-size: 17px; }
.excel-letter p { margin: 0 0 21px; }
.excel-letter .excel-signature { margin-top: 34px; }
.excel-letter .excel-signature span { display: block; margin-top: 27px; }
.excel-letter .excel-signature strong { margin-top: 25px; color: inherit; }
.excel-letter .letter-attachment { margin-top: 25px; }

@media (max-width: 740px) {
  .paper.excel-letter { padding: 31px 24px 42px; font-size: 9px; }
  .excel-letter .recipient { min-height: 86px; }
  .excel-letter h1 { margin-bottom: 30px; font-size: 15px; }
  .excel-letter p { margin-bottom: 15px; }
  .excel-letter .excel-signature { margin-top: 24px; }
  .excel-letter .excel-signature span { margin-top: 19px; }
  .excel-letter .excel-signature strong { margin-top: 18px; }
}
.document-status.planned { color: #686d78; background: #edeef2; }
.document-status.mock { color: #8a5300; background: #fff3dc; }
.contract-document { border-left-color: var(--p2); }
.document-meta { display: flex; flex-wrap: wrap; gap: 7px 16px; margin-top: 12px; color: #7a7f8c; font-size: 10px; }
.document-actions { display: flex; gap: 8px; }
.document-actions button { min-height: 42px; white-space: nowrap; }

@media (max-width: 740px) {
  .form-card { padding: 18px; }
  .mf > input,
  .mf > select,
  .mf > textarea { font-size: 16px; }
  .move-tab { padding: 0 9px; font-size: 12px; }
  .inventory-head.move-form-head { margin: 0 -15px 17px; padding: 11px 15px; }
  .inventory-context-bar { margin-top: -3px; padding: 12px 14px; }
  .inventory-context-bar > div:first-child span { font-size: 10px; }
  .inventory-context-bar .inventory-progress { display: none; }
  .inventory-shell { display: block; }
  .room-panel-head { padding: 14px 10px; }
  .room-list { gap: 8px; padding: 8px 0 10px; }
  .room-button { min-height: 54px; }
  .room-list-empty { min-width: 230px; min-height: 110px; }
  .item-detail-head,
  .item-detail-body { padding: 19px; }
  .item-detail-foot { padding: 0 19px 19px; }
  .item-detail-body .detail-field input,
  .item-detail-body .detail-field textarea { font-size: 16px; }
  .site-conditions summary { align-items: flex-start; }
  .conditions-status { font-size: 9px; }
  .move-tabs { justify-content: flex-start; overflow-x: auto; }
  .move-tab { flex: 0 0 auto; white-space: nowrap; }
  .calc-head { align-items: flex-start; }
  .calc-head h2 { font-size: 25px; }
  .calc-head>button { padding-inline: 11px; font-size: 10px; }
  .calc-basis-card { padding: 16px; }
  .calc-bases { grid-template-columns: 1fr 1fr; }
  .calc-bases>div { padding: 10px; }
  .calc-team-card>header { align-items: flex-start; padding: 17px; }
  .calc-team-card header>div { align-items: flex-start; }
  .calc-excel-tag { display: none; }
  .calc-team-head-actions { justify-content: flex-end; gap: 7px!important; }
  .calc-collapse-button span { display: none; }
  .calc-collapse-button { width: 36px; justify-content: center; padding: 0; }
  .calc-team-card.collapsed>header { align-items: center; }
  .calc-team-card.collapsed .calc-team-head-actions { flex: 1; }
  .calc-team-card.collapsed .calc-collapsed-summary { margin-left: auto; }
  .calc-team-card.collapsed .calc-collapsed-summary strong:first-child { display: none; }
  .calc-formula { padding-inline: 17px; }
  .calc-team-list { padding-inline: 17px; }
  .calc-person { grid-template-columns: minmax(0,1fr) 106px; gap: 10px; }
  .calc-stepper { grid-template-columns: 33px 38px 33px; }
  .calc-advisor { margin-inline: 17px; }
  .calc-external-card>header { align-items: flex-start; padding: 17px; }
  .calc-external-card>header>div { align-items: flex-start; }
  .calc-external-card .calc-team-head-actions { justify-content: flex-end; gap: 7px!important; }
  .calc-external-card.collapsed>header { align-items: center; }
  .calc-external-card.collapsed .calc-team-head-actions { flex: 1; }
  .calc-external-card.collapsed .calc-collapsed-summary { margin-left: auto; }
  .calc-external-card.collapsed .calc-collapsed-summary strong:first-child { display: none; }
  .calc-packaging-card>header { align-items: flex-start; padding: 17px; }
  .calc-packaging-card>header>div:first-child { align-items: flex-start; }
  .calc-packaging-card .calc-team-head-actions { justify-content: flex-end; gap: 7px!important; }
  .calc-packaging-card.collapsed>header { align-items: center; }
  .calc-packaging-card.collapsed .calc-team-head-actions { flex: 1; }
  .calc-packaging-card.collapsed .calc-collapsed-summary { margin-left: auto; }
  .calc-packaging-card.collapsed .calc-collapsed-summary strong:first-child { display: none; }
  .pack-source-note { align-items: flex-start; flex-direction: column; padding-inline: 17px; }
  .pack-list { padding-inline: 17px; }
  .pack-row { grid-template-columns: minmax(0,1fr) 105px; gap: 10px; }
  .pack-material-row { grid-template-columns: minmax(0,1fr) 105px; }
  .pack-material-row>.pack-metric:nth-child(3) { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; padding-top: 11px; border-top: 1px solid #ececf1; }
  .pack-material-row>.pack-metric:nth-child(3) span,.pack-material-row>.pack-metric:nth-child(3) strong,.pack-material-row>.pack-metric:nth-child(3) small { display: inline; margin: 0; }
  .pack-material-row>.pack-metric:nth-child(3) small { margin-left: 5px; }
  .pack-result { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; text-align: left; padding: 12px 0 15px; border-top: 1px solid #ececf1; }
  .pack-result>small { display: none; }
  .ext-link-note { align-items: flex-start; flex-direction: column; padding-inline: 17px; }
  .ext-list { padding-inline: 17px; }
  .ext-person { grid-template-columns: minmax(0,1fr) 106px; gap: 10px; }
  .ext-manual { grid-template-columns: 1fr; }
  .ext-manual-counts { flex-wrap: wrap; }
  .calc-result-card { display: block; padding: 21px; }
  .calc-catalog-teaser { grid-template-columns: 42px 1fr; }
  .calc-catalog-teaser>span:last-child { display: none; }
  .catalog-backdrop { padding: 0; place-items: end center; }
  .calc-explain-backdrop { padding: 0; place-items: end center; }
  .calc-explain-modal { width: 100%; border-radius: 20px 20px 0 0; }
  .calc-explain-modal>header { padding: 20px 18px 15px; }
  .calc-explain-modal>p,.calc-explain-steps,.calc-explain-result,.calc-explain-source { margin-left: 18px; margin-right: 18px; }
  .calc-explain-steps strong { max-width: 58%; }
  .catalog-modal { width: 100%; max-height: 94vh; border-radius: 21px 21px 0 0; }
  .catalog-modal>header,.catalog-modal>footer { padding-inline: 18px; }
  .catalog-notice,.catalog-group { margin-inline: 18px; }
  .catalog-table { overflow-x: auto; }
  .catalog-row { min-width: 620px; grid-template-columns: minmax(150px,1.5fr) .75fr .75fr 1fr .7fr; }
  .documents-head { align-items: flex-start; }
  .document-card { grid-template-columns: 50px minmax(0,1fr); padding: 18px; }
  .document-actions { grid-column: 1 / -1; }
  .document-actions button { flex: 1; }
  .document-card-top { align-items: flex-start; flex-direction: column; gap: 7px; }
}
