/* Geodetické nástroje – doplnok k /css/styles.css (rovnaké farby, písma a tlačidlá) */

.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
code { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: .88em; background: var(--yellow-soft); padding: .1em .4em; border-radius: 6px; }

.page-head--tools { padding-bottom: clamp(28px, 4vw, 48px); }
.tools-block { padding: 0 0 clamp(64px, 9vw, 120px); }

/* Výber nástroja */
.tool-picker { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 248px), 1fr)); }
.tool-card {
  position: relative; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto auto; column-gap: 14px;
  padding: 20px 22px; background: var(--surface); border: 1.5px solid var(--line); border-radius: var(--radius);
  text-decoration: none; transition: border-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
.tool-card:hover { border-color: #cfc8b8; transform: translateY(-1px); }
.tool-card__icon { grid-row: 1 / 4; font-size: 2.5rem; width: 60px; height: 60px; display: grid; place-items: center; border-radius: 12px; background: var(--yellow-soft); color: #6d540a; }
.tool-card__name { font-family: var(--font-head); font-weight: 700; font-size: 1.15rem; line-height: 1.25; }
.tool-card__desc { color: var(--muted); font-size: 1rem; line-height: 1.35; }
.tool-card__fmt { margin-top: 8px; font-size: .82rem; font-weight: 700; letter-spacing: .06em; color: #9a7a1c; }
.tool-card[aria-current="true"] { border-color: var(--ink); box-shadow: 0 0 0 1.5px var(--ink); }
.tool-card__svg { width: 2.5rem; height: 2.5rem; }
/* poznámka pod výberom nástrojov: kontakt pri nefunkčnosti, otázkach, vylepšeniach */
.tools-contact { display: flex; gap: 10px; align-items: flex-start; margin: 20px 0 0; padding: 12px 16px; border-radius: 12px; background: var(--yellow-soft); color: var(--ink); font-size: 1rem; line-height: 1.45; }
.tools-contact .material-symbols-rounded { font-size: 1.4rem; color: #6d540a; flex-shrink: 0; }
.tools-contact a { color: inherit; font-weight: 700; }
.tool-card[aria-current="true"] .tool-card__icon { background: var(--yellow); color: var(--ink); }

/* Panel nástroja */
.tool { margin-top: clamp(28px, 4vw, 48px); background: var(--surface); border: 1px solid var(--line); border-radius: calc(var(--radius) + 4px); padding: clamp(24px, 4vw, 48px); scroll-margin-top: 130px; }
.tool__head { display: flex; flex-wrap: wrap; gap: 12px 32px; align-items: flex-start; justify-content: space-between; padding-bottom: 24px; margin-bottom: 28px; border-bottom: 1px solid var(--line); }
.tool__head h2 { margin-bottom: .25em; font-size: clamp(1.7rem, 1.3rem + 1.4vw, 2.4rem); }
.tool__head .eyebrow { margin-bottom: .6rem; }
.tool__lead { color: var(--muted); margin: 0; max-width: 60ch; }
.tool__head .text-link { font-size: 1.05rem; white-space: nowrap; margin-top: 6px; }
/* Návod + Vzorový súbor pod sebou (TKK, profil, kanalizácia) */
.tool__links { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.tool__links .text-link + .text-link { margin-top: 0; }
@media (max-width: 40em) { .tool__links { flex-direction: row; flex-wrap: wrap; gap: 6px 20px; align-items: baseline; } .tool__links .text-link { margin-top: 0; } }

/* Formulár */
.tool-form { display: grid; gap: 26px; max-width: 900px; }
.tool-form input[type=text], .tool-form input:not([type]), .tool-form select, .conf-form input, .dlg input, .dlg select {
  font: inherit; font-size: 1.05rem; padding: 12px 14px; border: 1.5px solid #cfc8b8; border-radius: 10px; background: #fff; color: var(--ink); width: 100%; min-height: 50px;
}
.tool-form select, .dlg select { appearance: none; -webkit-appearance: none; padding-right: 42px; cursor: pointer;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%231c1b19' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 16px center; }
.tool-form :is(input, select):focus, .conf-form input:focus, .dlg :is(input, select):focus { outline: 3px solid var(--yellow); outline-offset: 1px; border-color: #b8900f; }
.tool-form :is(input, select):disabled { background: #f2efe8; color: #9b968b; cursor: not-allowed; }
.field { display: grid; gap: 8px; align-content: start; }
.field__label, .tool-form legend, .conf-form legend { font-weight: 700; font-size: 1.02rem; }
.field small, .field--file small { color: var(--muted); font-size: .95rem; }
.grid-2, .grid-3 { display: grid; gap: 20px; }
@media (min-width: 44em) { .grid-2 { grid-template-columns: 1fr 1fr; } .grid-3 { grid-template-columns: repeat(3, 1fr); } }
.ratio, .suffix { display: flex; align-items: center; gap: 8px; font-weight: 600; }
.ratio input { min-width: 0; }
.suffix input { flex: 1; }
.suffix span { color: var(--muted); }
.short { max-width: 80px; }
.inline { grid-auto-flow: column; justify-content: start; align-items: center; gap: 12px; margin-top: 4px; }
.inline select { width: auto; min-width: 96px; }

fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
fieldset legend { padding: 0; margin-bottom: 12px; }
.checks { display: grid; gap: 10px; }
.check { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; line-height: 1.4; }
.check input, .chip input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: #1c1b19; flex-shrink: 0; cursor: pointer; }
.check-group { display: grid; gap: 10px; }
.sub-checks { display: flex; flex-wrap: wrap; gap: 8px; padding-left: 34px; }
.sub-checks.is-off { opacity: .45; }
.chip { display: inline-flex; gap: 8px; align-items: center; padding: 6px 14px 6px 10px; border: 1.5px solid var(--line); border-radius: 999px; font-size: 1rem; cursor: pointer; background: var(--bg); }
.chip input { margin: 0; width: 18px; height: 18px; }
/* TKK – časť Body menšia (ako políčka v tabuľke kódov); rovnako profil, kanalizácia a vystredenie (dávka pre Kokeš) */
.tool-form:is([data-tool=tkk], [data-tool=profil], [data-tool=kanal], [data-tool=xml]) .checks { gap: 6px; font-size: .98rem; }
.tool-form:is([data-tool=tkk], [data-tool=profil], [data-tool=kanal], [data-tool=xml]) .check-group { gap: 6px; }
.tool-form:is([data-tool=tkk], [data-tool=profil], [data-tool=kanal], [data-tool=xml]) .check { gap: 8px; line-height: 1.3; }
.tool-form:is([data-tool=tkk], [data-tool=profil], [data-tool=kanal], [data-tool=xml]) .check input { width: 17px; height: 17px; margin-top: 1px; }
.tool-form:is([data-tool=tkk], [data-tool=profil], [data-tool=kanal], [data-tool=xml]) .sub-checks { gap: 6px; padding-left: 25px; }
.tool-form:is([data-tool=tkk], [data-tool=profil], [data-tool=kanal], [data-tool=xml]) .chip { gap: 6px; padding: 3px 10px 3px 7px; font-size: .9rem; border-width: 1px; }
.tool-form:is([data-tool=tkk], [data-tool=profil], [data-tool=kanal], [data-tool=xml]) .chip input { width: 15px; height: 15px; }

/* malé číselné políčka (parametre pomocného textu v TKK, presnosť, tolerancie) – všetky nástroje rovnako ako TKK */
.params .param-row { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: end; }
/* TKK: Kódovanie čiar (vľavo, polia v jednom riadku) a Body (vpravo) vedľa seba */
.ciary-params { display: flex; flex-wrap: nowrap; gap: 32px; align-items: flex-start; }
.ciary-params .field { flex: none; }
.ciary-body { display: grid; grid-template-columns: auto auto; justify-content: start; align-items: stretch; }
.ciary-body > fieldset { align-content: start; }
.ciary-body > fieldset:first-child { padding-right: 40px; }
.ciary-body > fieldset + fieldset { padding-left: 40px; border-left: 1.5px solid var(--line, #d8d1c2); }
@media (max-width: 52em) {
  .ciary-body { grid-template-columns: 1fr; }
  .ciary-body > fieldset:first-child { padding: 0 0 22px; border-bottom: 1.5px solid var(--line, #d8d1c2); }
  .ciary-body > fieldset + fieldset { padding: 0; margin-top: 22px; border-left: 0; }
}
/* úzky mobil: oba prvky sa do riadku nezmestia */
@media (max-width: 30em) { .ciary-params { flex-wrap: wrap; gap: 16px; } }
.ciary-params .field { margin: 0; }
.ciary-params small { display: block; margin-top: 4px; }
.tool-form .param-row input { box-sizing: border-box; width: 54px; min-width: 54px; min-height: 30px; height: 30px; padding: 3px 6px; font-size: .98rem; border-radius: 8px; text-align: right; }
.tool-form[data-tool=tkk] .param-row input { width: 100%; }
/* presnosť: výber 2 (cm) / 3 (mm) – rovnaká výška ako malé políčka */
.tool-form .param-row select { box-sizing: border-box; width: auto; min-width: 92px; min-height: 30px; height: 30px; padding: 2px 30px 2px 8px; font-size: .98rem; border-radius: 8px; background-position: right 10px center; }
/* profil: návrh mierky pre A4 */
.a4-hint { margin: -10px 0 0; padding: 10px 14px; border-radius: 10px; background: var(--yellow-soft); font-size: .98rem; }
.a4-hint.is-warn { background: #fbe3df; color: #8a2216; font-weight: 600; }
.param-row label { display: grid; gap: 6px; font-weight: 600; font-size: .98rem; justify-items: start; }
.params legend .check { font-weight: 700; }
/* profil: Tabuľky | Presnosť | Texty pod profilom vedľa seba */
.prof-opts { display: flex; justify-content: center; gap: 0; align-items: stretch; }
.prof-opts > fieldset { padding: 0 36px; align-content: start; }
.prof-opts > fieldset + fieldset { border-left: 1.5px solid var(--line, #d8d1c2); }
@media (max-width: 40em) {
  .prof-opts { flex-direction: column; align-items: stretch; }
  .prof-opts > fieldset { padding: 0; }
  .prof-opts > fieldset + fieldset { border-left: 0; margin-top: 18px; }
  .prof-opts > fieldset:not(:last-child) { padding-bottom: 18px; box-shadow: inset 0 -1.5px 0 var(--line, #d8d1c2); }
}
.tool-form[data-tool=profil] .param-row select { min-width: 72px; }
.param-col { display: grid; gap: 8px; }
.param-col label { display: grid; grid-template-columns: auto auto; gap: 10px; align-items: center; justify-content: start; font-weight: 600; font-size: .98rem; }
.tool-form .param-col select { box-sizing: border-box; width: auto; min-width: 150px; min-height: 30px; height: 30px; padding: 2px 30px 2px 8px; font-size: .98rem; border-radius: 8px; background-position: right 10px center; }
/* profil, kanalizácia: malé výbery (sklon, texty pod profilom) ako v TKK – Body */
.tool-form .inline .field__label { font-weight: 600; font-size: .98rem; }
.tool-form .inline select, .tool-form select.sel-small { box-sizing: border-box; width: auto; justify-self: start; min-width: 92px; min-height: 30px; height: 30px; padding: 2px 30px 2px 8px; font-size: .98rem; border-radius: 8px; background-position: right 10px center; }

.segmented { display: flex; flex-wrap: wrap; gap: 0; }
.segmented legend { width: 100%; }
.segmented label { position: relative; cursor: pointer; }
.segmented input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.segmented label { padding: 12px 22px; border: 1.5px solid #cfc8b8; font-weight: 600; background: #fff; margin-left: -1.5px; }
.segmented label:first-of-type { border-radius: 10px 0 0 10px; margin-left: 0; }
.segmented label:last-of-type { border-radius: 0 10px 10px 0; }
.segmented label:has(input:checked) { background: var(--ink); color: #fff; border-color: var(--ink); z-index: 1; }
.segmented label:has(input:focus-visible) { outline: 3px solid var(--yellow); outline-offset: 1px; z-index: 2; }

/* Profil: prepínač pozdĺžny / priečny s ikonou a schémou výpočtu */
.segmented--ico label { display: inline-flex; align-items: center; gap: 10px; padding: 8px 18px 8px 10px; }
.sch-mini { width: 46px; height: 30px; flex-shrink: 0; }
.sch-ln { fill: none; stroke: var(--ink); stroke-width: 2; stroke-linejoin: round; }
.sch-ln--tenka { stroke-width: 1; stroke-dasharray: 2 2; }
.sch-ax { fill: none; stroke: var(--ink); stroke-width: 1; stroke-dasharray: 3 3; opacity: .5; }
.sch-pt { fill: #fff; stroke: var(--ink); stroke-width: 1.6; }
.sch-pt1 { fill: var(--ink); }
.sch-no { font: 700 11px "Source Sans 3", sans-serif; fill: var(--ink); }
.sch-dm { fill: none; stroke: #a8800c; stroke-width: 1.4; }
.sch-ex { fill: none; stroke: #a8800c; stroke-width: .8; stroke-dasharray: 2 2; }
.sch-dt { font: italic 700 12px "Source Sans 3", sans-serif; fill: #a8800c; }
.sch-sb { font-size: 8.5px; }
.segmented--ico label:has(input:checked) .sch-ln, .segmented--ico label:has(input:checked) .sch-pt { stroke: #fff; }
.segmented--ico label:has(input:checked) .sch-pt { fill: var(--ink); }
.segmented--ico label:has(input:checked) .sch-pt1 { fill: #fff; }
.segmented--ico label:has(input:checked) .sch-dm { stroke: var(--yellow); }
.aky-expl { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; margin-top: 12px; padding: 12px 16px; background: var(--yellow-soft); border-radius: 12px; }
.aky-expl .sch { width: 190px; height: auto; flex-shrink: 0; }
.aky-expl p { flex: 1; min-width: min(100%, 220px); margin: 0; }
.aky-expl [hidden] { display: none; }
.is-hidden-dep { display: none !important; }

/* Výber súboru */
.drop { position: relative; display: flex; align-items: center; gap: 14px; padding: 22px 24px; border: 2px dashed #cfc8b8; border-radius: var(--radius); background: var(--bg); cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.drop:hover, .drop.is-over { border-color: #b8900f; background: var(--yellow-soft); }
.drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.drop .material-symbols-rounded { font-size: 2rem; color: #9a7a1c; }
.drop__text { font-weight: 600; overflow-wrap: anywhere; }
.drop.has-file { border-style: solid; border-color: var(--ink); background: #fff; }
.drop:focus-within { outline: 3px solid var(--yellow); outline-offset: 2px; }

.format-note { background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 22px; font-size: 1.02rem; }
.format-note p:last-child { margin: 0; color: var(--muted); }

.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.form-actions .btn, .dlg .btn { border: 0; cursor: pointer; }
.btn--ghost { background: transparent; border: 2px solid currentColor !important; }
.btn--small { min-height: 44px; padding: .55em 1.1em; font-size: .98rem; }
.btn[disabled] { opacity: .55; cursor: progress; transform: none; }
.form-msg { color: var(--muted); font-size: 1rem; }
.form-msg.is-err { color: #a12b1f; font-weight: 600; }
.form-msg.is-ok { color: #2f6b2a; font-weight: 600; }

/* Výsledok */
.result:empty { display: none; }
.result { margin-top: 36px; padding-top: 32px; border-top: 1px solid var(--line); display: grid; gap: 24px; }
.result h3 { margin: 0; font-size: 1.4rem; }
.alert { display: flex; gap: 14px; align-items: flex-start; padding: 18px 22px; border-radius: var(--radius); font-weight: 600; }
.alert .material-symbols-rounded { font-size: 1.6rem; }
.alert p { margin: 0; }
.alert small { display: block; font-weight: 400; color: var(--muted); margin-top: 4px; overflow-wrap: anywhere; }
.alert--err { background: #fbe5e1; color: #7a1e14; }
.alert--warn { background: var(--yellow-soft); }
.alert--ok { background: #e6f1e1; color: #23501f; }
.loading { display: flex; gap: 14px; align-items: center; color: var(--muted); font-weight: 600; }
.spinner { width: 26px; height: 26px; border: 3px solid var(--line); border-top-color: var(--ink); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.files { display: grid; gap: 12px; }
.files[hidden], .alert[hidden] { display: none !important; }
.file { border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg); overflow: hidden; }
.file__row { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; padding: 16px 20px; }
.file__icon { font-size: 1.8rem; color: #9a7a1c; }
.file__name { font-family: var(--font-head); font-weight: 700; font-size: 1.1rem; overflow-wrap: anywhere; }
.file__meta { color: var(--muted); font-size: .95rem; }
.file__info { flex: 1; min-width: 180px; display: grid; }
.file details { border-top: 1px solid var(--line); }
.file summary { cursor: pointer; padding: 12px 20px; font-weight: 600; font-size: 1rem; color: var(--muted); }
.file summary:hover { color: var(--ink); }
.file pre { margin: 0; padding: 16px 20px; max-height: 420px; overflow: auto; background: #fff; border-top: 1px solid var(--line); font-size: .85rem; line-height: 1.5; tab-size: 8; }

.rerun { background: var(--yellow-soft); border-radius: var(--radius); padding: 22px 24px; display: grid; gap: 16px; }
.rerun p { margin: 0; }
.rerun form { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-end; }
.rerun label { display: grid; gap: 6px; font-weight: 600; font-size: .98rem; }
.rerun input { font: inherit; padding: 10px 12px; border: 1.5px solid #cfc8b8; border-radius: 10px; width: 120px; min-height: 48px; }
.rerun .btn { border: 0; cursor: pointer; }

.protocol h3 { margin-bottom: 14px; }
.protocol h3 ~ h3 { margin-top: 2.2em; }   /* ďalšie nadpisy v protokole o riadok nižšie */
.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.protocol table, .lib-table, .conf-table, .edit-table { border-collapse: collapse; width: 100%; font-size: 1rem; }
.protocol td, .protocol th, .lib-table td, .lib-table th, .conf-table td, .conf-table th { padding: 9px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.protocol table table td { border: 0; padding: 4px 12px 4px 0; }
.protocol tr:first-child td { font-weight: 700; }
.protocol table table tr:first-child td { font-weight: 400; }
.protocol .neg { color: #a12b1f; font-weight: 600; }
.protocol .pos { color: #2f6b2a; font-weight: 600; }
.protocol { font-size: 1rem; }

/* Vystredenie: široký protokol (22 stĺpcov) – kompaktne, aby sa zmestil do šírky stránky */
.protocol--xml { min-width: 0; }   /* široká tabuľka sa posúva v rámiku, nerozťahuje stránku */
.protocol--xml .table-wrap { margin-bottom: 18px; }
.protocol--xml table { font-size: .74rem; line-height: 1.25; font-variant-numeric: tabular-nums; }
.protocol--xml td { padding: 3px 4px; white-space: nowrap; text-align: right; }
.protocol--xml tr:first-child td { text-align: left; font-size: .8rem; }
.protocol--xml tr:nth-child(2) td { white-space: normal; text-align: center; vertical-align: bottom; font-weight: 600; color: var(--muted); font-size: .7rem; line-height: 1.15; }
@media (max-width: 72em) { .protocol--xml table { font-size: .66rem; } .protocol--xml td { padding: 2px 3px; } }
@media print { .protocol--xml table { font-size: 7pt; } .protocol--xml td { padding: 1px 3px; } }

/* TKK správa */
.tkk-admin { margin-top: 40px; display: grid; gap: 14px; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); background: var(--bg); }
.panel > summary { list-style: none; display: flex; align-items: center; gap: 12px; padding: 18px 22px; cursor: pointer; font-family: var(--font-head); font-weight: 700; font-size: 1.15rem; }
.panel > summary::-webkit-details-marker { display: none; }
.panel > summary::after { content: "expand_more"; font-family: "Material Symbols Rounded"; margin-left: auto; font-size: 1.6rem; transition: transform .2s ease; }
.panel[open] > summary::after { transform: rotate(180deg); }
.panel > summary .material-symbols-rounded { color: #9a7a1c; }
.panel__body { padding: 0 22px 24px; display: grid; gap: 18px; }
.admin-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.admin-bar form { margin: 0; }
.admin-bar label.btn { cursor: pointer; }
.admin-auth { margin-left: auto; font-size: .98rem; color: var(--muted); display: flex; gap: 8px; align-items: center; }
.lib-table th { font-size: .9rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.lib-table td:last-child { text-align: right; white-space: nowrap; }
.lib-table .lib-name { font-weight: 700; overflow-wrap: anywhere; }
.icon-btn { background: none; border: 0; width: 42px; height: 42px; border-radius: 50%; cursor: pointer; display: inline-grid; place-items: center; color: var(--ink); text-decoration: none; }
.icon-btn:hover { background: var(--yellow-soft); }
.icon-btn--danger:hover { background: #fbe5e1; color: #a12b1f; }
.conf-table th { font-weight: 700; }
.conf-table thead th { font-size: .88rem; color: var(--muted); font-weight: 600; white-space: nowrap; }
.conf-table input { min-width: 64px; min-height: 42px; padding: 8px 10px; }
/* nastavenie konverzie: políčka rovnaké ako parametre pomocného textu a tabuľka kódov */
.conf-form .conf-table { width: auto; }
.conf-table td { padding: 5px 8px; vertical-align: middle; }
.conf-table th { vertical-align: middle; }
.conf-form .conf-table input { box-sizing: border-box; width: 54px; min-width: 0; min-height: 30px; height: 30px; padding: 3px 6px; font-size: .98rem; border-radius: 8px; text-align: right; }
.zac-row .zac-in, .field .plus-in { box-sizing: border-box; width: 54px; max-width: 54px; min-height: 30px; height: 30px; padding: 3px 6px; font-size: .98rem; border-radius: 8px; text-align: center; }
.conf-form { display: grid; gap: 22px; }
/* časť formulára po načítaní súboru – rovnaké rozostupy ako ostatné časti formulára */
.po-cast:not([hidden]) { display: contents; }
/* TKK nastavenie konverzie: Body vo výkrese a Pomocný text oddelene */
.conf-group { display: grid; gap: 8px; }
.conf-group legend { margin-bottom: 2px; }
.conf-group:has(+ .conf-group) { padding-bottom: 20px; border-bottom: 1.5px solid var(--line, #d8d1c2); }
.conf-note { margin: 0; color: var(--muted); font-size: .95rem; }

/* Dialógy */
.dlg { border: 0; padding: 0; border-radius: calc(var(--radius) + 4px); width: min(1100px, calc(100vw - 24px)); max-height: calc(100vh - 24px); background: var(--surface); color: var(--ink); box-shadow: 0 30px 80px rgba(0,0,0,.3); }
.dlg--small { width: min(520px, calc(100vw - 24px)); }
.dlg::backdrop { background: rgba(20, 19, 17, .55); }
.dlg__inner { display: flex; flex-direction: column; max-height: calc(100vh - 24px); margin: 0; }
.dlg__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 24px; border-bottom: 1px solid var(--line); }
.dlg__title { margin: 0; font-size: 1.35rem; overflow-wrap: anywhere; }
.dlg__tools { display: flex; flex-wrap: wrap; gap: 12px; padding: 16px 24px 0; }
.dlg__tools input { flex: 1; min-width: 200px; }
.dlg__table { padding: 12px 24px; overflow: auto; flex: 1; }
.dlg__body { padding: 20px 24px; display: grid; gap: 16px; }
.dlg__foot { display: flex; justify-content: flex-end; align-items: center; gap: 16px; padding: 16px 24px; border-top: 1px solid var(--line); }
.dlg__foot .form-msg { margin-right: auto; }
.edit-table th { position: sticky; top: 0; background: var(--surface); font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); text-align: left; padding: 8px 6px; z-index: 1; }
.edit-table td { padding: 4px; border-bottom: 1px solid var(--line); }
.edit-table input, .edit-table select { min-height: 40px; padding: 6px 8px; font-size: .98rem; min-width: 64px; border-radius: 8px; }
.edit-table select { padding-right: 30px; background-position: right 10px center; }
.edit-table td:first-child input { font-weight: 700; min-width: 80px; }
.edit-table td:nth-child(7) input { min-width: 180px; }
.edit-table tr.is-changed td { background: #fffaf0; }
.edit-table tr.is-dup td { background: #fbe7e4; }
.edit-table tr.is-dup td:first-child input { border-color: #a12b1f; color: #a12b1f; }
.edit-table tr.is-bod .lin-only input { visibility: hidden; }

/* editor: body a línie zvlášť, popis široký, ostatné kolónky úzke */
.edit-sec + .edit-sec { margin-top: 28px; }
.edit-sec__title { margin: 0 0 6px; font-size: 1.1rem; }
.edit-sec__title span { color: var(--muted); font-weight: 400; }
.edit-table { table-layout: fixed; }
.edit-table .c-kod { width: 110px; }
.edit-table .c-obj { width: 100px; }
.edit-table .c-num { width: 78px; }
.edit-table .c-del { width: 44px; }
.edit-table .c-popis { width: auto; }
.edit-table th.c-num { white-space: normal; line-height: 1.15; }
.edit-table td input, .edit-table td select { min-width: 0; box-sizing: border-box; width: 100%; }
.edit-table td.c-kod input { min-width: 0; }
.edit-table td.c-num input { padding: 6px 6px; text-align: right; }
.edit-table td.c-num input.vrs { text-align: left; }
.edit-table td.c-obj select { min-width: 0; padding-right: 22px; background-position: right 6px center; }
.edit-table--bod .lin-only { display: none; }

.tools-note { margin: 32px 0 0; color: var(--muted); font-size: 1rem; max-width: none; width: 100%; }

@media (max-width: 40em) {
  .tool { padding: 22px 18px; border-radius: var(--radius); }
  .tool-card { padding: 16px 18px; }
  .file__row .btn { width: 100%; justify-content: center; }
  .admin-auth { margin-left: 0; width: 100%; }
}
.ratio { white-space: nowrap; }
.edit-table select { min-width: 0; }

/* knižnice: formát a upozornenia */
.badge { display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; padding: 1px 8px; border-radius: 999px; background: var(--yellow-soft); color: var(--ink); font-size: .78rem; font-weight: 600; vertical-align: middle; white-space: nowrap; }
.badge .material-symbols-rounded { font-size: 1rem; }
.badge--warn { background: #f6d9d4; color: #a12b1f; }
.lib-warn { display: block; margin: 12px 24px 0; font-size: .95rem; font-weight: 400; }
.lib-warn[hidden] { display: none; }
.lib-warn p { margin: 0 0 6px; }
.lib-warn ul { margin: 0; padding-left: 20px; }
.lib-msg { flex-basis: 100%; }
/* dialóg Pridať líniu: polia v dvoch stĺpcoch */
.dlg__body.cols-2 { grid-template-columns: 1fr 1fr; gap: 12px 16px; }
.dlg__body.cols-2 .dlg__hint { grid-column: 1 / -1; margin: 0; color: var(--muted); font-weight: 600; min-height: 1.4em; }
@media (max-width: 560px) { .dlg__body.cols-2 { grid-template-columns: 1fr; } }
/* začiatok čiary: [Z] kód [ ] */
.zac-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.zac-row .zac-in, .field .plus-in { text-align: center; font-weight: 700; }
.zac-row .zac-in.is-active { border-color: #b8900f; background: var(--yellow-soft); }
.zac-kod { font-weight: 700; padding: 0 4px; }
.zac-prev { color: var(--muted); margin-left: 6px; }
/* TKK: neexistujúce kódy */
.missing { margin: 20px 0; padding: 16px 18px; border-radius: var(--radius); background: var(--yellow-soft); font-size: .9rem; line-height: 1.4; }
.missing h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; font-size: 1.05rem; }
.missing h3 .material-symbols-rounded { font-size: 1.25rem; }
.missing > p { margin: 0 0 10px; }
.miss-table { border-collapse: collapse; width: 100%; font-size: .88rem; }
.miss-table th { text-align: left; font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); padding: 4px 5px; }
.miss-table td { padding: 4px 5px; vertical-align: top; border-top: 1px solid var(--line); }
.miss-table td small { display: block; color: var(--muted); font-size: .8rem; }
.miss-table select, .miss-table input { min-height: 32px; padding: 2px 6px; border-radius: 7px; border: 1px solid var(--line); background: #fff; font: inherit; font-size: .88rem; }
.miss-table .js-podla { max-width: 300px; width: 100%; }
.miss-novy { display: flex; flex-wrap: wrap; gap: 5px; }
.miss-novy input { width: 74px; }
.miss-novy input[data-f=popis] { width: 150px; }
.missing .form-actions .btn { min-height: 40px; font-size: .92rem; padding: .45em 1em; }
.miss-table tr.is-bod .lin-only { display: none; }
.miss-table tr.is-off td:not(:nth-child(3)) { opacity: .45; }
.missing [hidden] { display: none !important; }
.files a.is-done { opacity: .7; }

/* ---------- Profil: výber papiera ---------- */
.paper:disabled .paper__opts { opacity: .45; }
.paper__opts { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.paper-opt { position: relative; display: flex; gap: 14px; align-items: center; padding: 14px 16px; border: 1.5px solid #cfc8b8; border-radius: 12px; background: #fff; cursor: pointer; }
.paper-opt[hidden] { display: none; }
.paper:disabled .paper-opt { cursor: not-allowed; }
.paper-opt input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: inherit; }
.paper-opt:has(input:checked) { border-color: var(--ink); box-shadow: 0 0 0 1.5px var(--ink); background: var(--yellow-soft); }
.paper-opt:has(input:focus-visible) { outline: 3px solid var(--yellow); outline-offset: 2px; }
.paper-opt__txt { display: grid; gap: 1px; line-height: 1.25; }
.paper-opt__txt strong { font-size: 1.08rem; }
.paper-opt__txt small { color: var(--muted); font-size: .9rem; }
.paper-opt__m { font-size: .9rem; font-weight: 600; margin-top: 3px; font-variant-numeric: tabular-nums; }
.paper-opt__m:empty { display: none; }
.paper-opt.is-warn .paper-opt__m { color: #8a2216; }
.paper-ico { flex-shrink: 0; display: block; border: 1.5px solid var(--ink); border-radius: 2px; background: #fff; box-shadow: 2px 2px 0 rgba(28,27,25,.12); }
.paper-ico--a4 { width: 30px; height: 21px; }
.paper-ico--a3 { width: 42px; height: 30px; }
.paper-ico--dlha { width: 54px; height: 21px; border-right-style: dashed; }
.paper__msg { margin: 10px 0 0; color: var(--muted); font-size: .95rem; }
.paper__msg[hidden] { display: none; }

/* ---------- Profil: náhľad rezu ---------- */
.rez-nahlad { margin-top: 22px; min-width: 0; max-width: 100%; }
.tool .result { min-width: 0; max-width: 100%; }
.rez-nahlad__head { display: flex; flex-wrap: wrap; gap: 4px 16px; align-items: baseline; justify-content: space-between; margin-bottom: 10px; }
.rez-nahlad__head { align-items: center; }
.rez-nahlad__head h3 { display: flex; gap: 8px; align-items: center; margin: 0; font-size: 1.1rem; }
.rez-nahlad__head .js-nh-info { margin-right: auto; }
.rez-nahlad__head span:not(.material-symbols-rounded) { color: var(--muted); font-size: .95rem; font-variant-numeric: tabular-nums; }
.rez-nahlad.is-warn .rez-nahlad__head span:not(.material-symbols-rounded) { color: #8a2216; font-weight: 600; }
.rez-nahlad__sheet { box-sizing: border-box; width: 100%; max-width: 100%; overflow-x: auto; padding: 18px; background: #e9e4d9; border-radius: 12px; }
.rez-svg { display: block; width: 100%; height: auto; margin: 0 auto; background: #fff; box-shadow: 0 2px 10px rgba(28,27,25,.18); }
.rez-nahlad.is-long .rez-svg { width: calc(var(--w) * 1.6px); max-width: none; }
.rez-svg .rez-list { fill: #fff; }
.rez-svg .rez-okraj { fill: none; stroke: #c9c1b0; stroke-width: .3; stroke-dasharray: 2 1.5; }
.rez-svg path { fill: none; stroke: #1c1b19; stroke-linecap: round; stroke-linejoin: round; }
.rez-svg path.rez-bod { fill: #1c1b19; stroke: none; }
.rez-svg text { fill: #1c1b19; font-family: Arial, "Source Sans 3", sans-serif; }
.rez-nahlad__pozn { margin: 8px 0 0; color: var(--muted); font-size: .9rem; }

/* ---------- Kanalizácia: malé políčka (mierka, rovina, staničenie, dimenzie, sklon) ---------- */
.param-grid { display: grid; grid-template-columns: max-content auto; gap: 8px 12px; align-items: center; }
.param-grid label { display: contents; }
.param-grid .pg-label { font-weight: 600; font-size: .98rem; }
.tool-form .param-grid input { box-sizing: border-box; width: 76px; min-width: 0; min-height: 30px; height: 30px; padding: 3px 8px; font-size: .98rem; border-radius: 8px; text-align: right; justify-self: start; }
.tool-form .param-grid select { box-sizing: border-box; width: auto; min-width: 76px; min-height: 30px; height: 30px; padding: 2px 30px 2px 8px; font-size: .98rem; border-radius: 8px; background-position: right 10px center; justify-self: start; }
.ratio-s { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: .98rem; }
.tool-form .ratio-s input { width: 64px; }
.ratio-s { white-space: nowrap; }
@media (max-width: 40em) {
  .param-grid { grid-template-columns: 1fr; gap: 4px; }
  .param-grid label:not(:first-child) .pg-label { margin-top: 8px; }
}
.tool-form .param-grid--text input { width: 210px; text-align: left; }
@media (max-width: 40em) { .tool-form .param-grid--text input { width: 100%; } }
.tool-form[data-tool=kanal] .prof-opts > fieldset { padding: 0 30px; flex-shrink: 0; }
@media (max-width: 40em) { .tool-form[data-tool=kanal] .prof-opts > fieldset { padding: 0; } .tool-form[data-tool=kanal] .prof-opts > fieldset:not(:last-child) { padding-bottom: 18px; } }
/* kanalizácia: formulár v strede panela (tlačidlo vľavo ako pri TKK a profile) */
.tool-form[data-tool=kanal] { margin-inline: auto; }

/* ---------- Vodorovné čiary medzi časťami formulárov (všetky nástroje) ---------- */
.tool-form .sec { display: grid; gap: 26px; padding-top: 24px; border-top: 1.5px solid var(--line, #d8d1c2); min-width: 0; }
.tool-form > .form-actions, .tool-form > .po-cast > .form-actions { padding-top: 24px; border-top: 1.5px solid var(--line, #d8d1c2); }
.tool-form .sec > .a4-hint { margin-top: -6px; }
.tool-form .sec.sec--plain { padding-top: 0; border-top: 0; }   /* TKK: bez čiary medzi súborom bodov a knižnicou */

/* TKK: vzorová knižnica (len na čítanie) */
.badge--vzor { background: var(--ink); color: #fff; }
.alert--info { background: #eef1f4; align-items: center; flex-wrap: wrap; }
.alert--info p { flex: 1 1 260px; margin: 0; }
#lib-editor.is-vzor .edit-table input, #lib-editor.is-vzor .edit-table select { background: transparent; border-color: transparent; color: var(--ink); }
#lib-editor.is-vzor .js-row-del, #lib-editor.is-vzor .js-add-row, #lib-editor.is-vzor .js-add-line, #lib-editor.is-vzor .js-save-lib { display: none; }

/* stiahnutie: „Stiahnuť“ a „Stiahnuť a začať znova“ vedľa seba */
.file__btns { display: inline-flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.rez-nahlad__head .file__btns { margin-left: 0; }
@media (max-width: 40em) { .file__btns { width: 100%; } .file__btns .btn { flex: 1 1 100%; justify-content: center; } }

/* Nivelák – pevné body zo zápisníka */
.pevne-box { margin-bottom: 14px; }
.pevne-box .table-scroll { max-height: 320px; overflow: auto; border: 1px solid var(--line); border-radius: 10px; margin-top: 6px; }
.pevne-table td, .pevne-table th { padding: 6px 12px; vertical-align: middle; }
.pevne-table input[type=text] { width: 9rem; padding: 3px 8px !important; min-height: 0 !important; height: auto !important; font: inherit; border-radius: 6px; }
.pevne-table thead th { position: sticky; top: 0; background: var(--bg, #fff); z-index: 1; }
.pevne-table td:first-child, .pevne-table th:first-child { width: 4.5rem; }
.pevne-table td:nth-child(2), .pevne-table th:nth-child(2) { width: 12rem; }
.pevne-table td:last-child { text-align: left; }
.pevne-table input[type=text] { display: inline-block; margin: 0 !important; }
.pevne-table input[type=checkbox] { width: 18px; height: 18px; }
.pevne-msg { color: var(--muted); margin: 4px 0 0; }
.param-grid label[hidden] { display: none !important; }


/* profil a kanalizácia: ortofoto náhľad trasy */
.orto { display: grid; gap: 8px; }
.orto[hidden] { display: none; }
.orto__head { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; }
.orto__head small { margin-right: auto; }
.orto__head small { color: var(--muted); font-size: .9rem; }
.orto__map { position: relative; width: 100%; border-radius: 12px; overflow: hidden; background: #d9d4c7; }
.orto__map img, .orto__map svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.orto__map img[hidden] { display: none; }
.orto__ku { position: absolute; z-index: 2; left: 1%; top: 1.5%; padding: 4px 10px; border-radius: 6px; background: rgba(255,255,255,.88); color: #111; font-weight: 700; font-size: .95rem; }
.orto__ku[hidden], .js-kn-chip[hidden], .js-kn-attr[hidden] { display: none; }
.orto-l { fill: none; stroke: #f2c230; stroke-width: 4; stroke-linejoin: round; stroke-linecap: round; filter: drop-shadow(0 0 2px rgba(0,0,0,.8)); }
.orto-b { fill: #fff; stroke: #1d1c1a; stroke-width: 2.5; }
.orto-b--pripojka { fill: #f2c230; }
.orto-b--trasa { fill: #1d1c1a; stroke: #fff; }
.orto-t { font: 700 22px "Source Sans 3", system-ui, sans-serif; fill: #fff; paint-order: stroke; stroke: rgba(0,0,0,.85); stroke-width: 4px; }
.orto-mb { fill: rgba(255,255,255,.85); }
.orto-m { stroke: #111; stroke-width: 3; fill: none; }
.orto-mt { font: 700 20px "Source Sans 3", system-ui, sans-serif; fill: #111; }
/* kanalizácia: odkiaľ je katastrálne územie */
.ku-zdroj { display: block; margin-top: 4px; color: var(--muted); font-size: .82rem; font-weight: 400; line-height: 1.3; }
.ku-zdroj[hidden] { display: none; }
.orto { margin-bottom: 4px; }
.param-grid .ku-zdroj { grid-column: 2; margin-top: -4px; max-width: 260px; }
@media (max-width: 40em) { .param-grid .ku-zdroj { grid-column: 1; max-width: none; } }
/* ortofoto: voľby vrstiev katastra */
.orto__bar { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; }
.orto__vrstvy { display: flex; flex-wrap: wrap; gap: 6px; }
.orto__vrstvy .chip { gap: 6px; padding: 3px 10px 3px 7px; font-size: .9rem; border-width: 1px; }
.orto__vrstvy .chip input { width: 15px; height: 15px; }
.orto__vrstvy .chip[hidden] { display: none; }
.orto__vrstvy .chip.is-loading { opacity: .6; cursor: progress; }
/* TKK knižnice: zámok – chránená heslom */
.icon-btn.js-heslo.is-lock { color: #9a7a1c; }
/* kanalizácia: súbory v rámiku, dole „Stiahnuť všetko (ZIP)“ */
.files--box { border: 1.5px solid var(--line, #cfc8b8); border-radius: var(--radius, 14px); padding: 4px 18px; background: var(--bg, #fff); }
.files__head { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; padding: 12px 0 10px; border-bottom: 1px solid var(--line, #e3ddcf); }
.files__head b { font-size: 1.05rem; }
.files__head small { color: var(--muted); font-size: .9rem; }
.files__foot { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; padding: 12px 0 10px; border-top: 1.5px solid var(--ink, #1d1c1a); margin-top: 2px; }
/* Vystredenie: zámok s heslom */
.xml-lock { display: grid; gap: 12px; padding: 20px 22px; border: 1.5px solid var(--line, #cfc8b8); border-radius: var(--radius, 14px); background: var(--bg, #fff); }
.xml-lock[hidden], .xml-lock__form[hidden] { display: none; }
.xml-lock__txt { display: flex; gap: 8px; align-items: center; margin: 0; font-weight: 600; }
.xml-lock__txt .material-symbols-rounded { color: #9a7a1c; }
.xml-lock__form { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.xml-lock__form input { max-width: 240px; }
.xml-lock__form .btn { border: 0; cursor: pointer; }
/* hlavná stránka: zámok pri nástroji chránenom heslom (Vystredenie) – vpravo dole na karte */
.tool-card { position: relative; }
.tool-card__lock { position: absolute; right: 12px; bottom: 10px; font-size: 1.15rem; color: #9a7a1c; }

/* Vystredenie: heslo priamo v tlačidle */
.tool-card--xml { cursor: pointer; }
.tool-card__login { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 12px; padding-right: 26px; cursor: default; }
.tool-card__login[hidden] { display: none; }
.tool-card__login input { flex: 1 1 120px; width: auto; min-width: 0; min-height: 40px; padding: 6px 10px; border: 1.5px solid var(--line); border-radius: 9px; background: #fff; font: inherit; font-size: .95rem; }
.tool-card__login input:focus { outline: none; border-color: var(--ink); }
.tool-card__login .btn { min-height: 40px; padding: 0 12px; border: 0; cursor: pointer; }
.tool-card__login .btn .material-symbols-rounded { margin: 0; }
.tool-card__err { flex-basis: 100%; font-size: .85rem; color: #a12b1f; }
.tool-card__err:empty { display: none; }

/* TKK protokol: súhrn + tabuľka ako náhľad */
.protocol__suhrn { margin: 0 0 12px; font-size: 1rem; }
.protocol__nahlad { border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.protocol__nahlad summary { cursor: pointer; padding: 10px 16px; font-weight: 600; color: var(--muted); }
.protocol__nahlad summary:hover, .protocol__nahlad[open] summary { color: var(--ink); }
.protocol__tab { max-height: 420px; overflow: auto; border-top: 1px solid var(--line); }
.protocol--tkk .protocol__tab table { font-size: .88rem; }
.protocol--tkk .protocol__tab td { padding: 5px 12px; }

/* STX → DXF (STN 01 3411): štítok na karte, informácie, prevodná tabuľka */
.tool-card__badge { grid-column: 2; justify-self: start; margin-top: 8px; padding: 2px 10px; border-radius: 999px; background: #fbe5e1; color: #7a1e14; font-size: .78rem; font-weight: 700; letter-spacing: .02em; white-space: nowrap; }
.stn-info { display: grid; gap: 8px; margin: 0 0 22px; padding: 14px 18px; border-radius: var(--radius); background: var(--yellow-soft); font-size: .95rem; line-height: 1.45; }
.stn-info > div { display: grid; grid-template-columns: 7.5em 1fr; gap: 10px; }
.stn-info dt { font-weight: 700; }
.stn-info dd { margin: 0; }
@media (max-width: 600px) { .stn-info > div { grid-template-columns: 1fr; gap: 0; } }
.stn-tab { margin-top: 24px; }
.stn-h { display: flex; align-items: baseline; gap: 8px; margin: 26px 0 10px; font-size: 1.1rem; }
.stn-h small { color: var(--muted); font-weight: 400; font-size: .9rem; }
.stn-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.stn-table th { text-align: left; font-weight: 700; padding: 6px 8px; border-bottom: 1.5px solid var(--ink); white-space: nowrap; }
.stn-table td { padding: 5px 8px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.stn-table input, .stn-table select { width: 100%; min-width: 0; min-height: 36px; padding: 4px 8px; border: 1.5px solid var(--line); border-radius: 8px; background: #fff; font: inherit; font-size: .92rem; }
.stn-table input:focus, .stn-table select:focus { outline: 2px solid var(--yellow); border-color: #b8900f; }
.stn-table .stn-sel { min-width: 230px; }
.stn-table td:nth-child(3) input { min-width: 150px; }
.stn-table td:nth-child(4) input { min-width: 130px; }
.stn-table td:nth-child(6) select { min-width: 105px; }
.stn-c-nahlad { width: 1%; }
.stn-nahlad { display: block; width: 52px; height: 52px; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.stn-nahlad--ciara { width: 150px; height: 26px; }
.stn-c-farba { white-space: nowrap; }
.stn-c-farba input { width: 64px; min-width: 64px; display: inline-block; vertical-align: middle; }
.stn-farba { display: inline-block; width: 16px; height: 16px; margin-right: 6px; border-radius: 4px; vertical-align: middle; border: 1px solid rgba(0,0,0,.15); }
.stn-table--vrstvy { max-width: 560px; }
.stn-table--vrstvy td:first-child input { min-width: 160px; }

.stn-tab .js-stn-add, .stn-tab .js-stn-vadd { display: inline-flex; width: auto; margin-top: 10px; }
/* ikona TKK a STX → DXF: rovnaký obrázok, pod ním formát výstupu */
.tool-card__icon--txt { position: relative; }
.tool-card__icon--txt .tool-card__svg { width: 2.1rem; height: 2.1rem; margin-top: -10px; }
.tool-card__icon-fmt { position: absolute; left: 0; right: 0; bottom: 4px; text-align: center; font-family: var(--font-head); font-size: .66rem; font-weight: 800; letter-spacing: .06em; line-height: 1; }
/* Výber nástroja: všetky karty rovnako veľké, veľké ikony; pri nástrojoch s heslom len zámok (heslo sa zadá v nástroji) */
.tool-card { box-sizing: border-box; height: 172px; padding: 18px; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto auto 1fr; align-content: start; column-gap: 16px; overflow: hidden; }
.tool-card__icon { grid-row: 1 / 5; width: 112px; height: 112px; font-size: 4.4rem; border-radius: 18px; }
.tool-card__svg { width: 4.4rem; height: 4.4rem; }
.tool-card__icon--txt .tool-card__svg { width: 3.7rem; height: 3.7rem; margin-top: -16px; }
.tool-card__icon-fmt { bottom: 8px; font-size: .95rem; }
.tool-card__name { font-size: 1.12rem; }
.tool-card__desc { font-size: .95rem; }
.tool-card__fmt { font-size: .76rem; }
.tool-card__lock { right: 12px; bottom: 10px; font-size: 1.5rem; }
.tool-card__badge { grid-column: auto; grid-row: auto; position: absolute; left: 18px; top: 136px; width: 112px; margin: 0; padding: 2px 4px; border-radius: 8px; text-align: center; white-space: nowrap; line-height: 1.3; font-size: .7rem; }
.tool-card:has(.tool-card__badge) .tool-card__icon { height: 112px; }
.tool-card:has(.tool-card__badge) { padding-bottom: 30px; }
@media (max-width: 600px) { .tool-card { height: 150px; } .tool-card__icon { width: 96px; height: 96px; font-size: 3.8rem; } .tool-card__svg { width: 3.8rem; height: 3.8rem; } .tool-card__icon--txt .tool-card__svg { width: 3.1rem; height: 3.1rem; margin-top: -14px; } .tool-card__icon-fmt { font-size: .82rem; bottom: 6px; } .tool-card__badge { width: auto; top: auto; left: auto; right: 46px; bottom: 13px; padding: 2px 8px; } .tool-card:has(.tool-card__badge) { padding-bottom: 18px; } }
.xml-lock .xml-lock__form { margin-top: 12px; }
.tool-form[hidden], .xml-lock[hidden], .stn-tab[hidden] { display: none !important; }
.xml-lock__form input { min-height: 44px; padding: 8px 12px; border: 1.5px solid var(--line); border-radius: 10px; background: #fff; font: inherit; }
.tool-card__name--vstupy { white-space: nowrap; display: flex; align-items: center; }
.tool-card__vstupy { display: inline-flex; flex-direction: column; font-size: .6em; line-height: 1.02; letter-spacing: .02em; }
/* žiadosť o vstupný súbor (GSI → DL) – rovnaký riadok ako kontakt, červený */
.tools-contact--ziadost { margin-top: 10px; background: #fbe5e1; color: #7a1e14; }
.tools-contact--ziadost .material-symbols-rounded { color: #a12b1f; }

/* kanalizácia: náhľad situácie (trasa zhora na katastri) */
.sit-volby { margin: 0 0 12px; padding: 0; border: 0; min-width: 0; }
.sit-volby legend { padding: 0; margin-bottom: 8px; font-weight: 700; }
.sit-volby__opts { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
.sit-volby .paper-opt { padding: 10px 14px; gap: 12px; }
.paper-ico--a4.paper-ico--vysku { width: 21px; height: 30px; }
.paper-ico--a3.paper-ico--vysku { width: 30px; height: 42px; }
.sit-volby__m { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; margin-top: 10px; font-weight: 600; }
.sit-volby__m small { color: var(--muted); font-weight: 400; font-size: .9rem; }
.sit-volby select { font: inherit; padding: 5px 8px; border-radius: 8px; border: 1.5px solid #cfc8b8; background: #fff; }
.sit-svg .sit-kn { opacity: .62; }
.sit-svg .sit-ram { fill: none; stroke: #1c1b19; stroke-width: .35; }
.sit-svg .sit-siet path { fill: none; stroke: #6b665c; stroke-width: .15; }
.sit-svg .sit-l { fill: none; stroke: #8a4510; stroke-width: .7; stroke-linejoin: round; stroke-linecap: round; }
.sit-svg .sit-s { fill: #fff; stroke: #8a4510; stroke-width: .35; }
.sit-svg .sit-vo { fill: #8a4510; stroke: #8a4510; stroke-width: .3; }
.sit-svg .sit-p { fill: #fff; stroke: #8a4510; stroke-width: .25; }
.sit-svg text { font-family: Arial, "Source Sans 3", sans-serif; }
.sit-svg .sit-t { fill: #1c1b19; }
.sit-svg .sit-t--siet { fill: #6b665c; }
.sit-svg .sit-t--p { fill: #6b4a1e; }
.sit-svg .sit-lem { fill: #fff; stroke: #fff; stroke-width: .7; stroke-linejoin: round; }
.sit-svg .sit-sip { fill: none; stroke: #1c1b19; stroke-width: .22; }
.sit-svg .sit-sip-lem { fill: none; stroke: #fff; stroke-width: .8; stroke-linecap: round; }
.sit-svg .sit-sip-h { fill: #1c1b19; stroke: none; }
.sit-svg .sit-sev-k { fill: rgba(255,255,255,.85); stroke: #1c1b19; stroke-width: .2; }
.sit-svg .sit-sev-1 { fill: #1c1b19; }
.sit-svg .sit-sev-2 { fill: #fff; stroke: #1c1b19; stroke-width: .2; }
.sit-svg .sit-mb { fill: rgba(255,255,255,.88); }
.sit-svg .sit-mb-c { fill: #1c1b19; stroke: #1c1b19; stroke-width: .15; }
.sit-svg .sit-mb-b { fill: #fff; stroke: #1c1b19; stroke-width: .15; }
.sit-svg .sit-pole rect { fill: #fff; stroke: #1c1b19; stroke-width: .35; }
.sit-svg .sit-pole path { fill: none; stroke: #1c1b19; stroke-width: .2; }
/* Profil – terén / Profil – kanál: názov v jednom riadku */
.tool-card__name--1r { white-space: nowrap; }
/* v úzkej karte sa písmo mierne zmenší, aby sa názov zmestil (stĺpec názvu = obsah karty − 128 px, názov ≈ 6 em) */
.tool-card:has(.tool-card__name--1r) { container-type: inline-size; }
@container (min-width: 0px) { .tool-card__name--1r { font-size: min(1.12rem, calc((100cqi - 130px) / 6.05)); } }

/* Konverzia: vlastný zápisník */
.kv-pozn { color: var(--muted); font-size: .95rem; margin-top: -12px; }
.kv-vlastny { display: grid; gap: 18px; }
.kv-vlastny[hidden] { display: none; }
.kv-vlastny__top { display: flex; flex-wrap: wrap; gap: 14px 20px; align-items: end; }
.kv-oz { min-width: 200px; }
.kv-prf { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.kv-prf label.btn { cursor: pointer; }
.tool-form .js-kv-def { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size: .98rem; }
.tool-form .js-kv-def.is-ciel { border-color: #b8900f; box-shadow: 0 0 0 2px var(--yellow-soft); }
.kv-param { display: grid; gap: 10px; }
.kv-param__hint { margin: 0; color: var(--muted); font-size: .95rem; }
.kv-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.kv-chip { font: inherit; font-size: .9rem; padding: 5px 10px; border: 1.5px solid var(--line); border-radius: 999px; background: #fff; color: var(--ink); cursor: pointer; line-height: 1.2; }
.kv-chip b { color: #9a7a1c; margin-right: 2px; }
.kv-chip:hover { border-color: #b8900f; background: var(--yellow-soft); }
.kv-text { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.tool-form .kv-text input { width: 140px; min-height: 44px; }
