/* Oba konfigurátory sdílejí kompaktní rozložení, barvy i vzhled výsledků. */
.tool-directory, .adis4-tool, .amrio-tool { padding: 20px 22px; }
.tool-directory { display: grid; gap: 12px; }
.tool-entry { display: flex; align-items: center; gap: 16px; padding: 16px; border: 1px solid var(--line); border-left: 3px solid var(--primary); border-radius: 3px; }
.tool-entry:hover { background: var(--surface-hover); }
.tool-entry > .icon { width: 26px; height: 26px; color: var(--accent); }
.tool-entry strong, .tool-entry > span > span { display: block; }
.tool-entry > span > span { color: var(--muted); font-size: var(--font-size-base); }
.tool-entry-action { margin-left: auto; font-size: var(--font-size-base); font-weight: 700; }
.config-intro { margin: 0 0 18px; font-size: var(--font-size-base); color: var(--text-secondary); }
.config-fieldset { min-width: 0; margin: 0 0 18px; padding: 0; border: 0; }
.config-fieldset legend { width: 100%; margin: 0 0 8px; padding: 0 0 7px; border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 700; }
/* Stejný širší sloupec pojme české, anglické i polské popisky a jejich nápovědy. */
.config-grid { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; gap: 3px; }
.config-field { display: grid; grid-template-columns: minmax(0, 220px) 72px minmax(0, 1fr); align-items: center; gap: 8px; padding-block: 5px; min-width: 0; }
.config-range { min-width: 0; margin-left: 8px; color: var(--text-secondary); font-size: var(--font-size-base); line-height: 1.5; }
/* Delší popisky se zalomí, aby při stejné velikosti písma nepřekrývaly vstup. */
.config-field label { min-width: 0; font-size: var(--font-size-base); font-weight: 700; line-height: 1.5; cursor: pointer; }
.config-field label > span { display: block; color: var(--muted); font-size: var(--font-size-base); font-weight: 400; }
/* Zkratka V/V je světle zelená a zůstává na stejném řádku s parametry. */
.config-field .io-code { color: #a6e3a1; }
/* Nativní šipky respektují color-scheme: dark; rámeček odlišuje pole od panelu. */
.config-field input { width: 72px; flex: 0 0 72px; min-height: 38px; padding: 7px 5px 7px 9px; border: 1px solid var(--field-border); border-radius: 3px; background: var(--bg); color: var(--text); font: 600 var(--font-size-base) Arial, sans-serif; font-variant-numeric: tabular-nums; }
.config-field input:hover { border-color: var(--muted); }
.config-note { margin: 10px 0 0; color: var(--muted); font-size: var(--font-size-base); line-height: 1.6; }
.config-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.config-actions button { min-height: 39px; padding: 8px 15px; border-radius: 3px; font-size: var(--font-size-base); font-weight: 700; cursor: pointer; }
.calculate-button { background: var(--primary); border: 1px solid var(--primary); color: var(--page-bg); }
.calculate-button:hover { background: var(--accent); border-color: var(--accent); }
.reset-button { background: var(--surface-raised); border: 1px solid var(--field-border); color: var(--text-secondary); }
.reset-button:hover { background: var(--surface-hover); }
.config-actions > span { margin-left: auto; color: var(--muted); font-size: var(--font-size-base); }

/* Výsledek se ukazuje až po výpočtu; po úpravě zadání se skryje neaktuální soupis. */
.config-result { margin-top: 22px; border-top: 2px solid var(--line); padding-top: 15px; }
.result-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.result-heading h3 { margin: 0; font-size: 17px; }
.result-status { color: var(--muted); font-size: var(--font-size-base); }
/* Světlé stavové barvy na tmavém podkladu doplňuje vždy textový popis. */
.result-status.is-valid { color: var(--success); background: var(--success-bg); padding: 3px 8px; border-radius: 3px; }
.result-status.is-invalid { color: var(--danger); background: var(--danger-bg); padding: 3px 8px; border-radius: 3px; }
.result-empty, .result-stale { margin: 12px 0 0; font-size: var(--font-size-base); color: var(--muted); }
.result-stale { padding: 10px 12px; color: var(--accent); background: var(--accent-bg); border-left: 3px solid var(--primary); }
.result-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 14px 0 18px; padding: 12px 15px; background: var(--surface-raised); border: 1px solid var(--line); border-radius: 3px; gap: 12px; }
.result-summary dt { font-size: var(--font-size-base); color: var(--muted); }
.result-summary dd { margin: 3px 0 0; font-size: 19px; font-weight: 700; font-variant-numeric: tabular-nums; }
/* CPU a skutečné hodnoty mají stejnou světle zelenou jako zkratky V/V; limity zůstávají bílé. */
.result-summary .result-value { color: #a6e3a1; }
.result-summary .result-value.over-limit { color: var(--danger); }
.over-limit { color: var(--danger); }
.config-result h4 { font-size: 14px; margin: 18px 0 8px; }

/* Export patří k výsledku; na telefonu se tlačítka i stav zalomí podle místa. */
.result-exports { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0 14px; }
.result-exports button { min-height: 40px; padding: 8px 14px; border: 1px solid var(--field-border); border-radius: 3px; background: var(--surface-raised); color: var(--text); font: inherit; font-size: var(--font-size-base); font-weight: 700; cursor: pointer; }
.result-exports button:hover { background: var(--surface-hover); border-color: var(--heading); }
.result-exports button:disabled { opacity: .6; cursor: wait; }
.result-exports [role=status] { color: var(--text-secondary); font-size: var(--font-size-base); }

/* Nárysy tvoří souvislou řadu: CPU vlevo, každý další modul jako jeden kus. */
.assembly-preview { margin-top: 14px; padding: 12px; border: 1px solid var(--line); border-radius: 3px; background: var(--bg); }
.assembly-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 4px 12px; margin-bottom: 10px; }
.assembly-heading h4 { margin: 0; }
.assembly-count { color: var(--muted); font-size: 12px; }
.assembly-scroll { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-color: var(--field-border) var(--bg); scrollbar-width: thin; }
.assembly-track { display: flex; align-items: start; gap: 2px; width: max-content; min-width: 100%; margin: 0; padding: 0 0 8px; list-style: none; }
.assembly-device { flex: 0 0 var(--device-width); width: var(--device-width); text-align: center; }
.assembly-device--cpu { margin-right: 2px; }
.assembly-position { display: block; height: 20px; color: var(--muted); font: 10px/20px Consolas, monospace; }
.assembly-drawing { display: flex; align-items: center; justify-content: center; height: 218px; }
.assembly-drawing img { flex: none; max-width: none; object-fit: contain; }
.assembly-model { display: block; padding-top: 7px; color: var(--text-secondary); font: 9px/14px Consolas, monospace; white-space: nowrap; }
.assembly-missing { display: flex; align-items: center; justify-content: center; width: 100%; height: 192px; padding: 5px; border: 1px dashed var(--muted); border-radius: 3px; background: var(--surface-raised); color: var(--muted); font-size: var(--font-size-base); }
.assembly-note { margin: 6px 0 0; color: var(--muted); font-size: var(--font-size-base); line-height: 1.5; }

/* AMRIO: šest skutečných kusů na řádku, v původním měřítku nárysů.
   Na telefonu zůstává šestice pohromadě v samostatně posuvném panelu. */
.amrio-assembly-track { display: grid; grid-template-columns: repeat(var(--assembly-columns, 6), 133px); gap: 14px 6px; min-width: 0; }
.amrio-assembly-track .assembly-device { --device-width: 133px; }
.amrio-assembly-track .assembly-drawing, .amrio-assembly-track .assembly-missing { height: 123px; }
.amrio-assembly-track .assembly-model { padding-top: 5px; font-size: 10px; }

.config-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 3px; }
.config-table { width: 100%; border-collapse: collapse; font-size: var(--font-size-base); line-height: 1.5; }
.config-table th, .config-table td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
.config-table thead { background: var(--surface-raised); color: var(--text-secondary); }
.config-table th:first-child { white-space: nowrap; }
.config-table td:nth-child(2), .config-table td:last-child { white-space: nowrap; font-variant-numeric: tabular-nums; }
.config-table th:nth-child(2), .config-table td:nth-child(2) { text-align: right; }
.config-table tfoot { background: var(--surface-raised); font-weight: 700; }
.config-table tfoot td:nth-child(3) { font-size: var(--font-size-base); font-weight: 400; color: var(--muted); }
.config-table tr:last-child > * { border-bottom: 0; }
.config-table tbody tr + tr { border-top: 1px solid var(--line); }
.config-table tfoot { border-top: 1px solid var(--line); }
/* Elektrické vlastnosti AMRIO jsou text; mohou se zalomit i v úzké tabulce. */
.amrio-tool .config-table td:last-child { white-space: normal; }
.capacity-table td:not(:first-child), .capacity-table th:not(:first-child) { text-align: right; }
.config-accessories { margin: 10px 0; padding: 9px 12px; background: var(--surface-raised); color: var(--text-secondary); font-size: var(--font-size-base); }
.config-issues { margin: 12px 0; padding: 12px 14px 12px 30px; border-left: 3px solid var(--danger); background: var(--danger-bg); color: var(--danger); font-size: var(--font-size-base); }
.config-issues li + li { margin-top: 5px; }
.config-sources { margin-top: 20px; border-top: 1px solid var(--line); padding-top: 12px; color: var(--text-secondary); font-size: var(--font-size-base); }
.config-sources summary { cursor: pointer; font-size: 13px; font-weight: 700; }
.config-sources a { color: var(--link); text-decoration: underline; text-underline-offset: 3px; }
.config-sources p { margin: 10px 0; }

@media (max-width: 1150px) {
    .config-actions > span { width: 100%; margin-left: 0; }
}
/* V užším hlavním panelu patří rozsah pod dvojici popisek–pole. */
@media (max-width: 900px) {
    .config-field { grid-template-columns: minmax(0, 220px) minmax(72px, 1fr); row-gap: 3px; }
    .config-range { grid-column: 1 / -1; margin: 0 0 3px; }
}
@media (max-width: 760px) {
    .tool-directory, .adis4-tool, .amrio-tool { padding: 16px; }
    .result-summary { grid-template-columns: minmax(0, 1fr); gap: 9px; }
    .result-summary > div { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
    .result-summary dd { margin: 0; font-size: 16px; }
    .tool-entry { align-items: flex-start; }
    .tool-entry-action { display: none; }
}
@media (max-width: 540px) {
    .config-field input { min-height: 42px; }
    .config-table { min-width: 470px; }
}
/* Úzký telefon ponechává více místa pro zadání i nápovědy. */
@media (max-width: 360px) {
    .adis4-tool, .amrio-tool { padding-inline: 12px; }
}
