/* Laser tracker network uncertainty calculator. Scoped to .calc-* so it cannot disturb the rest of the site. */
.section.calc-head{padding-top:2.5rem;padding-bottom:2.25rem}
.calc-title{margin-top:0;max-width:44rem}
.calc-head .subheading{margin-bottom:0;max-width:46rem}

.section.calc{padding-top:2.5rem;padding-bottom:4rem;overflow:visible;
  --ink:#15191A;--teal:#2C5A61;--teal-2:#3f818b;--tint:#DAE4E5;--wash:#f3f7f7;--line:rgba(21,25,26,.18);--muted:rgba(21,25,26,.62);
  --good:#2C5A61;--mid:#8a5a00;--bad:#a3322a}
.calc-grid{display:grid;grid-template-columns:minmax(0,25rem) minmax(0,1fr);gap:2rem;align-items:start}

/* ---------- inputs ---------- */
.calc-panel{border:1px solid var(--line);border-radius:12px;background:#fff}
.calc-panel-head{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--line)}
.calc-panel-head .heading_h4{margin:0}
.calc-inputs details{border-bottom:1px solid var(--line)}
.calc-inputs details:last-child{border-bottom:0}
.calc-inputs summary{display:flex;justify-content:space-between;align-items:center;padding:.95rem 1.25rem;cursor:pointer;list-style:none;font-family:"Lexend",sans-serif;font-weight:500;font-size:1rem}
.calc-inputs summary::-webkit-details-marker{display:none}
.calc-inputs summary::after{content:"";width:.55rem;height:.55rem;border-right:2px solid var(--teal);border-bottom:2px solid var(--teal);transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.calc-inputs details[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
.calc-inputs summary:focus-visible,.calc-link:focus-visible,.calc-input:focus-visible,.calc-toggle button:focus-visible,.calc-check input:focus-visible{outline:2px solid var(--teal-2);outline-offset:2px}
.calc-body{display:flex;flex-direction:column;gap:.9rem;padding:0 1.25rem 1.25rem}
.calc-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.calc-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.calc-field{display:flex;flex-direction:column;gap:.3rem;margin:0;font-size:.85rem;font-weight:500;line-height:1.3;color:rgba(21,25,26,.82)}
.calc-field small{font-weight:400;color:var(--muted);font-size:.78rem}
.calc-input{width:100%;min-width:0;padding:.55rem .65rem;border:1px solid rgba(21,25,26,.28);border-radius:8px;background:#fff;color:var(--ink);font:400 .95rem/1.3 "Instrument Sans",sans-serif}
.calc-input:hover{border-color:rgba(21,25,26,.5)}
select.calc-input{padding-right:.4rem}
.calc-hint{margin:0;font-size:.8rem;line-height:1.45;color:var(--muted)}
.calc-link{align-self:flex-start;padding:0;border:0;background:none;color:var(--teal);font:500 .85rem "Instrument Sans",sans-serif;text-decoration:underline;cursor:pointer}
.calc-link:hover{color:var(--teal-2)}

.calc-seg{display:flex;border:1px solid rgba(21,25,26,.28);border-radius:8px;overflow:hidden}
.calc-seg label{position:relative;flex:1;margin:0;text-align:center;cursor:pointer;font-weight:500}
.calc-seg label+label{border-left:1px solid rgba(21,25,26,.28)}
.calc-seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.calc-seg span{display:block;padding:.5rem 0;font-size:.95rem}
.calc-seg input:checked+span{background:var(--teal);color:#fff}
.calc-seg input:focus-visible+span{outline:2px solid var(--teal-2);outline-offset:-3px}

.calc-stations{display:flex;flex-direction:column;gap:.5rem}
.calc-strow{display:grid;grid-template-columns:2rem repeat(3,minmax(0,1fr));gap:.5rem;align-items:center}
.calc-strow[hidden]{display:none}
.calc-strow b{font-family:"Lexend",sans-serif;font-weight:500;font-size:.85rem}

/* ---------- results ---------- */
.calc-results{position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}
.calc-progress{position:sticky;top:0;z-index:3;height:3px;background:transparent}
.calc-progress i{display:block;height:100%;width:0;background:#5AADB7}
.calc-strip{background:var(--teal);color:#fff;padding:1.25rem 1.5rem 1rem}
.calc-big{display:flex;flex-direction:column;gap:.15rem;margin-bottom:1rem}
.calc-num{font-family:"Lexend",sans-serif;font-weight:500;font-size:clamp(2.4rem,5vw,3.4rem);line-height:1;letter-spacing:-.01em}
.calc-cap{font-size:1rem;opacity:.88}
.calc-mini{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0}
.calc-mini dt{font-size:.8rem;opacity:.75;margin:0 0 .15rem;font-weight:400}
.calc-mini dd{margin:0;font-family:"Lexend",sans-serif;font-weight:500;font-size:1.05rem;line-height:1.3}
.calc-verdict{margin:1rem 0 0;padding:.7rem .9rem;border-radius:8px;background:#fff;color:var(--ink);border-left:5px solid var(--good);font-size:.88rem;line-height:1.45}
.calc-verdict.is-mid{border-left-color:#c58a1b}
.calc-verdict.is-bad{border-left-color:var(--bad)}
.calc-verdict b{font-weight:700}
.calc-verdict.is-good b{color:var(--good)}.calc-verdict.is-mid b{color:var(--mid)}.calc-verdict.is-bad b{color:var(--bad)}
.calc-status{margin:.9rem 0 0;font-size:.8rem;opacity:.75}
.calc-error{margin:1.25rem 1.5rem;padding:.9rem 1rem;border:1px solid rgba(163,50,42,.45);border-radius:8px;background:rgba(163,50,42,.08);color:#7d241e;font-size:.95rem;line-height:1.5}
.calc-error[hidden],#calc-out[hidden]{display:none}

.calc-sec{padding:1.25rem 1.5rem;border-top:1px solid var(--line)}
.calc-sec:first-child{border-top:0}
.calc-sec h3{margin:0 0 .75rem;font-family:"Lexend",sans-serif;font-weight:500;font-size:1.05rem;line-height:1.3;letter-spacing:0}
.calc-sec-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:.5rem 1rem}
.calc-tools{display:flex;align-items:center;gap:1rem}
.calc-toggle{display:flex;border:1px solid rgba(21,25,26,.28);border-radius:8px;overflow:hidden}
.calc-toggle button{padding:.35rem .8rem;border:0;background:#fff;color:var(--ink);font:500 .85rem "Instrument Sans",sans-serif;cursor:pointer}
.calc-toggle button+button{border-left:1px solid rgba(21,25,26,.28)}
.calc-toggle button[aria-pressed="true"]{background:var(--teal);color:#fff}
.calc-check{display:flex;align-items:center;gap:.4rem;margin:0;font-size:.85rem;font-weight:400;cursor:pointer}
.calc-check input{margin:0}

.calc-map svg,.calc-hist svg{display:block;width:100%;height:auto}
.calc-vol{fill:var(--wash);stroke:var(--teal);stroke-width:1.2;stroke-dasharray:5 4}
.calc-sight{stroke:var(--teal);stroke-opacity:.2;stroke-width:1}
.calc-pt{stroke:#17383d;stroke-width:1}
.calc-pt.is-worst{stroke:var(--bad);stroke-width:3}
.calc-stn{fill:var(--ink)}
.calc-lbl{font:600 var(--fs,12px) "Instrument Sans",sans-serif;fill:var(--ink)}
.calc-ax{font:400 var(--fs,12px) "Instrument Sans",sans-serif;fill:rgba(21,25,26,.68)}
.calc-cap2{margin-top:.4rem}
.calc-legend{display:flex;align-items:center;gap:.6rem;margin-top:.5rem;font-size:.8rem;color:var(--muted)}
.calc-legend i{display:block;width:8rem;height:.6rem;border-radius:3px;background:linear-gradient(90deg,rgb(214,236,238),rgb(90,173,183),rgb(23,56,61));border:1px solid rgba(21,25,26,.25)}
.calc-legend small{font-size:.8rem;margin-left:.4rem}
.calc-hb{fill:#5AADB7}
.calc-hm{stroke:var(--ink);stroke-width:1.4;stroke-dasharray:4 3}
.calc-hx{stroke:rgba(21,25,26,.4);stroke-width:1}

.calc-budget{list-style:none;margin:0 0 .6rem;padding:0;display:flex;flex-direction:column;gap:.55rem}
.calc-budget li{display:grid;grid-template-columns:minmax(9rem,13rem) minmax(0,1fr) 6.5rem;gap:.75rem;align-items:center;margin:0;padding:0;font-size:.9rem}
.calc-bl{line-height:1.25}
.calc-track{display:block;height:.7rem;border-radius:4px;background:var(--tint);overflow:hidden}
.calc-track i{display:block;height:100%;background:var(--teal);min-width:2px}
.calc-bv{text-align:right;font-weight:600;white-space:nowrap}
.calc-bv small{font-weight:400;color:var(--muted);font-size:.8rem}
.calc-notes{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.55rem;font-size:.92rem;line-height:1.5}
.calc-notes li{margin:0;padding:0}
.calc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}
.calc-actions button.hk-btn-primary,.calc-actions button.hk-btn-secondary{cursor:pointer;font:500 1rem "Instrument Sans",sans-serif}
.hk-btn-secondary[type=button]{background:transparent}

.calc-list{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.6rem;line-height:1.5}
.calc-list li{margin:0;padding:0}
.calc-msg{min-height:16rem}
.calc-printsummary{display:none}

/* ---------- responsive ---------- */
@media screen and (max-width:991px){
  .calc-grid{grid-template-columns:minmax(0,1fr)}
  .calc-results{position:static;max-height:none;overflow:visible}
  .section.calc-head{padding-top:2.5rem;padding-bottom:2rem}
}
@media screen and (max-width:560px){
  .calc-mini{grid-template-columns:1fr 1fr}
  .calc-mini div:last-child{grid-column:1/-1}
  .calc-budget li{grid-template-columns:minmax(0,1fr) 5.5rem;grid-template-areas:"l v" "t t"}
  .calc-bl{grid-area:l}.calc-bv{grid-area:v}.calc-track{grid-area:t}
  .calc-row.three{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calc-sec,.calc-strip{padding-left:1rem;padding-right:1rem}
}

/* ---------- print: a one-page record of the scenario and result ---------- */
@media print{
  .nav,.footer,#report,#free-vs-report,#method,.calc-inputs,.calc-actions,.calc-tools,.calc-progress,.calc-status{display:none!important}
  .section.calc-head{padding:0 0 1rem;background:#fff!important;color:#000!important}
  .section.calc-head .subheading{display:none}
  .section.calc{padding:0}
  .calc-grid{display:block}
  .calc-results{position:static;max-height:none;overflow:visible;border:0}
  .calc-strip{background:#fff;color:#000;border:1px solid #000;border-radius:8px}
  .calc-printsummary{display:block;margin-top:1rem;font-size:.85rem}
  .calc-printsummary h2{font-size:1.1rem;margin:0 0 .5rem}
  .calc-printsummary table{border-collapse:collapse;width:100%}
  .calc-printsummary th,.calc-printsummary td{border-top:1px solid #999;padding:.3rem .5rem;text-align:left;vertical-align:top;font-weight:400}
  .calc-printsummary th{width:9rem;font-weight:600}
  .calc-sec{break-inside:avoid}
}
@media (prefers-reduced-motion:reduce){.calc-inputs summary::after{transition:none}}
