/* ReestrMI interface finish, 2026-11-05. Existing layout, labels and routes retained. */
:root {
  --rmi-detail-ink: #244d79;
  --rmi-detail-line: #bfcee0;
  --rmi-detail-soft: #edf4fb;
  --rmi-detail-muted: #526781;
  --rmi-detail-focus: #2866a3;
  --rmi-detail-speed: 160ms;
}

/* One optical weight and whole-pixel boxes for the existing vector family. */
html body :is(.rmi-stab-icon,.rmi-subnav-ico,.hx-src-ico,.home-icon,.home-archive-icon,.lab-icon,.stat-icon,.gd-ico,.registry-panel-icon,.ph-src-icon) svg,
html body :is(.kind-symbol,.detail-icon,.workspace-glyph,.m-icon,.search-query-icon,.search-control-icon) {
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  shape-rendering: geometricPrecision;
}
html body .search-query-icon { color: #597897; }
html body #lab-search .search-line>svg { stroke: #597897; stroke-width: 2; }
html body :is(.rs-ru__input-row,.search-line,.contracts-search)>button[type=submit]>span[aria-hidden=true] {
  display: inline-block;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  font-size: 0;
  line-height: 0;
  vertical-align: middle;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h16m-6-6 6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
html body :is(.rmi-stab-icon,.rmi-subnav-ico,.hx-src-ico,.home-icon,.lab-icon,.gd-ico) svg {
  display: block;
  flex-shrink: 0;
}
html body .rmi-stab-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
}
html body .rmi-stab-icon svg { width: 22px; height: 22px; }
html body .rmi-stabs>.rmi-stab:not([aria-pressed=true]):not([aria-current=page]) .rmi-stab-icon {
  background: #edf4fb;
  border-color: #b5cbe2;
  box-shadow: none;
  color: #315d89;
}
html body .rmi-stab:is([aria-pressed=true],[aria-current=page]) .rmi-stab-icon {
  background: #315b86;
  border-color: #315b86;
  box-shadow: 0 3px 6px #23456626;
}
html body .rmi-stabs>.rmi-stab,
html body .rmi-subnav a {
  transition: border-color var(--rmi-detail-speed), background-color var(--rmi-detail-speed), box-shadow var(--rmi-detail-speed);
}
html body .rmi-stabs>.rmi-stab:not([aria-pressed=true]):not([aria-current=page]):hover {
  transform: none;
}
html body .rmi-stabs>.rmi-stab:not([aria-pressed=true]):not([aria-current=page]):hover::after {
  transform: translateY(-50%);
}
html body .rmi-subnav a .rmi-subnav-ico { width: 34px; height: 34px; }
html body .rmi-subnav a svg { width: 20px; height: 20px; }
html body.home-page .hx-src-ico { width: 36px; height: 36px; }
html body.home-page .hx-src-ico svg { width: 21px; height: 21px; }
html body .lab-icon svg { width: 23px; height: 23px; }
html body .lab-icon.paired svg { width: 20px; height: 20px; }
html body .gd-ico svg { width: 20px; height: 20px; }
html body .m-feature-icon {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid #bfd2e4;
  border-radius: 8px;
  background: #edf4fb;
  color: #315d89;
}
html body .m-feature-icon svg { display: block; width: 20px; height: 20px; }

/* Fixed number gutter: every wrapped address starts in its own text column. */
html body.laboratories-selected #lab-dialog .workspace-addresses>.workspace-address {
  display: grid;
  grid-template-columns: 28px minmax(0,1fr);
  align-items: start;
  column-gap: 14px;
  padding: 12px 14px;
  margin-top: 10px;
}
html body.laboratories-selected #lab-dialog .workspace-addresses>.workspace-address>span {
  position: static;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  margin: 0;
  border: 1px solid #cadbea;
  border-radius: 7px;
  background: #edf4fb;
  color: #3d6081;
  font-size: 11px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
html body.laboratories-selected #lab-dialog .workspace-addresses>.workspace-address>p {
  min-width: 0;
  margin: 0;
  padding: 2px 0 0;
  color: #435f79;
  font-size: 14px;
  line-height: 1.7;
  overflow-wrap: anywhere;
}

/* Standards: title, status, descriptive text, then a consistent action row. */
html body .gp-card {
  gap: 8px;
  padding: 16px 18px;
  border-color: #cedbe9;
  border-radius: 14px;
  box-shadow: none;
}
html body .gp-card::before { width: 2px; top: 18px; bottom: 18px; }
html body .gp-card-top { min-height: 24px; }
html body .gp-badge { font-weight: 600; font-size: 12px; }
html body .gp-card-des { margin: 0; font-size: 17px; font-weight: 700; line-height: 1.4; }
html body .gp-open {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 38px;
  border-radius: 6px;
  text-decoration: none;
}
.gp-document-icon {
  display: grid;
  place-items: center;
  flex: 0 0 32px;
  width: 32px;
  height: 36px;
  border-radius: 8px;
  background: var(--rmi-detail-soft);
  color: var(--rmi-detail-ink);
}
.gp-designation { min-width: 0; overflow-wrap: anywhere; }
html body .gp-open>.gp-symbol { margin-left: auto; width: 16px; height: 16px; color: #5c7896; }
html body .gp-symbol {
  display: block;
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}
html body .gp-document-icon .gp-symbol { width: 21px; height: 21px; }
html body .gp-card-title { font-size: 14px; line-height: 1.5; }
html body .gp-card-about { color: var(--rmi-detail-muted); font-size: 13.5px; line-height: 1.6; }
html body .gp-card-rep { color: var(--rmi-detail-muted); font-size: 12px; }
html body .gp-card-foot {
  gap: 12px;
  margin-top: auto;
  padding-top: 12px;
  border-top-style: solid;
  border-top-color: #e1e9f2;
}
html body .gp-card-acts { gap: 6px; align-items: center; margin-left: 0; }
html body .gp-btn {
  gap: 7px;
  height: auto;
  min-height: 36px;
  padding: 7px 11px;
  border-radius: 9px;
  border-color: #c4d3e4;
  line-height: 1.35;
  transition: color var(--rmi-detail-speed), background-color var(--rmi-detail-speed), border-color var(--rmi-detail-speed);
}
html body .gp-card-acts .gp-btn.is-primary { background: #315d89; border-color: #315d89; }
html body .gp-card-acts .gp-btn.is-ghost { background: #f5f8fc; color: #3e5772; }
html body .gp-card-acts .gp-symbol { width: 16px; height: 16px; }
html body .gp-card-acts .gp-external-mark { width: 12px; height: 12px; }
html body .gp-meter em { height: 3px; }
html body .gp-side-note,
html body .gp-gcount,
html body .gp-side-title { color: var(--rmi-detail-muted); }
html body .gp-sort select { min-height: 38px; border-color: #bfcee0; }
html body .gp-search input::placeholder { color: #61758c; opacity: 1; }
html body .gp-go>.gp-symbol { width: 18px; height: 18px; }
html body .gd-step .gp-symbol { width: 18px; height: 18px; }
html body :is(.gd-step,.gd-close) { min-width: 38px; min-height: 38px; }
html body .gd-close svg { width: 20px; height: 20px; stroke-width: 2; }
html body .gp-clear svg { width: 18px; height: 18px; stroke-width: 2; }
html body .gd-full { display: inline-flex; align-items: center; gap: 8px; }
html body .gd-full::before {
  content: '';
  width: 16px;
  height: 16px;
  background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3H3v5m13-5h5v5M3 16v5h5m13-5v5h-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
html body .gd-dialog.is-full .gd-full::before {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h5V3m13 5h-5V3M3 16h5v5m13-5h-5v5'/%3E%3C/svg%3E");
}
html body :is(.gp-open,.gp-btn,.gp-group,.gp-sort select,.gd-step,.gd-full,.gd-close,.gd-toc button,.rmi-stab,.rmi-subnav a):focus-visible {
  outline: 2px solid var(--rmi-detail-focus);
  outline-offset: 3px;
}
html body :is(.gp-app,.gd-dialog) { caret-color: var(--rmi-detail-ink); }
html body :is(.gp-app,.gd-dialog) ::selection { background: #d8e8f8; color: #183b60; }
html body :is(.gp-side,.gd-body,.gd-grid) { scrollbar-color: #a1b8cf #eef3f8; }

@media (hover: hover) and (pointer: fine) {
  html body .gp-card:hover { border-color: #90afcf; box-shadow: none; }
  html body .gp-open:hover { color: #245884; text-decoration: none; }
  html body .gp-open:hover .gp-document-icon { background: #dfecf8; }
  html body .gp-btn:hover { background: #edf4fb; border-color: #8daac7; }
  html body .gp-card-acts .gp-btn.is-primary:hover { background: #244a71; border-color: #244a71; }
}
@media (hover: none) {
  html body .rmi-stabs>.rmi-stab:not([aria-pressed=true]):not([aria-current=page]):hover .rmi-stab-icon {
    background: #edf4fb; color: #315d89; box-shadow: none;
  }
}
@media (max-width: 760px) {
  html body .rmi-stab-icon { width: 30px; height: 30px; border-radius: 8px; }
  html body .rmi-stab-icon svg { width: 19px; height: 19px; }
  html body .rmi-subnav a .rmi-subnav-ico { width: 30px; height: 30px; }
  html body .rmi-subnav a svg { width: 18px; height: 18px; }
  html body .gp-card { padding: 14px; }
  html body .gp-card-foot { align-items: flex-start; }
  html body .gp-card-acts { width: 100%; margin-left: 0; }
  html body .gp-card-acts .gp-btn { min-height: 42px; flex: 1 1 auto; }
  html body .gp-card-des { font-size: 16px; }
  html body .gd-full { padding-inline: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  html body :is(.rmi-stab,.rmi-stab-icon,.rmi-subnav a,.gp-card,.gp-open,.gp-btn) { transition: none; }
}
@media (forced-colors: active) {
  .gp-document-icon { border: 1px solid ButtonText; }
  html body .gp-card { border-color: CanvasText; }
}
