/* Data projektu (src/storeys.js, src/findsel.js, src/props.js): modální dialogy, Nastavení podlaží, Najít a vybrat, vlastnosti a klasifikace. Jen tokeny systému Ardit – oba motivy. */

/* ---------- modální dialog ---------- */
.dlg-back {
  position: fixed; inset: 0; z-index: 1100; display: flex; align-items: flex-start; justify-content: center;
  padding: 72px var(--ardit-space-4) var(--ardit-space-4); background: rgba(4, 25, 58, 0.28); overflow: auto;
}
[data-theme="dark"] .dlg-back { background: rgba(0, 0, 0, 0.5); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .dlg-back { background: rgba(0, 0, 0, 0.5); } }
.dlg {
  width: min(760px, 100%); max-height: calc(100vh - 96px); display: flex; flex-direction: column; gap: var(--ardit-space-2);
  padding: var(--ardit-space-4) var(--ardit-space-5); background: var(--ardit-bg1); color: var(--ardit-fg1);
  border: 1px solid var(--ardit-line); border-radius: var(--ardit-radius-lg); box-shadow: var(--ardit-shadow-2);
}
.dlg.dlg-sm { width: min(440px, 100%); }
.dlg-h { display: flex; align-items: center; justify-content: space-between; gap: var(--ardit-space-3); }
.dlg-h h3 { margin: 0; font-size: 16px; font-weight: 600; color: var(--ardit-ink); }
.dlg .x { border: 0; background: transparent; color: var(--ardit-fg3); font-size: 20px; line-height: 1; width: 32px; height: 32px; border-radius: var(--ardit-radius-md); }
.dlg .x:hover { background: var(--ardit-bg3); color: var(--ardit-fg1); }
.dlg-sub, .dlg-p { margin: 0; color: var(--ardit-fg2); font-size: 13px; line-height: 1.45; }
.dlg-p b { color: var(--ardit-fg1); }
.dlg-opt { display: flex; align-items: center; gap: var(--ardit-space-2); font-size: 14px; min-height: 32px; }
.dlg-opt input { accent-color: var(--ardit-action); margin: 0; }
.dlg-opt select, .fs-pal select, .fs-pal input[type=text], .fs-pal input[type=number] {
  height: 32px; padding: 0 var(--ardit-space-2); border: 1px solid var(--ardit-line); background: var(--ardit-bg1); color: var(--ardit-fg1);
  border-radius: var(--ardit-radius-md); font-size: 13px; min-width: 0;
}
.dlg-acts { display: flex; align-items: center; gap: var(--ardit-space-2); flex-wrap: wrap; margin-top: var(--ardit-space-2); }
.dlg-acts .grow { flex: 1; }
.btn.danger-fill { background: var(--ardit-danger); border-color: var(--ardit-danger); color: var(--ardit-on-danger); }
.btn.danger-fill:hover { background: var(--ardit-danger); filter: brightness(0.92); }

/* ---------- Nastavení podlaží ---------- */
.st-wrap { overflow: auto; border: 1px solid var(--ardit-line); border-radius: var(--ardit-radius-md); }
.st-tab { width: 100%; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; }
.st-tab th { position: sticky; top: 0; background: var(--ardit-bg2); color: var(--ardit-fg3); font-weight: 600; font-size: 12px; text-align: left; padding: var(--ardit-space-2); border-bottom: 1px solid var(--ardit-line); white-space: nowrap; }
.st-tab td { padding: var(--ardit-space-1) var(--ardit-space-2); border-bottom: 1px solid var(--ardit-line); vertical-align: middle; }
.st-tab tr:last-child td { border-bottom: 0; }
.st-tab tr.sel td { background: var(--ardit-tint); }
.st-tab tr.cur td:nth-child(2) input { font-weight: 600; }
.st-tab input[type=number], .st-tab input[type=text] {
  width: 100%; height: 30px; padding: 0 var(--ardit-space-2); border: 1px solid var(--ardit-line); background: var(--ardit-bg1); color: var(--ardit-fg1);
  border-radius: var(--ardit-radius-sm); font-family: var(--ardit-font-mono); font-size: 13px; min-width: 0;
}
.st-tab input[type=text] { font-family: var(--ardit-font-sans); min-width: 120px; }
.st-tab td:first-child input { width: 64px; }
.st-tab .lvc { display: flex; align-items: center; gap: var(--ardit-space-2); min-width: 190px; }
.st-tab .lvc input { width: 90px; flex: none; }
.st-tab .lvt { color: var(--ardit-fg3); font-size: 12px; line-height: 1.25; white-space: nowrap; }
.st-tab td:nth-child(4) input { width: 80px; }
.st-tab .ck { text-align: center; }
.st-tab .ck input { width: 18px; height: 18px; accent-color: var(--ardit-action); margin: 0; }
.st-tab .btn.text { height: 28px; padding: 0 var(--ardit-space-2); font-size: 12px; font-weight: 500; }
.st-tab tr.cur .btn.text { color: var(--ardit-fg3); }

/* ---------- Najít a vybrat (plovoucí paleta) ---------- */
.fs-pal {
  position: fixed; z-index: 40; width: 316px; max-height: calc(100vh - 80px); display: flex; flex-direction: column;
  background: var(--ardit-bg1); color: var(--ardit-fg1); border: 1px solid var(--ardit-line); border-radius: var(--ardit-radius-lg); box-shadow: var(--ardit-shadow-2); font-size: 13px;
}
.fs-h { display: flex; align-items: center; justify-content: space-between; padding: var(--ardit-space-2) var(--ardit-space-2) var(--ardit-space-1) var(--ardit-space-3); cursor: move; user-select: none; }
.fs-h h3 { margin: 0; font-size: 14px; font-weight: 600; color: var(--ardit-ink); }
.fs-h .x { border: 0; background: transparent; color: var(--ardit-fg3); font-size: 18px; width: 28px; height: 28px; border-radius: var(--ardit-radius-md); }
.fs-h .x:hover { background: var(--ardit-bg3); color: var(--ardit-fg1); }
.fs-body { overflow: auto; padding: 0 var(--ardit-space-3); }
.fs-l { color: var(--ardit-fg3); font-size: 12px; font-weight: 600; margin: var(--ardit-space-1) 0; }
.fs-types { display: flex; flex-wrap: wrap; gap: var(--ardit-space-1); margin-bottom: var(--ardit-space-2); }
.fs-chip { display: inline-flex; align-items: center; height: 26px; padding: 0 var(--ardit-space-2); border: 1px solid var(--ardit-line); border-radius: var(--ardit-radius-full); cursor: pointer; font-size: 12px; color: var(--ardit-fg2); background: var(--ardit-bg1); }
.fs-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.fs-chip:focus-within { outline: 2px solid var(--ardit-tint-line); outline-offset: 1px; }
.fs-chip.on { background: var(--ardit-tint); border-color: var(--ardit-tint-line); color: var(--ardit-ink); font-weight: 600; }
.fs-row { display: grid; grid-template-columns: 112px 1fr; align-items: center; gap: var(--ardit-space-2); margin: var(--ardit-space-1) 0; }
.fs-row > label { color: var(--ardit-fg2); font-size: 12px; line-height: 1.25; }
.fs-row select, .fs-row input[type=text] { width: 100%; }
.fs-chk { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ardit-space-1); font-size: 13px; }
.fs-chk input { accent-color: var(--ardit-action); margin: 0; width: 16px; height: 16px; }
.fs-cur { color: var(--ardit-fg3); font-size: 12px; white-space: nowrap; }
.fs-2 { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--ardit-space-1); }
.fs-2:has(> select) { grid-template-columns: 1fr 1fr; }
.fs-2 input { width: 100%; font-family: var(--ardit-font-mono); }
.fs-2 span { color: var(--ardit-fg3); }
.fs-count { margin: var(--ardit-space-2) 0 var(--ardit-space-1); padding: var(--ardit-space-2); border-radius: var(--ardit-radius-md); background: var(--ardit-bg2); color: var(--ardit-fg2); }
.fs-count b { color: var(--ardit-ink); font-size: 14px; }
.fs-acts { display: flex; flex-wrap: wrap; gap: var(--ardit-space-1); padding: var(--ardit-space-2) var(--ardit-space-3) var(--ardit-space-3); border-top: 1px solid var(--ardit-line); }
.fs-acts .btn.sm { padding: 0 var(--ardit-space-2); }

/* ---------- Vlastnosti a klasifikace (src/props.js): sady v pravém panelu, editor sad, výběr klasifikace ---------- */
.pp-set { margin: var(--ardit-space-2) 0; border: 1px solid var(--ardit-line); border-radius: var(--ardit-radius-md); background: var(--ardit-bg1); }
.pp-set > summary { display: flex; align-items: center; gap: var(--ardit-space-2); min-height: 32px; padding: 0 var(--ardit-space-2); cursor: pointer; list-style: none; user-select: none; }
.pp-set > summary::-webkit-details-marker { display: none; }
.pp-set > summary::before { content: '▸'; color: var(--ardit-fg3); font-size: 11px; width: 10px; }
.pp-set[open] > summary::before { content: '▾'; }
.pp-set > summary:focus-visible { outline: 2px solid var(--ardit-tint-line); outline-offset: -2px; border-radius: var(--ardit-radius-md); }
.pp-sn { font: 600 12px/1.3 var(--ardit-font-mono); color: var(--ardit-ink); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pp-tag { margin-left: auto; flex: none; font-size: 11px; color: var(--ardit-fg3); white-space: nowrap; }
.pp-body { padding: 0 var(--ardit-space-2) var(--ardit-space-2); border-top: 1px solid var(--ardit-line); }
.pp-row { display: grid; grid-template-columns: minmax(0, 1fr) 150px; align-items: center; gap: var(--ardit-space-2); margin: var(--ardit-space-1) 0; }
.pp-row > label { display: flex; flex-direction: column; min-width: 0; line-height: 1.2; }
.pp-n { font: 12px/1.25 var(--ardit-font-mono); color: var(--ardit-fg1); overflow-wrap: anywhere; }
.pp-cz { font-size: 11px; color: var(--ardit-fg3); }
.pp-row select, .pp-row input, .cls-row input {
  width: 100%; height: 30px; padding: 0 var(--ardit-space-2); border: 1px solid var(--ardit-line); background: var(--ardit-bg1); color: var(--ardit-fg1);
  border-radius: var(--ardit-radius-md); font-family: var(--ardit-font-mono); font-size: 12px; min-width: 0;
}
.pp-row input::placeholder, .cls-row input::placeholder { color: var(--ardit-fg3); font-style: italic; }
.pp-row.mixed select, .pp-row.mixed input { border-style: dashed; }
.pp-in { display: flex; align-items: center; gap: var(--ardit-space-1); min-width: 0; }
.pp-u { flex: none; font-size: 11px; color: var(--ardit-fg3); max-width: 54px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pp-ro { font-size: 12px; color: var(--ardit-fg2); text-align: left; overflow-wrap: anywhere; }
.pp-row.is-ro .pp-n { color: var(--ardit-fg2); }
.pp-acts { margin-top: var(--ardit-space-2); }
.pp-h4 { margin: var(--ardit-space-3) 0 var(--ardit-space-1); font-size: 12px; font-weight: 600; color: var(--ardit-fg3); }
.pp-def { display: grid; grid-template-columns: minmax(0, 1fr) auto 24px; align-items: center; gap: var(--ardit-space-2); padding: var(--ardit-space-1) 0; border-bottom: 1px solid var(--ardit-line); }
.pp-def > div { display: flex; flex-direction: column; min-width: 0; }
.pp-def b { font: 600 12px/1.3 var(--ardit-font-mono); color: var(--ardit-ink); overflow-wrap: anywhere; }
.pp-def span { font-size: 11px; color: var(--ardit-fg3); line-height: 1.35; }
.pp-def .x, .cls-row .x { border: 0; background: transparent; color: var(--ardit-fg3); padding: 0; font-size: 16px; line-height: 1; height: 24px; }
.pp-def .x:hover, .cls-row .x:hover:not(:disabled) { color: var(--ardit-danger); }
.pp-def + .btn, .pp-def + .pp-h4 { margin-top: var(--ardit-space-2); }
.cls-row { display: grid; grid-template-columns: minmax(0, 1fr) 112px 32px 20px; align-items: center; gap: var(--ardit-space-1); margin: var(--ardit-space-2) 0 0; }
.cls-row > label { font-size: 12px; color: var(--ardit-fg2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cls-row .btn.sm { padding: 0; justify-content: center; }
.cls-row .x:disabled { opacity: .35; }
.cls-name { grid-column: 1 / -1; font-size: 12px; color: var(--ardit-fg1); text-align: right; line-height: 1.3; }
.cls-name.warn { color: var(--ardit-warning); }
/* editor sady vlastností */
.dlg.pp-dlg { width: min(860px, 100%); }
.pp-name { display: flex; align-items: center; gap: var(--ardit-space-2); font-size: 13px; color: var(--ardit-fg2); }
.pp-name input { flex: 1; height: 32px; padding: 0 var(--ardit-space-2); border: 1px solid var(--ardit-line); background: var(--ardit-bg1); color: var(--ardit-fg1); border-radius: var(--ardit-radius-md); font: 600 13px var(--ardit-font-mono); min-width: 0; }
.pp-tab select { width: 100%; height: 30px; border: 1px solid var(--ardit-line); background: var(--ardit-bg1); color: var(--ardit-fg1); border-radius: var(--ardit-radius-sm); font-size: 12px; min-width: 120px; }
.pp-tab input[type=text] { min-width: 80px; font-family: var(--ardit-font-mono); }
.pp-tab td:first-child input { width: 100%; min-width: 140px; }
.pp-tab input:disabled { opacity: .45; }
.pp-tab .x { border: 0; background: transparent; color: var(--ardit-fg3); font-size: 16px; width: 24px; height: 24px; }
.pp-tab .x:hover { color: var(--ardit-danger); }
/* výběr klasifikace: hledání a strom */
.dlg.cp-dlg { width: min(620px, 100%); }
.cp-q { height: 34px; padding: 0 var(--ardit-space-3); border: 1px solid var(--ardit-line); background: var(--ardit-bg1); color: var(--ardit-fg1); border-radius: var(--ardit-radius-md); font-size: 14px; }
.cp-tree { min-height: 160px; max-height: min(52vh, 460px); overflow: auto; border: 1px solid var(--ardit-line); border-radius: var(--ardit-radius-md); padding: var(--ardit-space-1); }
.cp-n { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: center; padding-left: calc(var(--d, 0) * 16px); }
.cp-t { width: 22px; height: 26px; border: 0; background: transparent; color: var(--ardit-fg3); font-size: 11px; padding: 0; }
.cp-t:not(:disabled):hover { color: var(--ardit-fg1); }
.cp-i { display: flex; align-items: baseline; gap: var(--ardit-space-2); width: 100%; min-height: 28px; padding: var(--ardit-space-1) var(--ardit-space-2); border: 0; border-radius: var(--ardit-radius-sm); background: transparent; color: var(--ardit-fg1); text-align: left; font-size: 13px; cursor: pointer; }
.cp-i:hover { background: var(--ardit-bg3); }
.cp-i.on { background: var(--ardit-tint); color: var(--ardit-ink); font-weight: 600; }
.cp-c { flex: none; font: 12px var(--ardit-font-mono); color: var(--ardit-fg2); }
.cp-i.on .cp-c { color: var(--ardit-ink); }
.cp-nm { min-width: 0; flex: 1; }
.cp-nm small { display: block; font-size: 11px; color: var(--ardit-fg3); font-weight: 400; }
.cp-k { flex: none; font-size: 11px; color: var(--ardit-fg3); }
.cp-code { display: flex; align-items: center; gap: var(--ardit-space-2); font-size: 13px; color: var(--ardit-fg2); }
.cp-code input { width: 130px; height: 32px; padding: 0 var(--ardit-space-2); border: 1px solid var(--ardit-line); background: var(--ardit-bg1); color: var(--ardit-fg1); border-radius: var(--ardit-radius-md); font: 13px var(--ardit-font-mono); }
.cp-sel { font-size: 12px; color: var(--ardit-fg2); max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- Knihovna materiálů (src/matlib.js) a U skladeb ---------- */
.ml-item > summary { gap: var(--ardit-space-2); }
.ml-sw { flex: none; border-radius: 3px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .22); display: block; }
.ml-n { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 600; color: var(--ardit-ink); }
.ml-l { font-size: 12px; color: var(--ardit-fg1); line-height: 1.25; }
.ml-row input[type=color] { width: 44px; flex: none; padding: 2px; cursor: pointer; }
.ml-row .pp-u { width: 52px; max-width: 52px; }
.ml-hex { font-family: var(--ardit-font-mono); }
.ml-chk input[type=checkbox] { width: auto; height: auto; justify-self: start; margin: 0; }
.ml .pp-acts.icons { display: flex; gap: var(--ardit-space-1); }
.cmp-u { font-size: 12px; line-height: 1.35; color: var(--ardit-fg2); margin: 0 0 var(--ardit-space-1); font-variant-numeric: tabular-nums; cursor: help; }
.cmp-u b { font-weight: 600; color: var(--ardit-fg1); }
.cmp-u.warn { color: var(--ardit-warning); }
