/* ═══ Конфигуратор модульных зданий — инженерная тема ═══ */
:root{
  --bg:#131a22; --panel:#1a232e; --panel2:#202b38; --line:#2b3947;
  --ink:#e2e9f0; --muted:#8fa1b2; --accent:#5a9ae0; --accent2:#e08838;
  --ok:#5fbf7a; --danger:#e06050;
  --on-accent:#0e1620;
  --cell-on:#3d587a; --cell-on-hi:#48699a; --cell-off-hi:#242f3c; --cell-sel:#4f688a;
  --cell-line:#4a6a94; --overlay:rgba(20,28,38,.75);
  --mono:"Cascadia Code",Consolas,ui-monospace,monospace;
}
:root[data-theme="light"]{
  --bg:#eef1f4; --panel:#ffffff; --panel2:#f6f8fa; --line:#ccd6e0;
  --ink:#1b2530; --muted:#5f7183; --accent:#2f6db3; --accent2:#b25c1c;
  --ok:#2e7d43; --danger:#c0392b;
  --on-accent:#ffffff;
  --cell-on:#8fb0d4; --cell-on-hi:#7ba2cd; --cell-off-hi:#e2e8ee; --cell-sel:#a8c4e2;
  --cell-line:#6f95bf; --overlay:rgba(255,255,255,.85);
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{
  font-family:"Segoe UI",system-ui,sans-serif; font-size:14px;
  background:var(--bg); color:var(--ink);
  display:flex; flex-direction:column; overflow:hidden;
}
.mono{font-family:var(--mono)}
.small{font-size:.78rem}

/* ── верхняя панель ── */
.topbar{
  display:flex; align-items:center; gap:1.2rem; padding:.55rem 1rem;
  background:var(--panel); border-bottom:1px solid var(--line); flex:0 0 auto;
}
.brand{display:flex; align-items:center; gap:.6rem; min-width:0}
.proj-name{
  background:transparent; border:1px solid transparent; border-radius:4px;
  color:var(--ink); font-size:1rem; font-weight:600; padding:.2rem .5rem; width:16rem;
}
.proj-name:hover,.proj-name:focus{border-color:var(--line); outline:none; background:var(--panel2)}
.dims{color:var(--accent2); font-size:.82rem; letter-spacing:.03em; white-space:nowrap}
.topbar-actions{margin-left:auto; display:flex; gap:.5rem}
.btn{
  font:inherit; font-size:.83rem; padding:.42rem .85rem; border-radius:5px;
  border:1px solid var(--line); background:var(--panel2); color:var(--ink); cursor:pointer;
}
.btn:hover{border-color:var(--accent)}
.btn.primary{background:var(--accent); border-color:var(--accent); color:var(--on-accent); font-weight:600}
.btn.primary:hover{filter:brightness(1.1)}
.btn.ghost{background:transparent}
.btn.danger{color:var(--danger); border-color:var(--danger)}
.btn:focus-visible{outline:2px solid var(--accent2); outline-offset:1px}

/* ── layout ── */
.layout{flex:1; display:flex; min-height:0}
.sidebar{
  width:320px; flex:0 0 auto; overflow-y:auto; padding:.8rem;
  display:flex; flex-direction:column; gap:.8rem;
  background:var(--panel); border-right:1px solid var(--line);
}
.pane{background:var(--panel2); border:1px solid var(--line); border-radius:8px; padding:.85rem .95rem}
.pane h2{
  font-size:.75rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); font-weight:600; margin-bottom:.7rem;
  display:flex; justify-content:space-between; align-items:baseline;
}
.note{font-size:.75rem; color:var(--muted); margin-top:.6rem; line-height:1.45}

.fields{display:flex; flex-direction:column; gap:.55rem}
.fields label{display:grid; grid-template-columns:1fr 5.2rem; align-items:center; gap:.5rem; font-size:.86rem}
.fields .hint{grid-column:1 / -1; color:var(--accent2); font-size:.72rem; text-align:right; min-height:.9em}
input[type=number]{
  font:inherit; font-family:var(--mono); background:var(--bg); color:var(--ink);
  border:1px solid var(--line); border-radius:5px; padding:.32rem .5rem; width:100%;
}
input[type=number]:focus{outline:none; border-color:var(--accent)}
select{
  font:inherit; background:var(--bg); color:var(--ink);
  border:1px solid var(--line); border-radius:5px; padding:.32rem .4rem; width:100%;
}
.chk{display:flex; gap:.5rem; align-items:center; font-size:.86rem; margin-bottom:.4rem; cursor:pointer}
.chk input{accent-color:var(--accent)}

/* ── план-редактор ── */
.floor-tabs{display:flex; gap:.3rem; margin-bottom:.6rem; flex-wrap:wrap}
.floor-tab{
  font-family:var(--mono); font-size:.72rem; padding:.25rem .6rem; border-radius:4px;
  border:1px solid var(--line); background:var(--bg); color:var(--muted); cursor:pointer;
}
.floor-tab.active{background:var(--accent); color:var(--on-accent); border-color:var(--accent); font-weight:600}
.plan-tools{display:flex; align-items:center; gap:.5rem; margin-bottom:.5rem}
.brush-sel{flex:1; font-size:.8rem; padding:.25rem .4rem}
.plan-wrap{overflow-x:auto; display:flex; gap:.4rem; align-items:flex-start}
.plan-grid{display:grid; gap:3px; width:max-content}
.row-depths{display:none}
.plan-rows{display:flex; flex-direction:column; gap:3px}
.row-depth-inp{
  width:3.4rem; font-family:var(--mono); font-size:.68rem; text-align:center;
  background:var(--bg); color:var(--muted); border:1px solid var(--line);
  border-radius:4px; padding:.1rem .2rem;
}
.row-depth-inp:focus{outline:none; border-color:var(--accent); color:var(--ink)}
.plan-cell{position:relative}
.plan-cell .ct{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:var(--mono); font-size:.62rem; color:#dfe8f0; pointer-events:none;
}
.plan-cell{
  width:26px; height:56px; border-radius:3px; cursor:pointer; border:1px solid var(--line);
  background:var(--bg); transition:background .1s;
}
.plan-cell.on{background:var(--cell-on); border-color:var(--cell-line)}
.plan-cell.on:hover{background:var(--cell-on-hi)}
.plan-cell.off:hover{background:var(--cell-off-hi)}
.plan-cell.sel{outline:2px solid var(--accent2); outline-offset:1px; background:var(--cell-sel)}
.plan-cell.hasop{box-shadow:inset 0 0 0 2px rgba(224,136,56,.55)}

/* ── инспектор ── */
.insp-empty{color:var(--muted); font-size:.82rem}
.op-list{display:flex; flex-direction:column; gap:.4rem; margin:.5rem 0}
.op-row{
  display:flex; align-items:center; gap:.5rem; font-size:.8rem;
  background:var(--bg); border:1px solid var(--line); border-radius:5px; padding:.35rem .55rem;
}
.op-row .x{
  margin-left:auto; cursor:pointer; color:var(--danger); background:none; border:none;
  font-size:1rem; line-height:1; padding:0 .2rem;
}
.op-form{display:flex; flex-direction:column; gap:.45rem; margin-top:.6rem; padding-top:.6rem; border-top:1px dashed var(--line)}
.op-form .row2{display:grid; grid-template-columns:1fr 1fr; gap:.45rem}
.err{color:var(--danger); font-size:.75rem; min-height:1em}
.wall-badge{font-family:var(--mono); font-size:.68rem; color:var(--accent); white-space:nowrap}
.btn-remove-mod{width:100%; margin-top:.7rem}

/* ── вкладки ── */
.main{flex:1; display:flex; flex-direction:column; min-width:0}
.tabs{display:flex; gap:.25rem; padding:.5rem .8rem 0; background:var(--panel); border-bottom:1px solid var(--line)}
.tab{
  font:inherit; font-size:.86rem; padding:.5rem 1.1rem; cursor:pointer;
  background:transparent; color:var(--muted); border:1px solid transparent;
  border-radius:7px 7px 0 0; border-bottom:none;
}
.tab.active{background:var(--bg); color:var(--ink); border-color:var(--line); font-weight:600}
.tab-body{flex:1; min-height:0; position:relative}
.tab-page{position:absolute; inset:0; display:none}
.tab-page.active{display:block}
#canvas3d{width:100%; height:100%}
#canvas3d canvas{display:block}

/* ── таблицы ── */
.table-scroll{height:100%; overflow:auto; padding:1rem 1.2rem}
table{border-collapse:collapse; width:100%; font-size:.84rem; background:var(--panel2); border-radius:8px; overflow:hidden}
th{
  font-family:var(--mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.08em;
  color:var(--muted); text-align:left; padding:.6rem .8rem; background:var(--panel);
  border-bottom:1px solid var(--line); position:sticky; top:-1rem;
}
td{padding:.5rem .8rem; border-bottom:1px solid var(--line); vertical-align:top}
td.num{text-align:right; font-family:var(--mono); font-variant-numeric:tabular-nums; white-space:nowrap}
tr.cat td{
  background:var(--panel); color:var(--accent2); font-weight:600; font-size:.78rem;
  letter-spacing:.06em; text-transform:uppercase;
}
tr.total td{font-weight:700; border-top:2px solid var(--line)}
tr.grand td{background:var(--panel); color:var(--accent2); font-size:.95rem}
.muted{color:var(--muted)}

/* ── вкладки сайдбара ── */
.side-tabs{display:flex; gap:.3rem; flex:0 0 auto}
.side-tab{
  flex:1; font:inherit; font-size:.84rem; font-weight:600; padding:.5rem .4rem;
  border:1px solid var(--line); background:var(--panel2); color:var(--muted);
  border-radius:6px; cursor:pointer;
}
.side-tab.active{background:var(--accent); border-color:var(--accent); color:var(--on-accent)}
.side-tab:focus-visible{outline:2px solid var(--accent2); outline-offset:1px}
.side-page{display:none; flex-direction:column; gap:.8rem}
.side-page.active{display:flex}

/* ── переключатель темы ── */
.theme-btn{
  display:flex; align-items:center; justify-content:center; width:2rem; height:2rem;
  padding:0; border-radius:5px; border:1px solid var(--line);
  background:var(--panel2); color:var(--ink); cursor:pointer;
}
.theme-btn:hover{border-color:var(--accent)}
.theme-btn svg{width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:1.8}
:root[data-theme="light"] .theme-btn .i-moon{display:none}
:root:not([data-theme="light"]) .theme-btn .i-sun{display:none}

/* ── модуль: группы состава ── */
.pane-module{border-color:var(--accent2)}
.pane-module h2{color:var(--accent2)}
.group-list{display:flex; flex-direction:column; gap:.15rem}
.group-row{
  display:flex; align-items:center; gap:.55rem; font-size:.84rem;
  padding:.3rem .45rem; border-radius:5px; cursor:pointer;
}
.group-row:hover{background:var(--bg)}
.group-row input{accent-color:var(--accent)}
.group-dot{width:10px; height:10px; border-radius:2px; flex:0 0 auto}
.group-row .cnt{margin-left:auto; font-family:var(--mono); font-size:.7rem; color:var(--muted)}
#canvas3dMod{width:100%; height:100%}
#canvas3dMod canvas{display:block}
.mod-overlay{
  position:absolute; left:.8rem; bottom:.8rem; font-size:.72rem; color:var(--muted);
  background:var(--overlay); padding:.4rem .7rem; border-radius:6px; pointer-events:none;
}

/* ── спецификация: переключатель ── */
.spec-toolbar{display:flex; gap:.5rem; align-items:center; margin-bottom:.8rem}
.spec-mode.active{background:var(--accent); color:var(--on-accent); border-color:var(--accent); font-weight:600}
tr.grp-head td{
  background:var(--panel); color:var(--accent2); font-weight:600; font-size:.78rem;
  letter-spacing:.06em; text-transform:uppercase;
}

/* ── библиотека типовых узлов (Блок 2 ТЗ) ── */
.pane-lib{border-color:var(--accent)}
.lib-axis{display:flex; align-items:center; gap:.7rem; margin-bottom:.55rem; flex-wrap:wrap}
.lib-axis .chk{margin:0; font-size:.8rem}
.lib-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(58px,1fr)); gap:.35rem}
.lib-item{
  display:flex; flex-direction:column; align-items:center; gap:.2rem;
  padding:.4rem .2rem .3rem; border:1px solid var(--line); border-radius:6px;
  background:var(--bg); color:var(--ink); cursor:grab; font:inherit;
}
.lib-item:hover{border-color:var(--accent); background:var(--panel2)}
.lib-item:active{cursor:grabbing}
.lib-item:focus-visible{outline:2px solid var(--accent2); outline-offset:1px}
.lib-nm{font-family:var(--mono); font-size:.62rem; color:var(--muted); letter-spacing:.02em}
.lib-ico{
  width:30px; height:22px; border:1.5px solid currentColor; border-radius:2px;
  color:var(--accent); position:relative; display:block;
}
/* пиктограммы узлов — из бордеров, без картинок */
.lib-ico[data-i="solid"]{background:repeating-linear-gradient(90deg,currentColor 0 2px,transparent 2px 5px)}
.lib-ico[data-i="door"]::after{
  content:""; position:absolute; left:9px; top:2px; width:11px; height:16px;
  border:1.5px solid currentColor; border-left:none; border-radius:0 2px 2px 0;
}
.lib-ico[data-i="window"]::after{
  content:""; position:absolute; left:7px; top:6px; width:15px; height:9px;
  border:1.5px solid currentColor; background:color-mix(in srgb,currentColor 22%,transparent);
}
.lib-ico[data-i="arch"]::after{
  content:""; position:absolute; left:8px; bottom:0; width:13px; height:15px;
  border:1.5px solid currentColor; border-bottom:none; border-radius:7px 7px 0 0;
}
.lib-ico[data-i="cornerL"]::after,.lib-ico[data-i="cornerT"]::after{
  content:""; position:absolute; left:5px; top:4px; width:13px; height:13px;
  border-left:2px solid currentColor; border-bottom:2px solid currentColor;
}
.lib-ico[data-i="cornerT"]::before{
  content:""; position:absolute; left:5px; top:4px; width:13px; height:0;
  border-top:2px solid currentColor;
}
.lib-ico[data-i="stair"]{
  background:repeating-linear-gradient(-45deg,currentColor 0 2px,transparent 2px 6px);
}
.lib-ico[data-i="tambour"]::after{
  content:""; position:absolute; inset:4px 6px; border:1.5px solid currentColor;
}
.sub-cap{
  font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted);
  font-weight:600; margin-bottom:.35rem;
}
.part-row .pmark{
  font-size:.66rem; font-weight:700; color:var(--accent);
  background:var(--bg); border:1px solid var(--line); border-radius:3px;
  padding:.05rem .3rem; white-space:nowrap;
}
.part-row .pname{
  flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  font-size:.78rem;
}
.p-num{
  width:3.2rem; flex:0 0 auto; font-family:var(--mono); font-size:.72rem;
  padding:.15rem .25rem; background:var(--bg); color:var(--ink);
  border:1px solid var(--line); border-radius:4px;
}
.plan-cell.haspart{box-shadow:inset 0 0 0 2px rgba(201,184,153,.75)}
.plan-cell.dragover{outline:2px dashed var(--accent2); outline-offset:1px}

/* ── интерактивный разрез (Блок 6.2 ТЗ) ── */
.clip-bar{
  position:absolute; left:.8rem; bottom:.8rem; right:.8rem; z-index:2;
  display:flex; align-items:center; gap:.7rem; flex-wrap:wrap;
  background:var(--overlay); border:1px solid var(--line); border-radius:7px;
  padding:.45rem .8rem; backdrop-filter:blur(4px);
}
.clip-bar .chk{margin:0; font-size:.82rem; white-space:nowrap}
.clip-sel{
  font:inherit; font-size:.78rem; padding:.2rem .35rem; border-radius:4px;
  background:var(--bg); color:var(--ink); border:1px solid var(--line);
}
.clip-sel:disabled{opacity:.45}
#clipSlider{flex:1; min-width:8rem; accent-color:var(--accent)}
#clipSlider:disabled{opacity:.4}
#clipVal{color:var(--accent2); white-space:nowrap; min-width:5.5rem; text-align:right}

/* ── проверки компоновки (Блок 3 ТЗ) ── */
.chk-badge{padding:.1rem .45rem; border-radius:99px; font-size:.66rem}
.chk-badge.ok{background:color-mix(in srgb,var(--ok) 18%,transparent); color:var(--ok)}
.chk-badge.warn{background:color-mix(in srgb,var(--accent2) 20%,transparent); color:var(--accent2)}
.chk-badge.err{background:color-mix(in srgb,var(--danger) 20%,transparent); color:var(--danger)}
.check-list{display:flex; flex-direction:column; gap:.25rem; max-height:11rem; overflow-y:auto}
.check-row{
  display:flex; gap:.45rem; align-items:flex-start; font-size:.76rem; line-height:1.35;
  padding:.3rem .4rem; border-radius:5px; background:var(--bg);
}
.check-row:hover{background:var(--panel2)}
.check-row .ci{width:6px; height:6px; border-radius:99px; margin-top:.35rem; flex:0 0 auto}
.check-row.error .ci{background:var(--danger)}
.check-row.warn .ci{background:var(--accent2)}
.check-row.info .ci{background:var(--muted)}
.check-row .ct{min-width:0}
.check-ok{font-size:.78rem; color:var(--ok)}
.check-more{font-size:.72rem; color:var(--muted); padding-left:.4rem}
.plan-cell.cell-err{outline:2px solid var(--danger); outline-offset:1px}
.plan-cell.cell-warn{outline:2px dashed var(--accent2); outline-offset:1px}

/* ── чертежи ── */
.dw-toolbar{display:flex; gap:.8rem; align-items:center; margin-bottom:.5rem}
.dw-prog{margin:.6rem 0 .2rem; max-width:34rem}
.dw-prog-bar{
  height:8px; border-radius:99px; background:var(--panel2);
  border:1px solid var(--line); overflow:hidden;
}
.dw-prog-fill{
  height:100%; width:0%; border-radius:99px; background:var(--accent);
  transition:width .35s ease;
}
.dw-prog-fill.done{background:var(--ok)}
.dw-prog-fill.err{background:var(--danger)}
.dw-prog-info{
  display:flex; justify-content:space-between; gap:1rem;
  margin-top:.3rem; font-size:.75rem; color:var(--muted);
}
.dw-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:.9rem; margin-top:1rem}
.dw-card{background:var(--panel2); border:1px solid var(--line); border-radius:8px; overflow:hidden}
.dw-card img{width:100%; display:block; background:#fff; cursor:zoom-in}
.dw-card .cap{display:flex; align-items:center; gap:.6rem; padding:.5rem .7rem; font-size:.82rem}
.dw-card .cap a{margin-left:auto; color:var(--accent); text-decoration:none; font-family:var(--mono); font-size:.75rem}
.dw-card .cap a:hover{text-decoration:underline}
.dw-album{grid-column:1/-1; display:flex; gap:.6rem; flex-wrap:wrap; justify-content:flex-start}

@media (max-width:900px){
  .layout{flex-direction:column; overflow-y:auto}
  .sidebar{width:100%; border-right:none; border-bottom:1px solid var(--line)}
  .main{min-height:70vh}
}

/* ── смета и график: форма параметров (Блок 7 ТЗ) ── */
.est-form{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:.9rem; margin-bottom:1rem; padding:.9rem;
  border:1px solid var(--line); border-radius:8px; background:var(--panel);
}
.est-group{display:flex; flex-direction:column; gap:.4rem}
.est-group>b{font-size:.8rem; color:var(--accent2); letter-spacing:.04em}
.est-group label{
  display:flex; align-items:center; justify-content:space-between; gap:.5rem;
  font-size:.78rem; color:var(--muted);
}
.est-group input,.est-group select{
  flex:0 1 11rem; min-width:5rem; padding:.25rem .4rem; font:inherit;
  font-size:.78rem; background:var(--bg); color:var(--ink);
  border:1px solid var(--line); border-radius:5px;
}
.est-group details{font-size:.78rem}
.est-group details summary{cursor:pointer; padding:.2rem 0}
.est-group details label{margin-top:.25rem}
.est-h{margin:1.4rem 0 .6rem; font-size:.95rem; color:var(--accent2)}
tr.sub td{color:var(--muted); font-size:.78rem}
tr.sub td:first-child{padding-left:1.2rem}

/* ── индикатор производительности (Блок 8 ТЗ) ── */
.perf{
  font-size:.72rem; color:var(--muted); padding:.2rem .5rem; cursor:pointer;
  border:1px solid var(--line); border-radius:5px; white-space:nowrap;
}
.perf:hover{border-color:var(--accent); color:var(--ink)}
.perf.bad{color:#e06b4a; border-color:#e06b4a}
tr.perf-bad td{color:#e06b4a}

/* ── режим «Генплан» (Блок 4 ТЗ) ── */
.site-wrap{display:grid; grid-template-columns:1fr 300px; gap:.8rem; height:calc(100% - 200px); min-height:380px}
.site-canvas{position:relative; border:1px solid var(--line); border-radius:8px; background:var(--panel); overflow:hidden}
#siteSvg{width:100%; height:100%; display:block; touch-action:none; cursor:default}
.site-hint{
  position:absolute; left:.6rem; bottom:.5rem; font-size:.66rem; color:var(--muted);
  background:var(--overlay); padding:.3rem .6rem; border-radius:5px; pointer-events:none;
}
.site-grid line{stroke:var(--line)}
.site-bld{fill:var(--panel2); stroke:var(--accent2); cursor:grab}
.site-bld.sel{stroke:var(--accent); fill:color-mix(in srgb, var(--accent) 18%, var(--panel2))}
.site-bld.bad{stroke:#e06b4a; fill:color-mix(in srgb, #e06b4a 16%, var(--panel2))}
.site-lab{fill:var(--ink); pointer-events:none; font-family:var(--mono)}
.site-lab2{fill:var(--muted); pointer-events:none; font-family:var(--mono)}
.site-gap-err{stroke:#e06b4a; fill:#e06b4a}
.site-gap-warn{stroke:#d8a33a; fill:#d8a33a}
.site-side{display:flex; flex-direction:column; gap:.7rem; overflow:auto}
.site-side .row{display:flex; gap:.35rem; flex-wrap:wrap; margin-bottom:.5rem}
.site-side .grid2{display:grid; grid-template-columns:1fr 1fr; gap:.35rem}
.site-issues{margin-top:.5rem; display:flex; flex-direction:column; gap:.3rem}
.site-issue{
  font-size:.74rem; padding:.35rem .5rem; border-radius:5px; cursor:pointer;
  border-left:3px solid transparent; background:var(--bg);
}
.site-issue.err{border-left-color:#e06b4a; color:#e06b4a}
.site-issue.warn{border-left-color:#d8a33a; color:#d8a33a}
.site-issue:hover{background:var(--panel2)}
.site-tbl{margin-top:.8rem; max-height:250px}
#siteTable tr.sel td{background:color-mix(in srgb, var(--accent) 14%, transparent)}
.pane-head{
  font-size:.75rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); font-weight:600; margin-bottom:.7rem;
  display:flex; justify-content:space-between; align-items:baseline;
}
.fld{display:grid; grid-template-columns:1fr 6.4rem; align-items:center; gap:.4rem;
     font-size:.78rem; margin-bottom:.35rem}
.site-side .grid2 .fld{grid-template-columns:1fr 3.4rem}
.fld input[type=text]{
  font:inherit; font-size:.78rem; background:var(--bg); color:var(--ink);
  border:1px solid var(--line); border-radius:5px; padding:.3rem .45rem; width:100%;
}
@media (max-width:900px){
  .site-wrap{grid-template-columns:1fr; height:auto}
  .site-canvas{min-height:320px}
  .site-side{max-height:none}
}

/* ── протокол геометрического контроля (Блок 1 ТЗ) ── */
.tol-report{
  margin:.6rem 0 .9rem; padding:.6rem .8rem; border-radius:6px;
  font-size:.78rem; line-height:1.5; border-left:3px solid var(--accent2);
  background:var(--panel);
}
.tol-report.ok{border-left-color:#4a9e6b}
.tol-report.warn{border-left-color:#d8a33a}
.tol-report.err{border-left-color:#e06b4a; color:#e06b4a}
.tol-report ul{margin:.4rem 0 0 1rem; padding:0}
.tol-report li{margin:.15rem 0}
.fields .hint.warn{color:#e06b4a; text-align:left; line-height:1.4}
