/* Kalkulačka ceny 3D tisku (/pages/3d-print/kalkulacka/) */
.calc [hidden] { display: none !important; }   /* jinak prohraje s display:flex u řádků */
.calc, .calc * { box-sizing: border-box; }   /* pole se šířkou 100 % jinak přečnívala přes sloupec se smazáním */
.calc { color-scheme: dark; }                 /* systémové rozbalovací nabídky a šipky čísel v tmavé verzi */
.calc { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 16px; align-items: start; }
.calc-in, .calc-out { display: grid; gap: 14px; min-width: 0; }
.calc-out { position: sticky; top: 92px; }

.calc-card { padding: 18px 20px 20px; }
.calc-head { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.07); }
.calc-head h3 { margin: 0; font-size: 1rem; letter-spacing: -.01em; }
.calc-n { padding: 3px 7px; border: 1px solid rgba(var(--tone-rgb, 46,232,196), .4); border-radius: 6px; color: rgb(var(--tone-rgb, 46,232,196)); font: 700 .66rem "JetBrains Mono", Consolas, monospace; letter-spacing: .05em; }
.calc-hint { margin: 0 0 10px; color: var(--muted); font-size: .8rem; line-height: 1.5; }
.calc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* řádky formuláře */
.calc-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; }
.calc-row + .calc-row { border-top: 1px solid rgba(255,255,255,.05); }
.calc-row label, .calc-label { flex: 1; color: var(--soft); font-size: .88rem; }
.calc-ig { display: flex; align-items: center; gap: 8px; }
.calc-u { width: 50px; color: var(--muted); font: 500 .72rem "JetBrains Mono", Consolas, monospace; }
.calc input, .calc select { padding: 8px 10px; border: 1px solid rgba(255,255,255,.12); border-radius: 9px; background: rgba(8,11,10,.55); color: var(--text); font: 500 .86rem Inter, system-ui, sans-serif; box-shadow: inset 0 1px 2px rgba(0,0,0,.4); transition: border-color .15s ease, box-shadow .15s ease; }
.calc input[type=number] { width: 104px; text-align: right; font-family: "JetBrains Mono", Consolas, monospace; font-variant-numeric: tabular-nums; }
.calc select { max-width: 250px; cursor: pointer; }
.calc-row-full { flex-wrap: wrap; gap: 8px; padding: 8px 0; }
.calc-row-full label { flex-basis: 100%; }
.calc .calc-row-full select { width: 100%; max-width: none; }
.calc input:focus, .calc select:focus { outline: none; border-color: rgba(var(--tone-rgb, 46,232,196), .7); box-shadow: 0 0 0 3px rgba(var(--tone-rgb, 46,232,196), .14); }
.calc option { background: #141816; color: var(--text); }

/* přepínače */
.calc-seg { display: inline-flex; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: 10px; background: rgba(8,11,10,.45); }
.calc-seg button { padding: 8px 12px; border: 0; background: transparent; color: var(--muted); font: 600 .78rem Inter, system-ui, sans-serif; cursor: pointer; transition: background .15s ease, color .15s ease; }
.calc-seg button + button { border-left: 1px solid rgba(255,255,255,.1); }
.calc-seg button.on { background: linear-gradient(180deg, #62f1d4 0%, var(--teal) 55%, #24d1b0 100%); color: #06110e; }
.calc-seg button:not(.on):hover { color: var(--text); }

/* knihovna filamentů */
.calc-lib { overflow-x: auto; }
.calc-table { width: 100%; min-width: 360px; border-collapse: collapse; table-layout: fixed; }
.calc-table th { padding: 0 6px 8px; color: var(--muted); font: 600 .64rem "JetBrains Mono", Consolas, monospace; letter-spacing: .06em; text-align: left; text-transform: uppercase; }
.calc-table th:nth-child(2) { width: 100px; } .calc-table th:nth-child(3) { width: 92px; } .calc-table th:nth-child(4) { width: 40px; }
.calc-table td { padding: 4px 3px; }
.calc .calc-table input, .calc .calc-table input[type=number], .calc .calc-table select { width: 100%; max-width: none; }   /* přebít obecnou šířku 104 px číselných polí */
.calc-del { display: grid; place-items: center; width: 34px; height: 34px; margin-left: auto; border: 1px solid transparent; border-radius: 8px; background: none; color: var(--muted); font-size: 1.1rem; cursor: pointer; }
.calc-del:hover:not(:disabled) { border-color: rgba(255,122,110,.4); background: rgba(255,122,110,.1); color: #ff7a6e; }
.calc-del:disabled { opacity: .3; cursor: default; }
.calc-add { margin-top: 12px; min-height: 40px; font-size: .82rem; }
.calc-reset { margin-top: 10px; padding: 6px 0; border: 0; background: none; color: var(--muted); font: 500 .8rem Inter, system-ui, sans-serif; cursor: pointer; }
.calc-reset:hover { color: var(--teal); }

/* výsledky */
.calc-prices { display: grid; gap: 12px; }
.calc-price { display: grid; gap: 6px; padding: 18px 20px; border-radius: 16px; }
.calc-lbl { font: 600 .66rem "JetBrains Mono", Consolas, monospace; letter-spacing: .12em; text-transform: uppercase; }
.calc-price b { font: 800 2.1rem "JetBrains Mono", Consolas, monospace; letter-spacing: -.02em; line-height: 1.05; font-variant-numeric: tabular-nums; }
.calc-price small { font-size: .8rem; line-height: 1.4; }
.calc-cost .calc-lbl { color: var(--ice); } .calc-cost small { color: var(--muted); }
.calc-sell { position: relative; overflow: hidden; border: 1px solid rgba(46,232,196,.55); background: linear-gradient(160deg, #62f1d4 0%, var(--teal) 55%, #22c9aa 100%); box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 14px 34px rgba(46,232,196,.22); color: #06110e; }
.calc-sell .calc-lbl, .calc-sell small { color: rgba(6,17,14,.78); }

.calc-bd > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.05); font-size: .88rem; color: var(--soft); }
.calc-bd small { display: block; margin-top: 2px; color: var(--muted); font: 500 .7rem "JetBrains Mono", Consolas, monospace; }
.calc-bd b { color: var(--text); font: 600 .9rem "JetBrains Mono", Consolas, monospace; white-space: nowrap; font-variant-numeric: tabular-nums; }
.calc-bd .calc-sep { border-top: 1px solid rgba(255,255,255,.14); color: var(--text); font-weight: 650; }
.calc-bd .calc-final { border-top: 2px solid var(--teal); border-bottom: 0; padding-top: 12px; color: var(--text); font-weight: 700; font-size: 1rem; }
.calc-bd .calc-final b { color: var(--teal); font-size: 1.05rem; font-weight: 800; }

.calc-margins { display: grid; gap: 3px; }
.calc-m { display: flex; justify-content: space-between; gap: 12px; padding: 8px 11px; border-radius: 9px; color: var(--soft); font-size: .86rem; }
.calc-m b { font: 500 .86rem "JetBrains Mono", Consolas, monospace; font-variant-numeric: tabular-nums; }
.calc-m.is-on { background: rgba(46,232,196,.1); box-shadow: inset 0 0 0 1px rgba(46,232,196,.35); color: var(--teal); font-weight: 650; }
.calc-m.is-on b { font-weight: 700; }

@media (max-width: 900px) {
  .calc { grid-template-columns: 1fr; }
  .calc-out { position: static; }
}
@media (max-width: 520px) {
  .calc-card { padding: 16px 14px 16px; }
  .calc-row { flex-wrap: wrap; gap: 6px 12px; padding: 6px 0; }
  .calc-row label, .calc-label { flex-basis: 100%; }
  .calc-row > select, .calc-seg { width: 100%; max-width: none; }
  .calc-seg button { flex: 1; }
  .calc-ig { margin-left: auto; }
  .calc input[type=number] { width: 120px; font-size: 16px; }   /* 16 px = iOS nezoomuje při psaní */
  .calc select, .calc input[type=text] { font-size: 16px; }
  .calc-price b { font-size: 1.8rem; }
  /* tabulka filamentů jako karty: název přes celý řádek, pod ním materiál, cena a smazat */
  .calc-lib { overflow: visible; }
  .calc-table, .calc-table tbody { display: block; min-width: 0; }
  .calc-table thead { display: none; }
  .calc-table tr { display: grid; grid-template-columns: minmax(0, 1fr) 96px 38px; gap: 6px; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.06); }
  .calc-table td { display: block; padding: 0; }
  .calc-table td:first-child { grid-column: 1 / -1; }
  .calc .calc-table input[type=number] { width: 100%; }
  .calc-del { width: 38px; height: 42px; }
}
