:root{
  --blue:#0c5bb8;
  --blue-dark:#003d8f;
  --blue-soft:#eaf3ff;
  --orange:#f58220;
  --orange-dark:#d96b0e;
  --text:#1f2937;
  --muted:#6b7280;
  --line:#d9e2ec;
  --bg:#f4f7fb;
  --card:#ffffff;
  --shadow:0 16px 38px rgba(25,47,86,.09);
  font-family:Inter,Segoe UI,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit}
.site-header{background:#fff;border-bottom:1px solid #d7e3f0;box-shadow:0 4px 18px rgba(0,0,0,.04)}
.header-top{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 clamp(18px,5vw,72px)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--blue-dark);font-weight:900;letter-spacing:.02em}
.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--blue-dark));color:#fff;font-size:20px;box-shadow:0 8px 18px rgba(12,91,184,.22)}
.brand-text{font-size:20px;white-space:nowrap}
.header-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.header-nav a{padding:10px 12px;border-radius:8px;text-decoration:none;color:#24364b;font-weight:700;font-size:14px}
.header-nav a:hover{background:var(--blue-soft);color:var(--blue-dark)}
.breadcrumb{padding:12px clamp(18px,5vw,72px);background:#f8fbff;color:#718096;font-size:14px;border-top:1px solid #eef3f8}
.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:42px clamp(18px,5vw,72px);background:linear-gradient(115deg,#003d8f 0%,#0b61bd 62%,#1976d2 100%);color:#fff;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;right:-120px;top:-160px;width:460px;height:460px;border-radius:50%;background:rgba(255,255,255,.08)}
.hero-content,.hero-actions{position:relative;z-index:1}
.tool-label{display:inline-flex;align-items:center;gap:8px;color:#ffcf99;font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:12px;margin-bottom:10px}
.hero h1{margin:0 0 12px;font-size:clamp(34px,5vw,58px);line-height:1.02;font-weight:900}
.hero p{margin:0;max-width:860px;font-size:18px;line-height:1.55;color:#e6f1ff}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;min-width:320px}
.hd-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.55fr);grid-template-areas:"search selected" "graph current" "results current";gap:18px;padding:24px clamp(14px,4vw,44px) 48px;align-items:start}
.section-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:22px}
.search-panel{grid-area:search}.selected-panel{grid-area:selected}.graph-panel{grid-area:graph}.current-panel{grid-area:current;position:sticky;top:18px}.result-panel{grid-area:results}
.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}
.section-head h2{margin:0 0 6px;font-size:24px;line-height:1.2;color:#142033}
.section-head p,.hint{margin:0;color:var(--muted);line-height:1.45}
.compact-head{align-items:center}.graph-head{align-items:center}
.step{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:6px;background:var(--orange);color:#fff;font-weight:900;margin-bottom:8px}
.selector-box{border:1px solid var(--line);border-left:4px solid var(--blue);background:#fbfdff;padding:16px;border-radius:8px;margin-bottom:14px}
.selector-title{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px;color:#1b2a3b}.selector-title span{color:var(--muted);font-size:13px}
.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;margin-bottom:12px}
.article-search{margin:0 0 14px;padding:12px;border:1px solid #d7e3f0;border-radius:6px;background:#f5f9ff}
.article-search>label{display:block;margin-bottom:8px;color:#344256;font-size:13px;font-weight:900}
.article-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.article-search-info{min-height:0;margin-top:8px;color:#526274;font-size:13px;font-weight:700;line-height:1.45}
.article-search-info:empty{display:none}
.article-search-info.error{color:#b42318}
input,select,textarea{width:100%;border:1px solid #cfd9e6;border-radius:4px;background:#fff;color:#172033;padding:12px 12px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(12,91,184,.12)}
.filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.filter-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}
.filter-grid.compact label{min-width:0}
.filter-grid.compact select{font-size:14px;padding-right:34px}
.filter-grid label,.modal label{display:grid;gap:7px;font-size:13px;font-weight:800;color:#344256}
.quick-actions,.toolbar,.modal-actions,.export-buttons{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.quick-actions{margin:14px 0 8px}.modal-actions{justify-content:flex-end;margin:16px 0}.export-buttons{justify-content:flex-end}.export-label{font-size:13px;font-weight:900;color:#526274;margin-right:2px}
.btn{border:1px solid #c7d3e1;background:#fff;color:#18304f;border-radius:4px;padding:11px 15px;cursor:pointer;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;line-height:1.1;transition:.15s;white-space:nowrap}
.btn:hover{box-shadow:0 8px 18px rgba(12,91,184,.15);transform:translateY(-1px)}
.btn.primary{background:var(--orange);border-color:var(--orange);color:#fff}.btn.primary:hover{background:var(--orange-dark)}
.btn.light{background:#fff;border-color:#fff;color:var(--blue-dark)}
.btn.outline{background:#fff;border-color:var(--blue);color:var(--blue-dark)}
.btn.muted{background:#edf3fa;border-color:#d7e2ef;color:#29435f}.btn.danger{background:#dc2626;border-color:#dc2626;color:#fff}.btn.wide{width:100%;margin-top:10px}.btn.small{padding:8px 10px;font-size:13px}
.info-line{font-size:14px;color:#526274;margin:10px 0 12px;font-weight:700}
.device-list,.catalog-results{display:grid;grid-template-columns:1fr;gap:10px}
.device-card,.catalog-card{border:1px solid #d9e3ef;background:#fff;border-radius:6px;padding:15px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.device-card h3,.catalog-card h3{margin:0 0 4px;font-size:17px;color:#162233}.device-card small,.catalog-card small{color:var(--muted)}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}.tag{display:inline-flex;border:1px solid #cfe0f3;background:var(--blue-soft);color:#064a96;border-radius:4px;font-size:12px;font-weight:800;padding:5px 7px}
.empty-note{border:1px dashed #b7c7d9;background:#f9fbfd;border-radius:6px;color:#607083;text-align:center;padding:18px}
.counter{display:inline-flex;align-items:center;justify-content:center;border-radius:4px;background:var(--blue-soft);color:var(--blue-dark);font-weight:900;padding:8px 12px}
.slots{display:grid;gap:10px;margin-top:14px}.slot{border:1px solid #d7e2ef;background:#fbfdff;border-radius:6px;padding:13px;position:relative}.slot.empty{display:grid;place-items:center;min-height:86px;text-align:center;color:var(--muted);border-style:dashed}.slot h3{font-size:15px;margin:6px 32px 10px 0}.slot small{color:var(--muted)}.slot .remove{position:absolute;top:9px;right:9px;width:26px;height:26px;border-radius:4px;border:0;background:#ffe8e8;color:#a21b1b;font-size:18px;font-weight:900;cursor:pointer}.params{display:grid;grid-template-columns:1fr 1fr;gap:7px}.params span{background:#fff;border:1px solid #e1e8f1;border-radius:4px;padding:7px}.params b{display:block;color:#66778b;font-size:11px}.params em{font-style:normal;font-weight:900}.slot-line{height:4px;border-radius:4px;margin-top:10px}
.graph-wrap{width:100%;overflow:auto;border:1px solid #d7e2ef;border-radius:6px;background:#fff}.graph-wrap svg{display:block;min-width:720px;width:100%;height:auto;background:#fff}
.current-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin:8px 0}.current-row input{border-radius:4px}.conclusion{margin-top:16px;border:1px solid #d7e2ef;border-radius:6px;background:#f8fbff;padding:14px}.conclusion.ok{border-color:#abdfbd;background:#f1fff5}.conclusion.warning{border-color:#ffd39c;background:#fff8ef}.conclusion h3{margin:0 0 8px;font-size:17px}.conclusion p{margin:0;color:#425064}
.table-wrap{overflow:auto;border:1px solid #d7e2ef;border-radius:6px}.result-panel table{width:100%;border-collapse:collapse;background:#fff}.result-panel th,.result-panel td{border-bottom:1px solid #e2e9f1;border-right:1px solid #e2e9f1;padding:12px;text-align:left;font-size:14px}.result-panel th{background:#eaf3ff;color:#0b4485;font-weight:900}.result-panel tr:last-child td{border-bottom:0}
.modal{border:0;border-radius:8px;padding:24px;width:min(1040px,calc(100vw - 28px));box-shadow:0 32px 100px rgba(9,24,45,.34)}.small-modal{width:min(620px,calc(100vw - 28px))}.modal::backdrop{background:rgba(7,18,34,.55)}.modal-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:1px solid #e2e9f1;padding-bottom:14px;margin-bottom:16px}.modal-head h2{margin:0;font-size:25px}.modal .tool-label{color:var(--orange-dark)}.icon-btn{width:38px;height:38px;border:0;border-radius:4px;background:#edf3fa;color:#18304f;font-size:25px;font-weight:800;cursor:pointer}.modal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-hint{background:#fff7ed;border:1px solid #ffd39c;border-radius:6px;padding:12px;margin:14px 0;color:#7c2d12;font-weight:700}.or-line{margin:15px 0;text-align:center;color:var(--muted);font-weight:700}
@media(max-width:1100px){.hd-layout{grid-template-columns:1fr;grid-template-areas:"search" "selected" "graph" "current" "results"}.current-panel{position:static}.filter-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{align-items:flex-start;flex-direction:column}.hero-actions{min-width:0;justify-content:flex-start}.device-card,.catalog-card{grid-template-columns:1fr}}
@media(max-width:720px){.header-top{height:auto;padding:16px;align-items:flex-start;flex-direction:column}.header-nav{justify-content:flex-start}.breadcrumb{padding:10px 16px}.hero{padding:28px 16px}.hero p{font-size:16px}.hd-layout{padding:16px}.section-card{padding:16px}.section-head,.graph-head,.search-row,.article-search-row{display:grid;grid-template-columns:1fr}.filter-grid,.filter-grid.compact,.modal-grid{grid-template-columns:1fr}.quick-actions .btn,.hero-actions .btn,.modal-actions .btn,.article-search-row .btn{width:100%}.graph-wrap svg{min-width:620px}.brand-text{white-space:normal}.export-buttons{justify-content:flex-start}.export-label{width:100%}}

/* right parameter panel and detailed selectivity table */
.hd-params-panel{align-self:start}
.hd-param-box{background:#e6edf3;border:1px solid #bdc9d6;padding:16px;margin:12px 0;display:grid;gap:14px}
.hd-param-box label{display:grid;grid-template-columns:minmax(180px,1fr) minmax(120px,160px);align-items:center;gap:16px;font-weight:800;color:#111827;line-height:1.22}
.hd-param-box input{width:100%;border:1px solid #b7c5d3;border-radius:4px;background:#fff;padding:8px 10px;font-size:16px;text-align:right}
.selectivity-degree{margin-top:16px}
.voltage-note{font-weight:800;color:#111827;margin:10px 0 16px!important}
.result-panel .table-wrap{border:1px solid #bdc9d6;background:#fff;max-width:100%;overflow:auto}
.hd-result-table{min-width:1900px;border-collapse:collapse;width:100%;font-size:14px;background:#fff}
.hd-result-table th,.hd-result-table td{border:1px solid #bdc9d6;padding:10px 9px;text-align:center;vertical-align:middle;white-space:normal;line-height:1.25;color:#111827}
.hd-result-table th{background:#e6edf3;font-weight:800;font-size:14px}
.hd-result-table td{min-height:56px}
.hd-result-table .wide-cell{text-align:left;min-width:155px}
.hd-result-table th.wide-cell{text-align:center}
.hd-result-table th:last-child,.hd-result-table td:last-child{min-width:360px;text-align:center}
.table-color{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:middle}
@media(max-width:720px){.hd-param-box label{grid-template-columns:1fr}.hd-param-box input{text-align:left}.hd-result-table{font-size:13px}}

/* Layout fixes: stable device-card buttons and right parameter panel */
.device-card,.catalog-card{
  display:flex!important;
  flex-direction:column;
  align-items:flex-start;
  min-height:168px;
}
.device-card > div:last-child,
.catalog-card > div:last-child{
  margin-top:auto!important;
  padding-top:14px;
  align-self:flex-start;
}
.device-card .btn,
.catalog-card .btn{
  min-width:138px;
}
.hd-param-box{
  overflow:hidden;
}
.hd-param-box label{
  grid-template-columns:minmax(0,1fr) minmax(96px,128px)!important;
  gap:12px!important;
  width:100%;
  min-width:0;
}
.hd-param-box input{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.hd-param-box .btn.wide{
  width:100%;
  max-width:100%;
}
@media(max-width:1380px){
  .hd-layout{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr)}
  .hd-param-box{padding:14px}
  .hd-param-box label{grid-template-columns:minmax(0,1fr) minmax(90px,118px)!important;font-size:15px}
}
@media(max-width:1100px){
  .device-card,.catalog-card{min-height:auto}
  .hd-param-box label{grid-template-columns:minmax(0,1fr) minmax(110px,150px)!important}
}
@media(max-width:720px){
  .hd-param-box label{grid-template-columns:1fr!important}
  .hd-param-box input{text-align:left}
}

/* Editable protection-device parameters */
.editable-slot{
  padding-top:14px;
}
.editable-slot .slot-line{
  margin:10px 34px 14px 0;
}
.device-edit-grid,
.device-settings-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:9px;
}
.device-edit-grid label,
.device-settings-grid label{
  display:grid;
  grid-template-columns:minmax(120px,1fr) minmax(130px,1.35fr);
  gap:10px;
  align-items:center;
  font-size:13px;
  font-weight:800;
  color:#111827;
  line-height:1.2;
}
.device-edit-grid select,
.device-settings-grid select,
.device-settings-grid input{
  padding:8px 9px;
  min-width:0;
  font-size:14px;
}
.device-settings-title{
  margin:14px 0 8px;
  font-weight:900;
  color:#172033;
  border-top:1px solid #e1e8f1;
  padding-top:12px;
}
@media(max-width:720px){
  .device-edit-grid label,
  .device-settings-grid label{
    grid-template-columns:1fr;
  }
}

/* Search-result parameter editing and live graph tooltip */
.editable-search-card{
  gap:8px!important;
  min-width:0;
}
.search-settings-title{
  width:100%;
  margin-top:12px;
  padding-top:12px;
  border-top:1px solid #e1e8f1;
  font-weight:900;
  color:#172033;
}
.search-settings-grid{
  width:100%;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:16px;
  align-items:stretch;
}
.search-settings-grid label{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:10px;
  min-height:174px;
  min-width:0;
  font-size:15px;
  line-height:1.25;
  font-weight:900;
  color:#344256;
}
.search-settings-grid input,
.search-settings-grid select{
  width:100%;
  height:58px;
  min-height:58px;
  padding:8px 14px;
  min-width:0;
  font-size:18px;
  font-weight:800;
}
@media(max-width:1400px){
  .search-settings-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:900px){
  .search-settings-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

.graph-wrap{
  position:relative;
  max-width:100%;
}
.graph-tooltip{
  position:absolute;
  z-index:5;
  display:none;
  width:min(320px, calc(100% - 20px));
  max-width:320px;
  background:#ffffff;
  border:2px solid #0b7cff;
  border-radius:8px;
  box-shadow:0 8px 18px rgba(15,23,42,.18);
  padding:12px 14px;
  color:#172033;
  pointer-events:none;
  line-height:1.3;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.graph-tooltip b,
.graph-tooltip span{
  display:block;
}
.graph-tooltip b{
  margin-bottom:4px;
  font-size:14px;
}
.graph-tooltip span{
  font-size:13px;
}

/* Mobile adaptation fixes */
html,body{
  max-width:100%;
  overflow-x:hidden;
}
.site-header,.hero,.hd-layout,.section-card{
  max-width:100%;
}
.hd-layout,.section-card,.selector-box,.device-card,.catalog-card,.selected-panel,.graph-panel,.current-panel,.result-panel{
  min-width:0;
}
@media(max-width:720px){
  .brand,.header-nav,.hero-actions,.quick-actions,.export-buttons{
    width:100%;
  }
  .header-nav a{
    flex:1 1 auto;
    text-align:center;
  }
  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .hd-layout{
    padding-left:10px;
    padding-right:10px;
    gap:12px;
  }
  .section-card{
    padding:14px;
    border-radius:6px;
  }
  .section-head h2{
    font-size:20px;
  }
  .selector-title{
    display:grid;
  }
  .btn{
    white-space:normal;
    text-align:center;
  }
  .device-card .btn,.catalog-card .btn{
    width:100%;
  }
  .search-settings-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .graph-wrap{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .graph-wrap svg{
    min-width:560px;
  }
  .table-wrap{
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .modal{
    padding:16px;
    max-height:calc(100vh - 24px);
    overflow:auto;
  }
}
@media(max-width:420px){
  .search-settings-grid{
    grid-template-columns:1fr;
  }
  .graph-wrap svg{
    min-width:500px;
  }
  .hero h1{
    font-size:30px;
  }
}

/* Selected devices are read-only after choosing; editing is available only in search result cards */
.selected-readonly-slot .selected-readonly-params{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.selected-readonly-slot .selected-readonly-params span{
  min-width:0;
}
.selected-readonly-slot .selected-readonly-params em{
  overflow-wrap:anywhere;
}
@media(max-width:720px){
  .selected-readonly-slot .selected-readonly-params{
    grid-template-columns:1fr;
  }
}

/* Graph zoom selection */
.graph-zoom-hint{
  margin:8px 0 12px!important;
  color:#64748b;
  font-size:13px;
  font-weight:700;
}
.graph-wrap svg{
  cursor:crosshair;
  touch-action:none;
  user-select:none;
}
.graph-tooltip{
  pointer-events:none;
}
@media(max-width:720px){
  .graph-zoom-hint{font-size:12px;line-height:1.35}
  .multi-export .btn{flex:1 1 auto}
}

/* Compact relay settings layout */
.search-settings-title{
  margin-top:8px!important;
  padding-top:8px!important;
  font-size:18px!important;
  line-height:1.2!important;
}
.search-settings-grid{
  gap:10px 12px!important;
  align-items:start!important;
}
.search-settings-grid label{
  display:grid!important;
  grid-template-rows:auto 42px!important;
  justify-content:initial!important;
  gap:6px!important;
  min-height:0!important;
  height:auto!important;
  font-size:13px!important;
  line-height:1.18!important;
  font-weight:800!important;
}
.search-settings-grid input,
.search-settings-grid select{
  height:42px!important;
  min-height:42px!important;
  padding:6px 10px!important;
  font-size:15px!important;
  font-weight:700!important;
  border-radius:6px!important;
}
.editable-search-card{
  gap:6px!important;
}
.editable-search-card .tags{
  margin-top:4px!important;
}
@media(max-width:1400px){
  .search-settings-grid{gap:10px!important;}
}
@media(max-width:720px){
  .search-settings-title{font-size:17px!important;}
  .search-settings-grid label{font-size:12.5px!important;}
  .search-settings-grid input,.search-settings-grid select{height:40px!important;min-height:40px!important;font-size:14px!important;}
}

/* Final fixed alignment for relay settings: every card has same label area and control baseline */
.search-settings-grid{
  display:grid!important;
  grid-template-columns:repeat(6,minmax(0,1fr))!important;
  gap:12px 16px!important;
  align-items:start!important;
  width:100%!important;
}
.search-settings-grid label{
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  height:104px!important;
  min-height:104px!important;
  gap:0!important;
  margin:0!important;
  padding:0!important;
  font-size:14px!important;
  line-height:1.22!important;
  font-weight:800!important;
  color:#26384f!important;
  overflow:visible!important;
}
.search-settings-grid input,
.search-settings-grid select{
  margin-top:auto!important;
  width:100%!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  padding:6px 10px!important;
  font-size:15px!important;
  line-height:1!important;
  font-weight:700!important;
  border-radius:6px!important;
  box-sizing:border-box!important;
}
.search-settings-title{
  margin:8px 0 10px!important;
  padding-top:8px!important;
}
.editable-search-card{
  gap:6px!important;
}
@media(max-width:1400px){
  .search-settings-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
}
@media(max-width:900px){
  .search-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:720px){
  .search-settings-grid{grid-template-columns:1fr!important;gap:10px!important;}
  .search-settings-grid label{height:auto!important;min-height:0!important;gap:5px!important;}
  .search-settings-grid input,.search-settings-grid select{margin-top:0!important;height:40px!important;min-height:40px!important;max-height:40px!important;font-size:14px!important;}
}


/* Compact grouped settings for relay settings */
.search-settings-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1.2fr) minmax(0,1.15fr) minmax(220px,0.75fr)!important;
  gap:14px!important;
  align-items:start!important;
}
.search-setting-group{
  display:flex;
  flex-direction:column;
  gap:8px;
  min-width:0;
}
.search-setting-group-title{
  min-height:48px;
  font-size:13px;
  line-height:1.3;
  font-weight:800;
  color:#26384f;
}
.search-setting-group-controls{
  display:grid;
  gap:10px;
  align-items:end;
}
.search-setting-group-controls.cols-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.search-setting-group-controls.cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.search-setting-group-controls.cols-1{grid-template-columns:1fr;}
.setting-inline{
  display:flex!important;
  flex-direction:column;
  gap:4px!important;
  min-width:0;
  font-size:12px!important;
  line-height:1.2!important;
  color:#475569;
}
.setting-inline span{
  font-weight:700;
  min-height:16px;
}
.setting-inline select,
.setting-inline input{
  width:100%;
  height:36px!important;
  min-height:36px!important;
  max-height:36px!important;
  margin-top:0!important;
  padding:6px 10px!important;
}
.mcb-characteristic strong{
  display:flex;
  align-items:center;
  height:38px;
  min-height:38px;
  font-size:15px;
  color:#26384f;
}
@media(max-width:1200px){
  .search-settings-grid{grid-template-columns:1fr!important;}
  .search-setting-group-title{min-height:0;}
}

/* Read-only selected device info */
.selected-readonly-slot .selected-readonly-params{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px 12px!important;
}
.selected-readonly-slot .selected-readonly-params span{
  padding:6px 8px;
}

@media(max-width:900px){
  .search-settings-grid{grid-template-columns:1fr!important;}
  .selected-readonly-slot .selected-readonly-params{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:640px){
  .selected-readonly-slot .selected-readonly-params{grid-template-columns:1fr!important;}
}

/* HGP selected settings: editable active values and grey fixed values */
.selected-readonly-slot .selected-setting{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
  border-radius:8px;
  padding:7px 8px;
}
.selected-readonly-slot .selected-setting b{
  font-size:12px;
  line-height:1.2;
}
.selected-readonly-slot .selected-setting select{
  width:100%;
  min-width:0;
  height:34px;
  border:1px solid #cbd5e1;
  border-radius:6px;
  padding:4px 8px;
  background:#fff;
  font-weight:800;
  color:#0f1f35;
}
.selected-readonly-slot .selected-setting-active{
  background:#f8fbff;
  border:1px solid #dbe8f7;
}
.selected-readonly-slot .selected-setting-fixed{
  background:#eef2f7;
  border:1px solid #d6dde8;
  color:#7a8797;
}
.selected-readonly-slot .selected-setting-fixed em{
  color:#7a8797!important;
  font-style:normal;
  font-weight:800;
}

/* =========================================================
   MOBILE ADAPTATION PATCH — final project version
   Цель: не ломать desktop, но привести экран <= 768px к одной колонке.
   ========================================================= */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden!important;
}
body{
  min-width:0!important;
}
img,svg,canvas,table{
  max-width:100%;
}
.site-header,
.header-top,
.hero,
.hd-layout,
.section-card,
.selector-box,
.device-card,
.catalog-card,
.selected-panel,
.graph-panel,
.current-panel,
.result-panel,
.modal,
.table-wrap,
.graph-wrap{
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}

@media(max-width:1024px){
  .hd-layout{
    grid-template-columns:1fr!important;
    grid-template-areas:
      "search"
      "selected"
      "graph"
      "current"
      "results"!important;
    padding:18px 14px 34px!important;
    gap:14px!important;
  }
  .current-panel{
    position:static!important;
    top:auto!important;
  }
  .hero{
    align-items:flex-start!important;
    flex-direction:column!important;
  }
  .hero-actions{
    width:100%!important;
    min-width:0!important;
    justify-content:flex-start!important;
  }
  .filter-grid.compact,
  .filter-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:768px){
  .site-header{
    overflow:hidden!important;
  }
  .header-top{
    height:auto!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    padding:14px 12px!important;
  }
  .brand{
    width:100%!important;
    min-width:0!important;
  }
  .brand-mark{
    width:42px!important;
    height:42px!important;
    flex:0 0 auto!important;
  }
  .brand-text{
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    font-size:18px!important;
  }
  .header-nav{
    width:100%!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:6px!important;
  }
  .header-nav a{
    display:block!important;
    width:100%!important;
    text-align:left!important;
    padding:10px 12px!important;
  }
  .breadcrumb{
    display:none!important;
  }
  .hero{
    padding:22px 12px!important;
    gap:16px!important;
    overflow:hidden!important;
  }
  .hero:after{
    display:none!important;
  }
  .hero h1{
    font-size:30px!important;
    line-height:1.1!important;
  }
  .hero p{
    font-size:15px!important;
    line-height:1.45!important;
  }
  .hero-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .hero-actions .btn,
  .quick-actions .btn,
  .modal-actions .btn{
    width:100%!important;
  }

  .hd-layout{
    padding:12px 10px 28px!important;
    gap:12px!important;
  }
  .section-card{
    padding:13px!important;
    border-radius:7px!important;
  }
  .section-head,
  .graph-head,
  .compact-head{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    align-items:start!important;
    margin-bottom:12px!important;
  }
  .section-head h2{
    font-size:20px!important;
    line-height:1.2!important;
  }
  .section-head p,
  .hint,
  .graph-zoom-hint{
    font-size:13px!important;
    line-height:1.35!important;
  }
  .selector-box{
    padding:12px!important;
    margin-bottom:10px!important;
  }
  .selector-title{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:4px!important;
  }
  .search-row{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .filter-grid,
  .filter-grid.compact,
  .modal-grid{
    grid-template-columns:1fr!important;
    gap:9px!important;
  }
  input,
  select,
  textarea{
    width:100%!important;
    min-width:0!important;
    min-height:40px!important;
    font-size:16px!important;
    padding:9px 10px!important;
  }
  .btn{
    width:auto!important;
    max-width:100%!important;
    white-space:normal!important;
    text-align:center!important;
    min-height:40px!important;
    padding:10px 12px!important;
  }
  .search-row .btn,
  .device-card .btn,
  .catalog-card .btn{
    width:100%!important;
  }

  .device-list,
  .catalog-results,
  .slots{
    grid-template-columns:1fr!important;
    gap:9px!important;
  }
  .device-card,
  .catalog-card{
    width:100%!important;
    min-height:0!important;
    padding:12px!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    align-items:start!important;
  }
  .device-card h3,
  .catalog-card h3,
  .slot h3{
    font-size:15px!important;
    line-height:1.25!important;
    overflow-wrap:anywhere!important;
  }
  .tags{
    gap:5px!important;
  }
  .tag{
    font-size:11px!important;
    padding:4px 6px!important;
    max-width:100%!important;
    overflow-wrap:anywhere!important;
  }

  /* relay-setting cards on mobile */
  .search-settings-title{
    margin:8px 0!important;
    padding-top:8px!important;
    font-size:16px!important;
  }
  .search-settings-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    width:100%!important;
  }
  .search-setting-group{
    width:100%!important;
    gap:6px!important;
  }
  .search-setting-group-title{
    min-height:0!important;
    font-size:12.5px!important;
    line-height:1.25!important;
  }
  .search-setting-group-controls,
  .search-setting-group-controls.cols-1,
  .search-setting-group-controls.cols-2,
  .search-setting-group-controls.cols-3{
    grid-template-columns:1fr!important;
    gap:7px!important;
  }
  .setting-inline{
    display:grid!important;
    grid-template-columns:92px minmax(0,1fr)!important;
    align-items:center!important;
    gap:8px!important;
  }
  .setting-inline span{
    min-height:0!important;
    font-size:12px!important;
  }
  .setting-inline input,
  .setting-inline select{
    height:38px!important;
    min-height:38px!important;
    max-height:38px!important;
    font-size:14px!important;
    padding:6px 8px!important;
  }

  .selected-readonly-slot{
    overflow:hidden!important;
  }
  .selected-readonly-slot .selected-readonly-params,
  .params{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:7px!important;
  }
  .selected-readonly-slot .selected-setting{
    width:100%!important;
  }
  .selected-readonly-slot .selected-setting select{
    height:38px!important;
    font-size:14px!important;
  }

  .hd-param-box{
    padding:12px!important;
    gap:10px!important;
  }
  .hd-param-box label,
  .current-row{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:6px!important;
    font-size:13px!important;
  }
  .hd-param-box input{
    text-align:left!important;
  }

  .export-buttons,
  .multi-export{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    width:100%!important;
    gap:8px!important;
    justify-content:stretch!important;
  }
  .export-label{
    grid-column:1 / -1!important;
    width:100%!important;
  }
  .export-buttons .btn{
    width:100%!important;
  }

  .graph-wrap{
    width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .graph-wrap svg{
    width:760px!important;
    min-width:760px!important;
    max-width:none!important;
  }
  .graph-tooltip{
    max-width:calc(100vw - 38px)!important;
    width:min(300px, calc(100vw - 38px))!important;
    font-size:12px!important;
  }

  .table-wrap{
    width:100%!important;
    max-width:100%!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
  .result-panel table,
  .hd-result-table{
    min-width:1200px!important;
  }
  .result-panel th,
  .result-panel td,
  .hd-result-table th,
  .hd-result-table td{
    font-size:12px!important;
    padding:8px 7px!important;
  }

  .modal{
    width:calc(100vw - 18px)!important;
    max-width:calc(100vw - 18px)!important;
    max-height:calc(100vh - 18px)!important;
    padding:14px!important;
    overflow:auto!important;
  }
  .modal-head{
    display:grid!important;
    grid-template-columns:1fr auto!important;
    gap:10px!important;
  }
  .modal-head h2{
    font-size:20px!important;
  }
}

@media(max-width:420px){
  .hero h1{
    font-size:26px!important;
  }
  .hd-layout{
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .section-card{
    padding:11px!important;
  }
  .setting-inline{
    grid-template-columns:76px minmax(0,1fr)!important;
  }
  .graph-wrap svg{
    width:680px!important;
    min-width:680px!important;
  }
  .export-buttons,
  .multi-export{
    grid-template-columns:1fr!important;
  }
}

/* table header hints */
.hd-result-table th .th-help{cursor:help;border-bottom:1px dotted rgba(17,24,39,.45)}
.hd-result-table th:first-child .th-help{border-bottom:0}

/* Compact search-result relay settings: keep labels and controls together. */
.editable-search-card .search-settings-title{
  margin:6px 0 2px!important;
  padding-top:8px!important;
}
.editable-search-card .search-settings-grid{
  gap:12px 14px!important;
}
.editable-search-card .search-setting-group{
  gap:5px!important;
}
.editable-search-card .search-setting-group-title{
  min-height:32px!important;
  line-height:1.25!important;
}
.editable-search-card .search-setting-group-controls{
  align-items:start;
}
.editable-search-card .search-settings-grid label,
.editable-search-card .search-setting-group-controls .mcb-characteristic{
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  gap:5px!important;
}
.editable-search-card .search-settings-grid input,
.editable-search-card .search-settings-grid select{
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  margin-top:0!important;
}
.editable-search-card > div:last-child{
  margin-top:4px!important;
  padding-top:0!important;
}
@media(max-width:720px){
  .editable-search-card .search-setting-group-title{
    min-height:0!important;
  }
  .editable-search-card .mcb-characteristic strong{
    height:auto;
    min-height:0;
  }
}

/* Center conclusion cells in the selectivity results table */
.hd-result-table td:nth-last-child(-n+2){
  text-align:center!important;
}

/* HD Электрик Рус: фирменная шапка, футер и cookie consent */
.brand-header{
  min-height:92px;
  height:auto;
  padding-top:14px;
  padding-bottom:14px;
}
.brand-group{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.brand-logo{
  display:block;
  width:238px;
  height:55px;
  object-fit:contain;
}
.company-status{
  margin:0;
  color:#000;
  font-size:12px;
  font-weight:600;
  line-height:14px;
  text-transform:uppercase;
  white-space:nowrap;
}
.header-contacts{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:clamp(18px,2.2vw,34px);
  margin-left:auto;
}
.header-contacts a{
  color:#172033;
  text-decoration:none;
  font-size:15px;
  font-weight:900;
  line-height:1.25;
  white-space:nowrap;
}
.header-contacts a:hover{color:var(--blue)}
.header-contacts span{
  display:block;
  margin-bottom:4px;
  color:#718096;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.corporate-site-btn{
  background:var(--blue-dark);
  border-color:var(--blue-dark);
  color:#fff;
  text-transform:uppercase;
  font-size:13px;
}
.corporate-site-btn:hover{background:var(--blue);color:#fff}
.header-nav-row{
  min-height:46px;
  padding:4px clamp(18px,5vw,72px);
  border-top:1px solid #eef3f8;
  background:#f8fbff;
  justify-content:flex-start;
}

.site-footer{
  background:#121f33;
  color:#dce7f4;
}
.footer-grid{
  display:grid;
  grid-template-columns:minmax(280px,1.4fr) repeat(3,minmax(180px,1fr));
  gap:clamp(28px,4vw,64px);
  padding:46px clamp(18px,5vw,72px) 38px;
}
.footer-brand img{
  display:block;
  width:min(100%,310px);
  height:auto;
  margin-bottom:18px;
  filter:brightness(0) invert(1);
}
.footer-brand p{
  max-width:460px;
  margin:0 0 20px;
  color:#b9c9dc;
  font-size:15px;
  line-height:1.55;
}
.footer-site-btn{
  border-color:#7396bc;
  background:transparent;
  color:#fff;
}
.footer-column{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:14px;
}
.footer-column h2{
  margin:0 0 6px;
  color:#fff;
  font-size:17px;
}
.footer-column a,.footer-column span,.footer-link-button{
  color:#c3d1e2;
  font-size:14px;
  line-height:1.5;
}
.footer-column a:hover,.footer-link-button:hover{color:#fff}
.footer-link-button{
  border:0;
  padding:0;
  background:transparent;
  cursor:pointer;
  text-decoration:underline;
  text-align:left;
}
.footer-bottom{
  padding:18px clamp(18px,5vw,72px);
  border-top:1px solid rgba(255,255,255,.1);
  color:#96abc2;
  font-size:13px;
}

.cookie-banner{
  position:fixed;
  z-index:1000;
  right:22px;
  bottom:22px;
  left:22px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  max-width:1320px;
  margin:0 auto;
  padding:20px 22px;
  border:1px solid #cbd8e8;
  border-radius:10px;
  background:#fff;
  box-shadow:0 22px 70px rgba(8,28,56,.26);
}
.cookie-banner[hidden]{display:none}
.cookie-copy h2{
  margin:0 0 8px;
  color:#142033;
  font-size:18px;
}
.cookie-copy p{
  margin:0;
  color:#526274;
  font-size:14px;
  line-height:1.55;
}
.cookie-copy a{color:var(--blue-dark)}
.cookie-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.cookie-settings-modal{width:min(720px,calc(100vw - 28px))}
.cookie-category{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:22px;
  padding:16px 0;
  border-bottom:1px solid #e2e9f1;
}
.cookie-category strong{font-size:16px;color:#172033}
.cookie-category p{margin:6px 0 0;color:#607083;font-size:14px;line-height:1.45}
.cookie-switch{
  display:flex!important;
  grid-template-columns:none!important;
  align-items:center;
  gap:8px!important;
  white-space:nowrap;
}
.cookie-switch input{width:20px;height:20px;margin:0;accent-color:var(--blue)}
.cookie-switch span{font-size:13px;color:#344256;font-weight:800}

.documents-page{min-height:100vh;display:flex;flex-direction:column}
.documents-main{width:min(980px,calc(100% - 32px));margin:42px auto 56px;flex:1}
.documents-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px;padding:clamp(22px,4vw,42px)}
.documents-card h1{margin:0 0 12px;color:#142033;font-size:clamp(30px,5vw,46px)}
.documents-card>p{margin:0 0 26px;color:#607083;line-height:1.55}
.document-list{display:grid;gap:14px}
.document-item{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px;border:1px solid #d7e2ef;border-radius:8px;background:#fbfdff}
.document-item h2{margin:0 0 6px;font-size:18px;color:#172033}
.document-item p{margin:0;color:#66778b;font-size:14px;line-height:1.45}
.documents-back{display:inline-flex;margin-bottom:20px;color:var(--blue-dark);font-weight:800;text-decoration:none}

@media(max-width:1280px){
  .brand-header{align-items:flex-start;flex-wrap:wrap}
  .header-contacts{order:3;width:100%;justify-content:flex-start;margin-left:0;padding-left:0}
  .corporate-site-btn{margin-left:auto}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:720px){
  .brand-header{display:grid!important;grid-template-columns:1fr!important;gap:16px!important;padding:16px!important}
  .brand-group{align-items:center;gap:10px}
  .brand-logo{width:192px;height:45px}
  .company-status{font-size:11px;line-height:13px;white-space:normal}
  .header-contacts{display:grid;grid-template-columns:1fr;gap:12px;width:100%}
  .corporate-site-btn{width:100%;margin:0}
  .header-nav-row{padding:8px 12px;gap:2px}
  .header-nav-row a{font-size:13px;padding:9px 8px}
  .footer-grid{grid-template-columns:1fr;padding:34px 18px;gap:28px}
  .cookie-banner{right:10px;bottom:10px;left:10px;grid-template-columns:1fr;gap:16px;padding:17px}
  .cookie-actions{display:grid;grid-template-columns:1fr;width:100%}
  .cookie-actions .btn{width:100%}
  .cookie-category{grid-template-columns:1fr;gap:12px}
  .document-item{align-items:flex-start;flex-direction:column}
  .document-item .btn{width:100%}
}

@media(max-width:440px){
  .brand-group{display:grid;grid-template-columns:1fr}
  .brand-logo{width:160px;height:auto}
}
