:root {
  --bg: #eef3f8;
  --surface: #ffffff;
  --surface-soft: #f8fafc;
  --surface-strong: #edf3fb;
  --text: #101828;
  --muted: #667085;
  --line: #d9e2ef;
  --primary: #12355b;
  --primary-2: #184e77;
  --primary-soft: #e8f1fb;
  --success: #0f766e;
  --danger: #b42318;
  --warning: #b45309;
  --shadow: 0 14px 42px rgba(16, 24, 40, 0.08);
  --shadow-soft: 0 8px 24px rgba(16, 24, 40, 0.06);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background: var(--bg);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; background: linear-gradient(180deg, #f7fbff 0%, var(--bg) 42%, #f4f7fb 100%); }
a { color: inherit; }

header {
  position: sticky;
  top: 0;
  z-index: 30;
  color: white;
  padding: 24px 40px 18px;
  background:
    radial-gradient(circle at 15% 0%, rgba(111, 207, 246, .30), transparent 32%),
    linear-gradient(135deg, #0b1f36 0%, #12355b 54%, #1b4965 100%);
  box-shadow: 0 10px 35px rgba(16, 24, 40, .18);
}
header h1 { margin: 0 0 6px; font-size: clamp(24px, 3vw, 34px); letter-spacing: -.03em; }
header p { margin: 0 0 18px; color: rgba(255,255,255,.78); }
nav { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
nav a {
  color: white;
  text-decoration: none;
  padding: 9px 13px;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  transition: .18s ease;
}
nav a:hover { background: rgba(255,255,255,.18); transform: translateY(-1px); }

.grid { display: grid; grid-template-columns: repeat(2, minmax(320px, 1fr)); gap: 22px; padding: 24px; max-width: 1480px; margin: 0 auto; }
.page { padding: 24px; max-width: 1480px; margin: 0 auto; }
.single-column { grid-template-columns: 1fr; }
.card {
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(217,226,239,.9);
  border-radius: 24px;
  padding: 22px;
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(10px);
}
.card.wide { grid-column: 1 / -1; }
.card h2 { margin: 0 0 14px; font-size: 22px; letter-spacing: -.02em; }
.card h3 { margin: 0 0 10px; font-size: 17px; }
.muted { color: var(--muted); }

.dashboard-hero {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(320px, 1.7fr) minmax(260px, .8fr);
  gap: 18px;
  align-items: stretch;
}
.hero-panel {
  background: linear-gradient(135deg, #12355b, #256d85);
  color: white;
  border-radius: 28px;
  padding: 28px;
  box-shadow: var(--shadow);
}
.hero-panel h2 { color: white; margin: 0 0 10px; font-size: clamp(26px, 3vw, 38px); }
.hero-panel p { color: rgba(255,255,255,.80); max-width: 760px; line-height: 1.55; }
.stat-grid { display: grid; grid-template-columns: repeat(3, minmax(130px, 1fr)); gap: 12px; margin-top: 20px; }
.stat-card { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); border-radius: 18px; padding: 14px; }
.stat-card small { display:block; color: rgba(255,255,255,.72); }
.stat-card b { display:block; font-size: 28px; margin-top: 4px; }
.quick-actions {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 28px;
  padding: 22px;
  box-shadow: var(--shadow-soft);
}
.quick-actions h2 { margin-bottom: 12px; }
.action-grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
.action-card {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  border-radius: 16px;
  padding: 14px;
  border: 1px solid var(--line);
  background: var(--surface-soft);
  text-decoration: none;
  transition: .18s ease;
}
.action-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-soft); border-color: #b9c8db; }
.action-card span { color: var(--muted); font-size: 13px; }
.action-icon { font-size: 22px; }

form { display: grid; grid-template-columns: repeat(2, minmax(140px, 1fr)); gap: 12px; margin-bottom: 18px; }
input, select, button, textarea {
  width: 100%;
  padding: 11px 13px;
  border: 1px solid #cfd9e6;
  border-radius: 13px;
  font: inherit;
  background: #fff;
  color: var(--text);
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
input:focus, select:focus, textarea:focus, .multi-dropdown summary:focus {
  outline: none;
  border-color: #2b6cb0;
  box-shadow: 0 0 0 4px rgba(43, 108, 176, .14);
}
button, .button-link {
  border: none;
  background: var(--primary);
  color: white;
  cursor: pointer;
  font-weight: 700;
  text-decoration: none;
  text-align: center;
}
button:hover, .button-link:hover { background: var(--primary-2); transform: translateY(-1px); }
.button-link { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 15px; border-radius: 13px; margin: 0; }
.button-link.secondary, .secondary-button { background: #526173; }
.button-link.secondary:hover, .secondary-button:hover { background: #334155; }
button:disabled, .button-link.disabled { background: #cbd5e1; color: #64748b; cursor: default; transform: none; box-shadow: none; }
button:disabled:hover, .button-link.disabled:hover { background: #cbd5e1; color: #64748b; transform: none; }
button.danger { background: #fff1f1; color: var(--danger); border: 1px solid #fecaca; }
button.danger:hover { background: var(--danger); color: white; }
.sample-button { background: var(--success); color: #fff; }
.sample-button.sample-created { background: #166534; }

ul { list-style: none; padding: 0; margin: 0; }
li { padding: 12px 0; border-bottom: 1px solid #edf0f4; }
.row-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.row-actions form, td form, .delete-form { display: inline; margin: 0; }

.table-wrap { overflow: auto; border: 1px solid #e5edf6; border-radius: 18px; background: #fff; }
table { width: 100%; border-collapse: separate; border-spacing: 0; }
th, td { padding: 13px 12px; border-bottom: 1px solid #edf0f4; text-align: left; vertical-align: middle; }
thead th { position: sticky; top: 0; background: #f8fafc; z-index: 5; color: #344054; font-size: 13px; letter-spacing: .01em; }
tbody tr:nth-child(even) { background: #fbfdff; }
.interactive-table tr:hover { background: #eef6ff; }
.row-button { display: inline-flex; align-items:center; justify-content:center; min-width: 62px; padding: 8px 12px; border-radius: 11px; background: var(--primary); color: white; text-decoration: none; font-weight: 800; box-shadow: 0 6px 14px rgba(18, 53, 91, .18); }
.row-button:hover { background: var(--primary-2); }

.import-box { background: #f8fbff; border: 1px dashed #b8c8dc; border-radius: 18px; padding: 16px; margin: 0 0 18px; }
.import-box.prominent { border: 2px solid #bcd2ee; background: linear-gradient(180deg, #f8fbff, #f2f7fd); }
.import-box h3 { margin-top: 0; }
.import-form { grid-template-columns: 1fr auto; align-items: center; margin-bottom: 0; }
.button-row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin: 10px 0; }
.notice { max-width: 1180px; margin: 16px auto 0; padding: 13px 16px; border-radius: 16px; background: #eef2ff; }
.notice.success { background: #ecfdf5; border: 1px solid #bbf7d0; color: #166534; }

.tabs { display: flex; gap: 10px; margin-bottom: 18px; border-bottom: 1px solid #edf0f4; padding-bottom: 12px; flex-wrap: wrap; }
.tab { padding: 11px 16px; border-radius: 999px; background: #edf3fb; color: var(--primary); text-decoration: none; font-weight: 700; }
.tab.active { background: var(--primary); color: white; }
.catalog-form { grid-template-columns: repeat(6, minmax(110px, 1fr)); align-items: center; }
.table-form { display: grid; grid-template-columns: 1.3fr .7fr 1.5fr .6fr .8fr .7fr; gap: 8px; margin: 0; }
.catalog-row { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; }
.inline-edit-form { display: grid; grid-template-columns: 1.3fr .7fr 1.5fr .6fr .8fr .7fr; gap: 8px; margin: 0; }

.details-grid { display: grid; grid-template-columns: repeat(4, minmax(160px, 1fr)); gap: 12px; }
.details-grid div { background: linear-gradient(180deg, #f8fafc, #f3f7fb); border: 1px solid #e7edf5; border-radius: 16px; padding: 14px; }
.details-grid small { display: block; color: var(--muted); margin-bottom: 5px; }
.details-grid b { font-size: 18px; }

.section-header { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom: 12px; }
.section-header h2 { margin-bottom: 5px; }
.filter-panel { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; background:#f8fafc; border:1px solid #edf0f4; border-radius:18px; padding:16px; margin:0 0 16px; }
.filter-panel h3 { margin: 0 0 6px; }
.filter-panel p { margin: 0; }
.filterable-table thead th { vertical-align: top; }
.sort-button { width: 100%; text-align:left; padding: 0; border: none; border-radius: 0; background: transparent; color: #172033; font-weight: 800; cursor: pointer; }
.sort-button:hover { color: var(--primary-2); text-decoration: underline; transform: none; background: transparent; }
.filter-row th { top: 45px; }
.filter-row input { width: 100%; min-width: 130px; box-sizing: border-box; padding: 8px 10px; border-radius: 10px; }

.multi-dropdown { position: relative; min-width: 220px; }
.multi-dropdown summary {
  cursor: pointer;
  list-style: none;
  border: 1px solid #cfd9e6;
  border-radius: 13px;
  background: #fff;
  padding: 11px 13px;
  color: #344054;
  user-select: none;
  min-height: 47px;
}
.multi-dropdown summary::-webkit-details-marker { display: none; }
.multi-dropdown[open] summary { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.multi-dropdown .combo-text { color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.multi-dropdown .combo-text.empty { color: var(--muted); }
.multi-dropdown .dropdown-arrow { color: #667085; font-size: 13px; }
.multi-dropdown[open] .dropdown-arrow { transform: rotate(180deg); }
.multi-dropdown[open] .combo-text { white-space: normal; }
.multi-dropdown .options { position: absolute; z-index: 20; left: 0; right: 0; max-height: 260px; overflow: auto; border: 1px solid #cfd9e6; border-top: 0; background: #fff; border-bottom-left-radius: 13px; border-bottom-right-radius: 13px; box-shadow: 0 16px 32px rgba(16, 24, 40, 0.16); padding: 8px; }
.multi-dropdown label { display: flex; align-items: center; gap: 8px; padding: 8px 7px; border-radius: 9px; font-size: 14px; }
.multi-dropdown label:hover { background: #f2f6fb; }
.multi-dropdown input[type="checkbox"] { width: auto; }
.multi-dropdown .empty-option { color: #667085; padding: 8px; }
.sample-hint { display: flex; align-items: center; color: var(--muted); background: #f8fafc; border: 1px solid #edf0f4; border-radius: 13px; padding: 11px 13px; min-height: 24px; }

.form-section-title { grid-column: 1 / -1; font-weight: 800; color: var(--primary); margin: 4px 0 -2px; }
.interval-form { grid-template-columns: repeat(2, minmax(240px, 1fr)); }
.interval-form button[type="submit"], .interval-form > button:not([type]) { grid-column: 1 / -1; }
.compact-form { grid-template-columns: repeat(4, minmax(160px, 1fr)); }


.compact-action-row { display: flex; gap: 6px; align-items: center; flex-wrap: nowrap; }
.compact-action-row form { display: inline-flex; margin: 0; width: auto; }
.compact-action-row details { width: auto; }
.compact-action-row details summary, .compact-action-row button, button.small-button {
  width: auto;
  min-width: auto;
  padding: 6px 9px;
  border-radius: 9px;
  font-size: 12px;
  line-height: 1.2;
  white-space: nowrap;
}
.compact-action-row .edit-panel[open] { position: relative; }
.compact-action-row .edit-panel[open] .edit-form {
  position: absolute;
  right: 0;
  top: 34px;
  z-index: 25;
  min-width: 560px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 14px;
  box-shadow: var(--shadow);
}

code { background: #edf0f4; padding: 2px 6px; border-radius: 6px; }

@media (max-width: 1100px) {
  .catalog-form, .table-form, .catalog-row, .inline-edit-form, .import-form, .details-grid, .compact-form { grid-template-columns: 1fr; }
  .dashboard-hero { grid-template-columns: 1fr; }
  .stat-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
  header { position: static; padding: 22px; }
  .grid { grid-template-columns: 1fr; padding: 14px; }
  .page { padding: 14px; }
  form, .interval-form { grid-template-columns: 1fr; }
  .section-header, .filter-panel { flex-direction: column; }
  .stat-grid { grid-template-columns: 1fr; }
  .card { border-radius: 20px; padding: 18px; }
}


/* v25 ergonomic fixes */
#wells.card.wide { grid-column: 1 / -1; }
#wells .interactive-table th, #wells .interactive-table td { white-space: nowrap; }
#wells .interactive-table th:nth-child(2), #wells .interactive-table td:nth-child(2) { min-width: 180px; }
.interactive-table th:last-child, .interactive-table td:last-child { width: 1%; white-space: nowrap; }
.compact-action-row { justify-content: flex-start; gap: 5px; }
.compact-action-row details.edit-panel { display: inline-flex; width: auto !important; max-width: max-content; }
.compact-action-row details.edit-panel > summary.icon-action,
.compact-action-row button.icon-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: 30px;
  padding: 0 !important;
  border-radius: 9px;
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
  overflow: hidden;
}
.compact-action-row details.edit-panel > summary.icon-action {
  color: #155eef;
  background: #eef4ff;
  border: 1px solid #c7d7fe;
  cursor: pointer;
  list-style: none;
}
.compact-action-row details.edit-panel > summary.icon-action::-webkit-details-marker { display: none; }
.compact-action-row details.edit-panel > summary.icon-action:hover { background: #dbeafe; }
.compact-action-row button.icon-action.danger { font-size: 18px; }


/* v26: truly compact interval actions */
.intervals-table .actions-col,
.intervals-table .actions-cell {
  width: 86px !important;
  min-width: 86px !important;
  max-width: 86px !important;
  padding-left: 8px !important;
  padding-right: 8px !important;
  white-space: nowrap;
}
.intervals-table .actions-cell {
  position: relative;
  overflow: visible;
}
.intervals-table .compact-action-row {
  display: inline-flex !important;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  width: auto !important;
  min-width: 0 !important;
  max-width: 84px !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
}
.intervals-table .compact-action-row details.edit-panel {
  display: inline-block !important;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: 30px !important;
  margin: 0 !important;
  padding: 0 !important;
  position: static;
  background: transparent !important;
  border: 0 !important;
}
.intervals-table .compact-action-row details.edit-panel:not([open]) > .edit-form {
  display: none !important;
}
.intervals-table .compact-action-row details.edit-panel > summary.icon-action,
.intervals-table .compact-action-row button.icon-action {
  box-sizing: border-box;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: 30px !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 9px !important;
}
.intervals-table .compact-action-row form {
  display: inline-flex !important;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  margin: 0 !important;
  padding: 0 !important;
}
.intervals-table .compact-action-row .edit-panel[open] .edit-form {
  position: absolute !important;
  right: 0;
  top: 38px;
  z-index: 50;
  width: min(760px, calc(100vw - 80px));
  min-width: min(560px, calc(100vw - 80px));
  max-width: calc(100vw - 80px);
}

/* v27: edit form opens in a separate full-width row, actions stay compact */
.intervals-table .actions-col,
.intervals-table .actions-cell {
  width: 86px !important;
  min-width: 86px !important;
  max-width: 86px !important;
}
.intervals-table .actions-cell .compact-action-row {
  max-width: 84px !important;
}
.intervals-table .interval-edit-row td {
  padding: 0 !important;
  background: #f8fafc !important;
}
.edit-panel-row {
  margin: 10px 12px 14px;
  padding: 16px;
  border: 1px solid #dbe7f5;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 18px 36px rgba(16, 24, 40, 0.10);
}
.edit-row-title { margin-bottom: 12px; }
.edit-row-title .button-link { padding: 8px 12px; }
.intervals-table .edit-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 10px;
  margin-top: 0;
}
.intervals-table .edit-form .multi-dropdown,
.intervals-table .edit-form .full-row {
  grid-column: 1 / -1;
}
.intervals-table .edit-form button[type="submit"] {
  grid-column: 1 / -1;
}
@media (max-width: 860px) {
  .intervals-table .edit-form { grid-template-columns: 1fr; }
}

/* v28: проба внизу формы создания интервала и создание пробы из панели редактирования */
.edit-sample-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  gap: 10px;
  align-items: center;
  grid-column: 1 / -1;
}
.edit-sample-row .sample-hint {
  grid-column: 1 / -1;
}
.sample-button:disabled.sample-created {
  opacity: 1;
  cursor: default;
  transform: none;
}
@media (max-width: 720px) {
  .edit-sample-row { grid-template-columns: 1fr; }
}

/* v29: interval photos */
.photo-count {
  display: inline-flex;
  min-width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #eef6ff;
  color: var(--primary);
  font-weight: 800;
}
.interval-photos-row td {
  background: #f8fbff !important;
  padding-top: 0 !important;
}
.interval-photos-panel {
  border: 1px dashed #cbd5e1;
  background: #ffffff;
  border-radius: 16px;
  padding: 12px;
}
.photos-toolbar {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.photo-upload-form {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.photo-upload-form input[type="file"] {
  max-width: 360px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.compact-upload-button {
  padding: 9px 13px !important;
  min-height: auto !important;
}
.photo-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.photo-thumb {
  position: relative;
  width: 132px;
  margin: 0;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
  padding: 8px;
  box-shadow: 0 6px 16px rgba(15, 23, 42, .06);
}
.photo-thumb img {
  width: 100%;
  height: 92px;
  object-fit: cover;
  border-radius: 10px;
  display: block;
}
.photo-thumb figcaption {
  margin-top: 6px;
  font-size: 11px;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.photo-delete-button {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 24px !important;
  height: 24px !important;
  padding: 0 !important;
  border-radius: 999px !important;
  line-height: 1 !important;
}
.photo-empty {
  padding: 8px 0;
}
@media (max-width: 760px) {
  .photos-toolbar { align-items: stretch; }
  .photo-upload-form { width: 100%; }
  .photo-upload-form input[type="file"] { max-width: 100%; width: 100%; }
}

.status-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  gap: 10px;
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #e5e7eb;
}
.status-form .form-section-title { grid-column: 1 / -1; }
@media (max-width: 900px) { .status-form { grid-template-columns: 1fr; } }


/* v32: wide wells table and calendar date filters */
.wells-page {
  max-width: none;
  width: 100%;
  padding-left: 16px;
  padding-right: 16px;
}
.wells-page #wells {
  width: 100%;
  max-width: none;
  overflow: hidden;
}
.wells-page #wells .table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
}
.wells-page #wells-table {
  min-width: 1900px;
  width: max-content;
}
.wells-page #wells-table th,
.wells-page #wells-table td {
  white-space: nowrap;
}
.wells-page .filter-row input[type="date"] {
  min-width: 150px;
  cursor: pointer;
}
.wells-page .filter-panel {
  position: sticky;
  top: 120px;
  z-index: 10;
}
@media (max-width: 860px) {
  .wells-page { padding-left: 10px; padding-right: 10px; }
  .wells-page #wells-table { min-width: 1800px; }
  .wells-page .filter-panel { position: static; }
}

/* v33: compact full-width wells table without page horizontal overflow */
html, body { max-width: 100%; overflow-x: hidden; }
.wells-page {
  max-width: none !important;
  width: 100% !important;
  padding: 16px 12px !important;
  margin: 0 !important;
}
.wells-page #wells {
  width: 100% !important;
  max-width: none !important;
  padding: 18px !important;
  overflow: visible !important;
}
.wells-page #wells .table-wrap {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
}
.wells-page #wells-table {
  width: 100% !important;
  min-width: 0 !important;
  table-layout: fixed !important;
  font-size: 12px;
}
.wells-page #wells-table th,
.wells-page #wells-table td {
  padding: 7px 6px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: 1px;
}
.wells-page #wells-table .sort-button {
  font-size: 11px;
  line-height: 1.15;
  white-space: normal;
}
.wells-page #wells-table .filter-row input,
.wells-page #wells-table .filter-row input[type="date"] {
  min-width: 0 !important;
  width: 100% !important;
  padding: 6px 5px !important;
  font-size: 11px;
  border-radius: 8px;
}
.wells-page #wells-table .row-button {
  min-width: 0;
  width: 100%;
  padding: 6px 5px;
  border-radius: 8px;
  font-size: 11px;
}
.wells-page #wells-table button.danger {
  padding: 6px 7px !important;
  font-size: 11px;
  border-radius: 8px;
}
.wells-page #wells-table th:nth-child(1), .wells-page #wells-table td:nth-child(1) { width: 7.5%; }
.wells-page #wells-table th:nth-child(2), .wells-page #wells-table td:nth-child(2) { width: 9%; min-width: 0 !important; }
.wells-page #wells-table th:nth-child(3), .wells-page #wells-table td:nth-child(3) { width: 8%; }
.wells-page #wells-table th:nth-child(4), .wells-page #wells-table td:nth-child(4) { width: 8.5%; }
.wells-page #wells-table th:nth-child(5), .wells-page #wells-table td:nth-child(5) { width: 8.5%; }
.wells-page #wells-table th:nth-child(6), .wells-page #wells-table td:nth-child(6) { width: 7%; }
.wells-page #wells-table th:nth-child(7), .wells-page #wells-table td:nth-child(7) { width: 8%; }
.wells-page #wells-table th:nth-child(8), .wells-page #wells-table td:nth-child(8) { width: 6%; }
.wells-page #wells-table th:nth-child(9), .wells-page #wells-table td:nth-child(9) { width: 6%; }
.wells-page #wells-table th:nth-child(10), .wells-page #wells-table td:nth-child(10) { width: 6%; }
.wells-page #wells-table th:nth-child(11), .wells-page #wells-table td:nth-child(11) { width: 8%; }
.wells-page #wells-table th:nth-child(12), .wells-page #wells-table td:nth-child(12) { width: 8%; }
.wells-page #wells-table th:nth-child(13), .wells-page #wells-table td:nth-child(13) { width: 7.5%; }
.wells-page #wells-table th:nth-child(14), .wells-page #wells-table td:nth-child(14) { width: 4%; }
.wells-page .compact-form {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
.wells-page .compact-form input,
.wells-page .compact-form select,
.wells-page .compact-form button {
  min-width: 0 !important;
}
@media (max-width: 1200px) {
  .wells-page #wells-table { font-size: 11px; }
  .wells-page #wells-table th,
  .wells-page #wells-table td { padding: 6px 4px !important; }
  .wells-page #wells-table .sort-button { font-size: 10px; }
}
@media (max-width: 900px) {
  .wells-page #wells .table-wrap { overflow-x: auto !important; }
  .wells-page #wells-table { min-width: 1200px !important; }
}

.user-bar {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.92);
}
.user-bar a { color: #fff; text-decoration: none; font-weight: 700; }
.user-bar form { margin: 0; }
.ghost-button {
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.08);
  color: #fff;
  padding: 7px 12px;
  border-radius: 999px;
  cursor: pointer;
}
.login-body { min-height: 100vh; display: grid; place-items: center; background: #eef3f8; }
.login-page { width: min(440px, calc(100vw - 32px)); }
.login-card { background: #fff; border-radius: 24px; padding: 28px; box-shadow: 0 20px 60px rgba(15, 23, 42, .16); }
.login-card h1 { margin-top: 0; color: #0f172a; }
.login-form { display: grid; gap: 14px; margin-top: 24px; }
.login-form label { display: grid; gap: 6px; font-weight: 700; color: #172033; }
.login-form input { width: 100%; box-sizing: border-box; }
.notice.error { background: #fff1f2; border: 1px solid #fecdd3; color: #b91c1c; padding: 10px 12px; border-radius: 12px; }
.small-note { font-size: 13px; }
.inline-user-form { display: grid; grid-template-columns: 1fr 160px 130px 180px auto; gap: 8px; align-items: center; }
.role-grid { display: grid; grid-template-columns: repeat(4, minmax(180px, 1fr)); gap: 12px; }
.role-grid > div { background: #f8fafc; border: 1px solid #e5e7eb; border-radius: 16px; padding: 14px; }
.role-grid p { margin-bottom: 0; color: #667085; }
@media (max-width: 900px) { .inline-user-form, .role-grid { grid-template-columns: 1fr; } }

.editable-list { display: grid; gap: 12px; }
.edit-row-card {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: start;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface-soft);
}
.edit-row-card form { margin: 0; }
@media (max-width: 900px) {
  .edit-row-card { grid-template-columns: 1fr; }
}

.hierarchy-list { display: grid; gap: 12px; }
.hierarchy-link {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface-soft);
  text-decoration: none;
  transition: .18s ease;
}
.hierarchy-link:hover {
  transform: translateY(-1px);
  border-color: #b9c8db;
  box-shadow: var(--shadow-soft);
}
.hierarchy-link b { font-size: 18px; }
.hierarchy-link .arrow { font-size: 24px; color: var(--primary); }
.edit-box {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface-soft);
  margin-bottom: 16px;
}
.profile-row, .well-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface-soft);
}
.profile-row:hover, .well-row:hover { border-color: #b9c8db; box-shadow: var(--shadow-soft); }
.profile-row .meta, .well-row .meta { color: var(--muted); font-size: 14px; margin-top: 4px; }
.profile-row a, .well-row a { text-decoration: none; color: inherit; display:block; }
.danger-note { color: var(--danger); font-size: 13px; margin-top: 6px; }
@media (max-width: 820px) {
  .profile-row, .well-row { grid-template-columns: 1fr; }
}


.worksites-board { display: grid; gap: 10px; margin-top: 14px; }
.worksites-board-head {
  display: grid;
  grid-template-columns: minmax(240px, 2.2fr) repeat(6, minmax(90px, 1fr));
  gap: 8px;
  align-items: stretch;
}
.worksites-board-head > div {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #f8fbff;
  padding: 12px 10px;
  text-align: center;
}
.worksites-board-head .name-head {
  grid-row: 1 / span 2;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  text-align: left;
  font-size: 20px;
  font-weight: 800;
  padding-left: 18px;
}
.worksites-board-head .group-head {
  font-size: 18px;
  font-weight: 800;
}
.worksites-board-head .subhead {
  font-size: 14px;
  line-height: 1.15;
  font-weight: 700;
}
.worksites-board-head .empty {
  display: none;
}
.worksite-board-row {
  display: grid;
  grid-template-columns: minmax(240px, 2.2fr) repeat(6, minmax(90px, 1fr));
  gap: 8px;
  text-decoration: none;
  color: inherit;
}
.worksite-board-row > div {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  padding: 14px 10px;
  min-height: 74px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition: .18s ease;
}
.worksite-board-row:hover > div { border-color: #b9c8db; box-shadow: var(--shadow-soft); transform: translateY(-1px); }
.worksite-name-cell { padding-left: 18px !important; }
.worksite-name-cell strong { font-size: 24px; line-height: 1.1; color: var(--primary-dark); }
.worksite-name-cell span { color: var(--muted); margin-top: 6px; }
.metric-cell { align-items: center; text-align: center; }
.metric-cell span { font-size: 13px; color: var(--muted); margin-bottom: 8px; }
.metric-cell b { font-size: 24px; line-height: 1; color: var(--primary-dark); }
.metric-cell.fact { background: #fbfdff; }
@media (max-width: 1120px) {
  .worksites-board-head { display: none; }
  .worksite-board-row { grid-template-columns: 1fr 1fr 1fr; }
  .worksite-name-cell { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .worksite-board-row { grid-template-columns: 1fr 1fr; }
  .metric-cell b { font-size: 20px; }
  .worksite-name-cell strong { font-size: 22px; }
}

/* v41: readable work sites plan/fact table */
.worksites-table-wrap {
  width: 100%;
  overflow-x: auto;
  margin-top: 16px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}
.worksites-summary-table {
  width: 100%;
  min-width: 920px;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
}
.worksites-summary-table th,
.worksites-summary-table td {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 14px 12px;
  text-align: center;
  vertical-align: middle;
}
.worksites-summary-table th:last-child,
.worksites-summary-table td:last-child { border-right: none; }
.worksites-summary-table tbody tr:last-child td { border-bottom: none; }
.worksites-summary-table thead th {
  background: #f8fbff;
  color: var(--text);
  font-weight: 800;
}
.worksites-summary-table .site-name-head {
  width: 34%;
  text-align: left;
  font-size: 20px;
  padding-left: 18px;
}
.worksites-summary-table .group-head {
  font-size: 18px;
  letter-spacing: .01em;
}
.worksites-summary-table .group-head.plan { background: #f4f8fd; }
.worksites-summary-table .group-head.fact { background: #f1fbf8; }
.worksites-summary-table .site-name-cell {
  text-align: left;
  padding: 16px 18px;
}
.worksites-summary-table .site-name-cell a {
  display: inline-block;
  font-size: 22px;
  line-height: 1.15;
  font-weight: 900;
  color: var(--primary);
  text-decoration: none;
}
.worksites-summary-table .site-name-cell span {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 14px;
}
.worksites-summary-table td b {
  font-size: 22px;
  color: var(--text);
}
.worksites-summary-table .fact-cell {
  background: #fbfffd;
}
.worksites-summary-table .clickable-site-row {
  cursor: pointer;
  transition: background .15s ease;
}
.worksites-summary-table .clickable-site-row:hover td {
  background: #eef6ff;
}
.worksites-summary-table .clickable-site-row:hover .fact-cell {
  background: #eafaf4;
}
@media (max-width: 900px) {
  .worksites-summary-table { min-width: 760px; }
  .worksites-summary-table .site-name-head { width: 30%; }
  .worksites-summary-table .site-name-cell a { font-size: 18px; }
  .worksites-summary-table td b { font-size: 18px; }
}

/* v43 adjustments */
.worksites-summary-table .site-name-cell a {
  font-size: 28px !important;
  line-height: 1.08 !important;
}
@media (max-width: 900px) {
  .worksites-summary-table .site-name-cell a {
    font-size: 22px !important;
  }
}

/* v44: profile and well hierarchy tables */
.profile-summary-table {
  min-width: 820px;
}
.profile-summary-table .site-name-head {
  width: 42%;
}
.profile-summary-table .actions-head,
.profile-summary-table .actions-cell-plain {
  width: 130px;
}
.wells-summary-table {
  min-width: 1180px;
}
.wells-summary-table .site-name-head {
  width: 24%;
}
.actions-cell-plain {
  cursor: default;
  background: #fff !important;
}
.actions-cell-plain form {
  margin: 0;
  display: block;
}
.actions-cell-plain button {
  white-space: nowrap;
}
.worksites-summary-table td {
  cursor: pointer;
}
.worksites-summary-table .actions-cell-plain {
  cursor: default;
}
.worksites-summary-table .actions-cell-plain:hover {
  background: #fff !important;
}
.wells-summary-table td,
.profile-summary-table td {
  font-size: 14px;
}
.wells-summary-table td b,
.profile-summary-table td b {
  font-size: 18px;
}
.wells-summary-table .site-name-cell a,
.profile-summary-table .site-name-cell a {
  font-size: 24px;
}
@media (max-width: 900px) {
  .wells-summary-table { min-width: 1040px; }
  .profile-summary-table { min-width: 760px; }
}

/* v45 drilling master */
.wells-summary-table { min-width: 1260px; }

/* v46: add interval modal */
.add-interval-toolbar {
  margin-bottom: 18px;
}
.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding: 36px 18px;
  background: rgba(10, 22, 42, .52);
  overflow-y: auto;
}
.modal-backdrop.open {
  display: flex;
}
.modal-window {
  width: min(1120px, calc(100vw - 36px));
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 24px 80px rgba(16,24,40,.28);
  border: 1px solid rgba(217,226,239,.9);
  animation: modalIn .16s ease-out;
}
.interval-modal-window {
  max-height: calc(100vh - 72px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 24px 16px;
  border-bottom: 1px solid var(--line);
}
.modal-header h2 {
  margin: 0 0 4px;
  font-size: 24px;
  letter-spacing: -.02em;
}
.modal-header p {
  margin: 0;
}
.modal-close {
  width: 42px;
  height: 42px;
  padding: 0;
  border-radius: 999px;
  background: #eef3f8;
  color: var(--text);
  border: 1px solid var(--line);
  font-size: 28px;
  line-height: 1;
  display: grid;
  place-items: center;
}
.modal-close:hover {
  background: #e2eaf4;
  transform: none;
}
.modal-body {
  padding: 22px 24px 24px;
  overflow-y: auto;
}
.modal-body .interval-form {
  margin-bottom: 0;
}
body.modal-open {
  overflow: hidden;
}
@keyframes modalIn {
  from { opacity: 0; transform: translateY(10px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@media (max-width: 760px) {
  .modal-backdrop {
    padding: 12px;
  }
  .modal-window {
    width: 100%;
    border-radius: 18px;
  }
  .interval-modal-window {
    max-height: calc(100vh - 24px);
  }
  .modal-header, .modal-body {
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* v47: photos inside add interval modal */
.interval-photo-input {
  grid-column: 1 / -1;
  display: grid;
  gap: 8px;
}
.selected-photo-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.selected-photo-pill {
  display: inline-flex;
  align-items: center;
  max-width: 280px;
  padding: 7px 10px;
  border-radius: 999px;
  background: #eef3f8;
  border: 1px solid var(--line);
  color: var(--text);
  font-size: 13px;
}
.selected-photo-pill span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* v49: edit interval modal and inline photo thumbnails */
.inline-photo-thumbs {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.inline-photo-thumbs a {
  display: inline-flex;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: #f8fafc;
}
.inline-photo-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.photo-more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  padding: 0 8px;
  border-radius: 999px;
  background: #eef3f8;
  border: 1px solid var(--line);
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
}
.interval-photo-cell {
  min-width: 130px;
}
.edit-photo-preview {
  margin-top: 8px;
}
.edit-photo-preview a {
  width: 54px;
  height: 54px;
}
.modal-edit-form {
  margin-bottom: 0;
}

/* v50: strict photo thumbnails in intervals table */
.intervals-table .interval-photo-cell {
  width: 150px !important;
  min-width: 150px !important;
  max-width: 150px !important;
  vertical-align: middle !important;
  padding: 8px !important;
}

.intervals-table .inline-photo-thumbs {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  flex-wrap: nowrap !important;
  max-width: 132px !important;
  overflow: hidden !important;
}

.intervals-table .inline-photo-thumbs a {
  display: inline-flex !important;
  flex: 0 0 42px !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  max-width: 42px !important;
  max-height: 42px !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  border: 1px solid var(--line) !important;
  background: #f8fafc !important;
}

.intervals-table .inline-photo-thumbs img {
  display: block !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  min-height: 42px !important;
  max-width: 42px !important;
  max-height: 42px !important;
  object-fit: cover !important;
  object-position: center !important;
}

.intervals-table .photo-more {
  flex: 0 0 auto !important;
  min-width: 32px !important;
  height: 32px !important;
  max-height: 32px !important;
  padding: 0 7px !important;
}

.intervals-table tbody tr {
  height: auto !important;
}

.intervals-table tbody td {
  height: auto !important;
}

/* v51: force edit modal to cover the full viewport */
.interval-edit-modal.modal-backdrop {
  position: fixed !important;
  inset: 0 !important;
  z-index: 5000 !important;
  width: 100vw !important;
  height: 100vh !important;
  max-width: none !important;
  max-height: none !important;
  overflow-y: auto !important;
  align-items: flex-start !important;
  justify-content: center !important;
  padding: 36px 18px !important;
}

.interval-edit-modal.open {
  display: flex !important;
}

.interval-edit-modal .modal-window {
  margin: 0 auto !important;
}

/* v52: edit interval modal uses the same layout as add interval modal */
.modal-edit-form {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(220px, 1fr)) !important;
  gap: 12px !important;
}

.modal-edit-form .multi-dropdown,
.modal-edit-form .form-section-title,
.modal-edit-form .interval-photo-input,
.modal-edit-form .interval-sample-row,
.modal-edit-form .full-row {
  grid-column: 1 / -1 !important;
}

.modal-edit-form .form-section-title {
  margin-top: 4px;
}

.modal-edit-form .interval-sample-row {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 10px;
  align-items: start;
}

.modal-edit-form .interval-sample-row .sample-hint {
  grid-column: 1 / -1;
}

.modal-edit-form button.full-row {
  width: 100%;
  margin-top: 4px;
}

@media (max-width: 760px) {
  .modal-edit-form {
    grid-template-columns: 1fr !important;
  }
  .modal-edit-form .interval-sample-row {
    grid-template-columns: 1fr;
  }
}

/* v53: make edit interval modal exactly match add interval modal grid */
.modal-edit-form.interval-form {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(260px, 1fr)) !important;
  gap: 12px !important;
}

.modal-edit-form.interval-form .form-section-title,
.modal-edit-form.interval-form .interval-photo-input,
.modal-edit-form.interval-form .interval-sample-row,
.modal-edit-form.interval-form .full-row {
  grid-column: 1 / -1 !important;
}

.modal-edit-form.interval-form .multi-dropdown {
  grid-column: auto !important;
}

.modal-edit-form.interval-form .multi-dropdown[data-placeholder="Текстура"] {
  grid-column: 1 / 2 !important;
}

.modal-edit-form.interval-form .interval-sample-row {
  display: grid !important;
  grid-template-columns: minmax(260px, 1fr) minmax(260px, 1fr) !important;
  gap: 12px !important;
  align-items: start !important;
}

.modal-edit-form.interval-form .interval-sample-row .sample-hint {
  grid-column: 1 / -1 !important;
}

.modal-edit-form.interval-form button.full-row {
  width: 100% !important;
}

@media (max-width: 760px) {
  .modal-edit-form.interval-form {
    grid-template-columns: 1fr !important;
  }
  .modal-edit-form.interval-form .multi-dropdown,
  .modal-edit-form.interval-form .multi-dropdown[data-placeholder="Текстура"],
  .modal-edit-form.interval-form .interval-sample-row {
    grid-column: 1 / -1 !important;
  }
  .modal-edit-form.interval-form .interval-sample-row {
    grid-template-columns: 1fr !important;
  }
}

/* v54: force add/edit interval modal forms to use the same two-column layout */
.modal-body > form.interval-form,
.modal-body form.modal-edit-form {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(260px, 1fr)) !important;
  gap: 12px !important;
  align-items: start !important;
}

/* section titles and wide blocks */
.modal-body > form.interval-form .form-section-title,
.modal-body form.modal-edit-form .form-section-title,
.modal-body > form.interval-form .gap-warning,
.modal-body > form.interval-form .interval-photo-input,
.modal-body form.modal-edit-form .interval-photo-input,
.modal-body > form.interval-form .interval-sample-row,
.modal-body form.modal-edit-form .interval-sample-row,
.modal-body > form.interval-form button[type="submit"],
.modal-body form.modal-edit-form button[type="submit"].full-row {
  grid-column: 1 / -1 !important;
}

/* lithology dropdowns should be distributed like the add window */
.modal-body > form.interval-form .multi-dropdown,
.modal-body form.modal-edit-form .multi-dropdown {
  grid-column: auto !important;
}

.modal-body > form.interval-form .multi-dropdown[data-placeholder="Текстура"],
.modal-body form.modal-edit-form .multi-dropdown[data-placeholder="Текстура"] {
  grid-column: 1 / 2 !important;
}

/* description/status fields keep the same two-column rhythm */
.modal-body form.modal-edit-form input,
.modal-body form.modal-edit-form select,
.modal-body form.modal-edit-form details.multi-dropdown summary,
.modal-body > form.interval-form input,
.modal-body > form.interval-form select,
.modal-body > form.interval-form details.multi-dropdown summary {
  width: 100% !important;
  min-width: 0 !important;
}

/* sample block like add interval */
.modal-body form.modal-edit-form .interval-sample-row,
.modal-body > form.interval-form .interval-sample-row {
  display: grid !important;
  grid-template-columns: minmax(260px, 1fr) minmax(260px, 1fr) !important;
  gap: 12px !important;
  align-items: start !important;
}

.modal-body form.modal-edit-form .interval-sample-row .sample-hint,
.modal-body > form.interval-form .interval-sample-row .sample-hint {
  grid-column: 1 / -1 !important;
}

/* submit button full width */
.modal-body form.modal-edit-form button[type="submit"].full-row,
.modal-body > form.interval-form > button[type="submit"] {
  width: 100% !important;
}

/* Neutralize the old .edit-form one-column/legacy rules inside modal */
.modal-body .modal-edit-form.edit-form {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(260px, 1fr)) !important;
}

@media (max-width: 760px) {
  .modal-body > form.interval-form,
  .modal-body form.modal-edit-form,
  .modal-body .modal-edit-form.edit-form {
    grid-template-columns: 1fr !important;
  }

  .modal-body > form.interval-form .multi-dropdown,
  .modal-body form.modal-edit-form .multi-dropdown,
  .modal-body > form.interval-form .multi-dropdown[data-placeholder="Текстура"],
  .modal-body form.modal-edit-form .multi-dropdown[data-placeholder="Текстура"],
  .modal-body > form.interval-form .interval-sample-row,
  .modal-body form.modal-edit-form .interval-sample-row {
    grid-column: 1 / -1 !important;
  }

  .modal-body > form.interval-form .interval-sample-row,
  .modal-body form.modal-edit-form .interval-sample-row {
    grid-template-columns: 1fr !important;
  }
}

/* v56 GeoSoft office redesign */
:root {
  --bg: #f4f7fb;
  --surface: #ffffff;
  --surface-soft: #f1f5fa;
  --text: #10213a;
  --muted: #6b7a90;
  --line: #d9e4f2;
  --primary: #0b2a52;
  --primary-2: #123865;
  --green: #13a34a;
  --green-soft: #ddf8e8;
  --amber-soft: #ffe8c7;
  --shadow: 0 16px 44px rgba(16, 33, 58, .10);
  --shadow-soft: 0 8px 24px rgba(16, 33, 58, .08);
}

body {
  background:
    radial-gradient(circle at 8% 0%, rgba(19,163,74,.10), transparent 28%),
    linear-gradient(180deg, #f8fbff 0%, #eef4fa 46%, #f4f7fb 100%);
  color: var(--text);
}

/* New lightweight app header */
header.geo-header {
  position: sticky;
  top: 0;
  z-index: 50;
  margin: 14px auto 0;
  width: calc(100% - 28px);
  max-width: 1480px;
  color: var(--text);
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(217,228,242,.92);
  border-radius: 26px;
  padding: 16px 18px;
  box-shadow: var(--shadow);
  backdrop-filter: blur(14px);
}

header.geo-header::before {
  content: "";
  display: block;
  height: 7px;
  border-radius: 999px;
  margin-bottom: 14px;
  background: linear-gradient(90deg, var(--primary), var(--primary-2), var(--green));
}

header.geo-header h1 {
  color: var(--primary);
  margin-right: 200px;
  font-size: clamp(24px, 2.4vw, 34px);
}

header.geo-header p {
  color: var(--muted);
  margin-right: 200px;
}

.geo-brand {
  position: absolute;
  top: 24px;
  right: 18px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}

.geo-brand img {
  width: 146px;
  height: auto;
  max-height: 78px;
  object-fit: contain;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.geo-status {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 5px 12px;
  border-radius: 999px;
  color: #087443;
  background: rgba(223, 249, 231, .95);
  border: 1px solid rgba(19, 163, 74, .18);
  font-size: 12px;
  font-weight: 800;
  box-shadow: 0 6px 14px rgba(18,53,91,.06);
}

header.geo-header nav {
  gap: 8px;
  padding-right: 170px;
}

header.geo-header nav a {
  color: var(--primary);
  border: 1px solid var(--line);
  background: var(--surface-soft);
  font-weight: 700;
  box-shadow: none;
}

header.geo-header nav a:hover {
  background: var(--green-soft);
  border-color: rgba(19, 163, 74, .28);
  color: #087443;
}

.user-bar {
  margin-top: 12px;
  color: var(--muted);
  background: var(--surface-soft);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 10px 12px;
}

.user-bar a { color: var(--primary); font-weight: 800; }

.ghost-button {
  background: #fff !important;
  border: 1px solid var(--line) !important;
  color: var(--primary) !important;
}

/* Cards and layout */
.grid, .page {
  padding-top: 22px;
}

.card, .quick-actions, .hero-panel {
  border-radius: 26px;
  border: 1px solid rgba(217,228,242,.94);
  box-shadow: var(--shadow-soft);
}

.card {
  background: rgba(255,255,255,.96);
}

.card h2, .card h3 {
  color: var(--primary);
}

.hero-panel {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 92% 18%, rgba(19,163,74,.28), transparent 25%),
    linear-gradient(135deg, var(--primary), var(--primary-2));
}

.hero-panel::after {
  content: "";
  position: absolute;
  left: 26px;
  right: 26px;
  top: 24px;
  height: 6px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(255,255,255,.40), rgba(19,163,74,.75));
}

.stat-card {
  border-radius: 18px;
}

.action-card {
  border-radius: 18px;
  background: #f6f9fd;
}

.action-icon {
  color: var(--primary);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  min-width: 38px;
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Tables */
.table-wrap, .worksites-table-wrap {
  border-radius: 22px;
  border: 1px solid var(--line);
  background: #fff;
  box-shadow: var(--shadow-soft);
}

table {
  border-collapse: separate;
  border-spacing: 0;
}

th {
  color: var(--primary);
  background: #f4f8fc;
  border-bottom: 1px solid var(--line);
}

td {
  border-bottom: 1px solid #edf2f7;
}

tbody tr:hover {
  background: #f7fbff;
}

.sort-button {
  color: var(--primary) !important;
  background: transparent !important;
}

/* Forms and buttons */
input, select, textarea, .multi-dropdown summary {
  border-radius: 16px !important;
  border-color: #cfdbea !important;
  background: #fff !important;
}

button, .button-link {
  border-radius: 16px;
  background: var(--primary);
}

button:hover, .button-link:hover {
  background: var(--primary-2);
}

.button-link.secondary, .secondary-button {
  background: #f6f8fb !important;
  color: var(--primary) !important;
  border: 1px solid var(--line) !important;
}

.button-link.secondary:hover, .secondary-button:hover {
  background: var(--green-soft) !important;
  color: #087443 !important;
  border-color: rgba(19,163,74,.32) !important;
}

button.danger {
  background: #fff1f1 !important;
  color: var(--danger) !important;
  border: 1px solid #fecaca !important;
}

/* GeoSoft login */
.login-body {
  background:
    linear-gradient(180deg, rgba(244,247,251,1) 0%, rgba(244,247,251,.92) 46%, rgba(244,247,251,.15) 72%),
    url("/static/login_valley.jpg"),
    linear-gradient(135deg, #e7eef8, #f6fbff);
  background-size: cover;
  background-position: center bottom;
}

.login-page {
  min-height: 100vh;
  display: grid;
  place-items: start center;
  padding-top: 62px;
}

.geosoft-login-card {
  width: min(420px, calc(100vw - 32px));
  border-radius: 28px;
  box-shadow: 0 18px 48px rgba(16,33,58,.18);
  border: 1px solid rgba(217,228,242,.95);
}

.login-logo-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 16px;
}

.login-logo-wrap img {
  width: 190px;
  max-height: 120px;
  object-fit: contain;
}

.login-card h1 {
  color: var(--primary);
  letter-spacing: -.03em;
}

.login-form {
  grid-template-columns: 1fr;
}

.login-form label {
  color: var(--primary);
  font-weight: 700;
}

.login-form button {
  height: 48px;
}

/* Modal/overlay style alignment */
.modal-window, .modal-card {
  border-radius: 28px !important;
  border: 1px solid var(--line) !important;
  box-shadow: 0 22px 70px rgba(16,33,58,.22) !important;
}

.modal-window::before, .modal-card::before {
  content: "";
  display: block;
  height: 7px;
  border-radius: 999px;
  margin: 0 0 14px;
  background: linear-gradient(90deg, var(--primary), var(--primary-2), var(--green));
}

/* Details / metric blocks */
.details-grid > div, .stat-card, .filter-panel {
  border-radius: 20px;
  background: #f8fbff;
  border: 1px solid var(--line);
}

.filter-panel {
  box-shadow: none;
}

.worksites-summary-table .site-title,
.worksites-summary-table .site-link,
.well-link {
  color: var(--primary);
  font-weight: 850;
}

.worksites-summary-table .fact,
.metric-card.fact {
  background: var(--green-soft);
}

.notice, .gap-warning {
  border-radius: 16px !important;
}

@media (max-width: 860px) {
  header.geo-header {
    width: calc(100% - 18px);
    margin-top: 9px;
    padding: 14px;
  }

  .geo-brand {
    position: static;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
  }

  header.geo-header h1,
  header.geo-header p,
  header.geo-header nav {
    margin-right: 0;
    padding-right: 0;
  }

  .geo-brand img { width: 86px; height: 42px; }
  .dashboard-hero { grid-template-columns: 1fr; }
}



/* v57 Login valley background */
.login-body {
  min-height: 100vh;
  background:
    linear-gradient(
      180deg,
      rgba(244,247,251,1) 0%,
      rgba(244,247,251,.98) 18%,
      rgba(244,247,251,.94) 38%,
      rgba(244,247,251,.82) 54%,
      rgba(244,247,251,.58) 66%,
      rgba(244,247,251,.18) 76%,
      rgba(244,247,251,0) 86%
    ),
    url("/static/login_valley.jpg");
  background-repeat: no-repeat, no-repeat;
  background-position: center top, center bottom;
  background-size: cover, cover;
  background-attachment: fixed, fixed;
}

.login-page {
  min-height: 100vh;
  display: grid;
  place-items: start center;
  padding: 56px 16px 120px;
}

.geosoft-login-card {
  position: relative;
  z-index: 2;
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(10px);
}

.geosoft-login-card::after {
  content: "";
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: -18px;
  height: 36px;
  border-radius: 999px;
  background: radial-gradient(ellipse at center, rgba(16,33,58,.12), rgba(16,33,58,0) 72%);
  filter: blur(6px);
  z-index: -1;
}

@media (max-width: 720px) {
  .login-body {
    background-size: cover, auto 48vh;
    background-position: center top, center bottom;
    background-attachment: scroll, scroll;
  }
  .login-page {
    padding-top: 26px;
    padding-bottom: 80px;
  }
}


/* --- GeoSoft office style refinement v58 --- */
:root {
  --geo-green: #1f9d63;
  --geo-green-soft: #ecfaf3;
  --geo-sand: #f4c97a;
}
body {
  background:
    radial-gradient(circle at top left, rgba(31,157,99,.08), transparent 28%),
    radial-gradient(circle at top right, rgba(18,53,91,.08), transparent 24%),
    linear-gradient(180deg, #f4faf8 0%, #eef5fb 32%, #f7fafc 100%);
}
.page, .grid { max-width: 1280px; }
.geo-header {
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(205,219,232,.92);
  box-shadow: 0 18px 36px rgba(18,53,91,.10);
}
.geo-header nav { gap: 8px; }
.geo-header nav a {
  background: #f7fbff;
  border: 1px solid #dbe5f0;
}
.geo-header nav a:hover { border-color: #aec4dd; }
.user-bar {
  background: #f8fbff;
  border: 1px solid #e1eaf4;
  border-radius: 16px;
  padding: 8px 10px;
}
.card {
  box-shadow: 0 14px 30px rgba(18,53,91,.08);
}
.section-header {
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid #ecf1f6;
}
.compact-form {
  background: linear-gradient(180deg, #fbfdff, #f7fafc);
  border: 1px solid #e4ebf4;
  border-radius: 20px;
  padding: 14px;
  gap: 10px;
}
.compact-form input,
.compact-form select,
.compact-form button,
.catalog-form input,
.catalog-form select,
.table-form input,
.table-form select,
.inline-edit-form input,
.inline-edit-form select {
  min-height: 46px;
}
.compact-form button,
.catalog-form button,
.table-form button,
.inline-edit-form button,
button,
.button-link {
  box-shadow: 0 10px 20px rgba(18,53,91,.12);
}
.button-link.secondary {
  background: #f7fbff;
  color: var(--primary);
  border: 1px solid #d6e3f1;
  box-shadow: none;
}
.button-link.secondary:hover {
  border-color: #aac1da;
  background: #eef5fc;
}
.worksites-table-wrap, .table-wrap {
  border-radius: 22px;
  overflow: auto;
  border: 1px solid #dde7f1;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}
.worksites-summary-table, .interactive-table {
  min-width: 1040px;
}
.worksites-summary-table tbody tr:hover td,
.interactive-table tbody tr:hover td {
  background: #f8fbff;
}
.site-name-cell a {
  color: var(--primary);
  text-decoration: none;
}
.site-name-cell span {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: 13px;
}
.summary-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: 12px;
  margin-bottom: 18px;
}
.summary-strip.three { grid-template-columns: repeat(3, minmax(180px, 1fr)); }
.summary-mini {
  background: linear-gradient(180deg, #fbfdff, #f4f8fc);
  border: 1px solid #dfe8f2;
  border-radius: 20px;
  padding: 16px 18px;
  box-shadow: var(--shadow-soft);
}
.summary-mini.plan { background: linear-gradient(180deg, #fbfcff, #f2f6fd); }
.summary-mini.fact { background: linear-gradient(180deg, #f7fffb, #eff9f3); }
.summary-mini.info { background: linear-gradient(180deg, #f9fbfd, #f3f7fb); }
.summary-mini small {
  display: block;
  color: var(--muted);
  margin-bottom: 6px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.summary-mini b {
  display: block;
  color: var(--text);
  font-size: 28px;
  line-height: 1.05;
  margin-bottom: 4px;
}
.summary-mini span {
  color: #516173;
  font-size: 14px;
  line-height: 1.35;
}
.editor-shell {
  display: grid;
  gap: 14px;
}
.form-caption {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  border-radius: 999px;
  background: #eff7ff;
  color: var(--primary);
  border: 1px solid #d9e7f4;
  font-size: 13px;
  font-weight: 700;
}
.form-caption.green {
  background: var(--geo-green-soft);
  color: #147a4a;
  border-color: #c6ebd8;
}
.page-note {
  margin-top: -6px;
  margin-bottom: 14px;
  color: var(--muted);
}
.title-with-chip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.type-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 12px;
  border-radius: 999px;
  background: var(--geo-green-soft);
  color: #137847;
  border: 1px solid #c3ead5;
  font-weight: 800;
  font-size: 13px;
}
.hero-inline-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.form-divider {
  height: 1px;
  background: #e8eef5;
  margin: 2px 0;
}
.actions-cell-plain form button,
.actions-cell-plain a,
.actions-cell-plain button {
  padding: 7px 10px;
  font-size: 12px;
  border-radius: 10px;
}
.login-landscape {
  box-shadow: 0 -24px 40px rgba(255,255,255,.95) inset;
}
@media (max-width: 1100px) {
  .summary-strip, .summary-strip.three { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
}
@media (max-width: 760px) {
  .summary-strip, .summary-strip.three { grid-template-columns: 1fr; }
}



/* v61 GeoSoft dialogs and premium well card */
.hidden-form { display: none !important; }

.button-link.complete-well-trigger,
.complete-well-trigger {
  background: linear-gradient(135deg, #0b2a52, #123865);
  color: #fff;
  border: 0;
  box-shadow: 0 12px 24px rgba(18,53,91,.16);
}

.button-link.complete-well-trigger:hover,
.complete-well-trigger:hover {
  background: linear-gradient(135deg, #123865, #0b2a52);
}

.well-status-dashboard {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  gap: 12px;
  margin: 18px 0 4px;
}

.well-status-item {
  border: 1px solid #dfe8f2;
  background: linear-gradient(180deg, #fbfdff, #f4f8fc);
  border-radius: 20px;
  padding: 14px 16px;
}

.well-status-item small {
  display: block;
  color: var(--muted);
  text-transform: uppercase;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .05em;
  margin-bottom: 6px;
}

.well-status-item b {
  display: block;
  color: var(--primary);
  font-size: 18px;
}

.well-status-item.done {
  border-color: rgba(19,163,74,.24);
  background: linear-gradient(180deg, #f8fffb, #eafbf2);
}

.well-status-item.draft {
  border-color: rgba(244,201,122,.38);
  background: linear-gradient(180deg, #fffdf8, #fff6e6);
}

.well-status-item.sync {
  border-color: #d7e6f6;
  background: linear-gradient(180deg, #fbfdff, #eef6ff);
}

.geosoft-status-form {
  background: linear-gradient(180deg, #fbfdff, #f7fafc);
  border: 1px solid #e1eaf4;
  border-radius: 22px;
  padding: 16px;
}

.geo-dialog-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(16,33,58,.48);
  backdrop-filter: blur(7px);
}

.geo-dialog-backdrop.show {
  display: flex;
}

.geo-dialog {
  width: min(460px, 100%);
  background: rgba(255,255,255,.98);
  border: 1px solid #dfe8f2;
  border-radius: 28px;
  padding: 18px;
  box-shadow: 0 28px 80px rgba(16,33,58,.28);
}

.geo-dialog-accent {
  height: 7px;
  border-radius: 999px;
  margin-bottom: 16px;
  background: linear-gradient(90deg, var(--primary), var(--primary-2), var(--green));
}

.geo-dialog-accent.danger {
  background: linear-gradient(90deg, #7f1d1d, #dc2626, #f97316);
}

.geo-dialog h2 {
  margin: 0 0 10px;
  color: var(--primary);
  font-size: 24px;
  letter-spacing: -.03em;
}

.geo-dialog p {
  margin: 0;
  color: var(--muted);
  line-height: 1.55;
}

.geo-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px;
}

.geo-dialog-submit {
  background: var(--green);
  color: white;
}

.geo-dialog-submit.danger {
  background: #b42318;
  color: white;
}

.geo-dialog-submit.danger:hover {
  background: #991b1b;
}

@media (max-width: 760px) {
  .well-status-dashboard {
    grid-template-columns: 1fr;
  }
  .geo-dialog-actions {
    flex-direction: column-reverse;
  }
  .geo-dialog-actions button {
    width: 100%;
  }
}


/* GeoSoft v65 dashboard + office map */
.office-dashboard {
  display: grid;
  grid-template-columns: repeat(3, minmax(130px, 1fr));
  gap: 12px;
  margin-top: 22px;
}
.dash-card {
  min-height: 104px;
  padding: 14px;
  border-radius: 18px;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.20);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
.dash-card.accent {
  background: linear-gradient(135deg, rgba(22,163,74,.26), rgba(255,255,255,.12));
  border-color: rgba(34,197,94,.42);
}
.dash-card small {
  display: block;
  color: rgba(255,255,255,.72);
  font-weight: 700;
}
.dash-card b {
  display: block;
  margin-top: 5px;
  font-size: 30px;
  line-height: 1;
  color: #fff;
}
.dash-card span {
  display: block;
  margin-top: 7px;
  color: rgba(255,255,255,.78);
  font-size: 13px;
}
.dashboard-progress {
  margin-top: 18px;
  padding: 14px;
  border-radius: 18px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.16);
}
.dashboard-progress p {
  margin: 8px 0 0;
  color: rgba(255,255,255,.82);
}
.progress-line {
  height: 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  overflow: hidden;
}
.progress-line span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #22c55e, #14b8a6);
}
.office-map {
  width: 100%;
  min-height: 460px;
  border-radius: 22px;
  border: 1px solid #d9e2ef;
  overflow: hidden;
  background: #eef3f8;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}
.office-map.empty-map::after {
  content: "Нет скважин с координатами";
  display: grid;
  place-items: center;
  height: 460px;
  color: var(--muted);
  font-weight: 700;
}
.map-counter {
  padding: 9px 13px;
  border-radius: 999px;
  background: #ecfdf5;
  color: #047857;
  font-weight: 800;
  border: 1px solid #bbf7d0;
}
.map-legend {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  align-items: center;
  margin-top: 12px;
  color: var(--muted);
  font-size: 14px;
}
.legend-dot {
  display: inline-block;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  margin-right: 6px;
  box-shadow: 0 0 0 2px #fff, 0 0 0 3px #dbe5f1;
  vertical-align: -1px;
}
.legend-dot.project { background: #f59e0b; }
.legend-dot.completed { background: #059669; }
.legend-dot.other { background: #2563eb; }
.map-popup {
  min-width: 190px;
  line-height: 1.45;
}
.map-popup a {
  display: inline-block;
  margin-top: 6px;
  color: #12355b;
  font-weight: 800;
}
.leaflet-container {
  font-family: inherit;
}
@media (max-width: 920px) {
  .office-dashboard { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
  .office-map { min-height: 360px; }
}
@media (max-width: 620px) {
  .office-dashboard { grid-template-columns: 1fr; }
}


/* GeoSoft v66 standalone map page */
.full-page-map {
  min-height: 620px;
}
.map-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: 12px;
  margin: 8px 0 18px;
}
.map-summary-card {
  border-radius: 18px;
  border: 1px solid var(--line);
  background: linear-gradient(180deg, #ffffff, #f7fbff);
  padding: 15px;
  box-shadow: var(--shadow-soft);
}
.map-summary-card small {
  display: block;
  color: var(--muted);
  font-weight: 700;
}
.map-summary-card b {
  display: block;
  margin-top: 5px;
  color: var(--primary);
  font-size: 30px;
  line-height: 1;
}
@media (max-width: 900px) {
  .map-summary-grid { grid-template-columns: repeat(2, minmax(140px, 1fr)); }
  .full-page-map { min-height: 460px; }
}
@media (max-width: 560px) {
  .map-summary-grid { grid-template-columns: 1fr; }
}


/* GeoSoft v67 L_code */
.lcode-form { grid-template-columns: repeat(4, minmax(160px, 1fr)); align-items: start; }
.lcode-form textarea { min-height: 74px; resize: vertical; }
.lcode-form textarea[name="driller_hint"], .lcode-form textarea[name="geologist_description"] { grid-column: span 2; }
.lcode-table td { min-width: 120px; }
.row-editor summary { cursor: pointer; color: var(--primary); font-weight: 800; padding: 8px 0; }
.lcode-edit-form { margin-top: 10px; display: grid; grid-template-columns: repeat(2, minmax(150px, 1fr)); gap: 8px; min-width: 520px; }
.lcode-edit-form textarea { min-height: 72px; resize: vertical; }
.pill { display: inline-flex; align-items: center; border-radius: 999px; padding: 5px 9px; font-size: 12px; font-weight: 800; }
.pill.success { background: #ecfdf5; color: #047857; border: 1px solid #bbf7d0; }
.pill.muted-pill { background: #f1f5f9; color: #64748b; border: 1px solid #e2e8f0; }
@media (max-width: 980px) { .lcode-form { grid-template-columns: repeat(2, minmax(160px, 1fr)); } }
@media (max-width: 620px) { .lcode-form { grid-template-columns: 1fr; } .lcode-form textarea[name="driller_hint"], .lcode-form textarea[name="geologist_description"] { grid-column: span 1; } }


/* GeoSoft v68 interval L_code */
.lcode-picker {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(240px, 1fr);
  gap: 10px;
  align-items: center;
  padding: 12px;
  border-radius: 18px;
  background: linear-gradient(180deg, #f8fbff, #eef7ff);
  border: 1px solid #d9e9fb;
}
.lcode-picker .lcode-hint {
  margin: 0;
}
.lcode-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  padding: 5px 8px;
  border-radius: 999px;
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #bbf7d0;
  font-weight: 800;
  font-size: 12px;
}
@media (max-width: 720px) {
  .lcode-picker { grid-template-columns: 1fr; }
}


/* GeoSoft v69 samples */
.sample-form-v2 {
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  align-items: start;
}
.sample-form-v2 textarea {
  min-height: 72px;
  resize: vertical;
  grid-column: span 2;
}
.samples-table td {
  min-width: 120px;
}
.sample-edit-form {
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(2, minmax(150px, 1fr));
  gap: 8px;
  min-width: 560px;
}
.sample-edit-form textarea {
  min-height: 72px;
  resize: vertical;
  grid-column: span 2;
}
@media (max-width: 920px) {
  .sample-form-v2 { grid-template-columns: repeat(2, minmax(160px, 1fr)); }
}
@media (max-width: 620px) {
  .sample-form-v2, .sample-edit-form { grid-template-columns: 1fr; }
  .sample-form-v2 textarea, .sample-edit-form textarea { grid-column: span 1; }
}


/* GeoSoft v70 sample processing */
.processing-form {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  align-items: start;
}
.processing-form textarea {
  min-height: 74px;
  resize: vertical;
}
.processing-table td {
  min-width: 130px;
}
.processing-edit-form {
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(4, minmax(130px, 1fr));
  gap: 8px;
  min-width: 780px;
}
.processing-edit-form textarea {
  min-height: 72px;
  resize: vertical;
  grid-column: span 2;
}
@media (max-width: 1020px) {
  .processing-form { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
  .processing-edit-form { grid-template-columns: repeat(2, minmax(150px, 1fr)); min-width: 560px; }
}
@media (max-width: 620px) {
  .processing-form, .processing-edit-form { grid-template-columns: 1fr; }
  .processing-edit-form textarea { grid-column: span 1; }
}


/* GeoSoft v71 compact quick actions */
.quick-actions {
  padding: 30px;
}
.quick-actions .action-grid {
  gap: 8px;
}
.quick-actions .action-card {
  min-height: 58px;
  padding: 9px 11px;
  border-radius: 14px;
}
.quick-actions .action-card b {
  font-size: 14px;
  line-height: 1.15;
}
.quick-actions .action-card span {
  font-size: 12px;
  line-height: 1.2;
}
.quick-actions .action-icon {
  width: 34px;
  height: 34px;
  min-width: 34px;
  font-size: 18px;
  border-radius: 12px;
}
.quick-actions h2 {
  margin-bottom: 12px;
}


/* GeoSoft v72 import columns */
.import-columns-card {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 16px;
  padding: 14px;
  border-radius: 18px;
  background: linear-gradient(180deg, #f8fbff, #eef7ff);
  border: 1px solid #d9e9fb;
}
.import-columns-card b {
  width: 100%;
  color: var(--primary);
}
.import-columns-card span {
  display: inline-flex;
  align-items: center;
  padding: 7px 10px;
  border-radius: 999px;
  background: #fff;
  border: 1px solid #dbe6f4;
  color: var(--text);
  font-weight: 700;
  font-size: 13px;
}


/* GeoSoft v73 focused well map */
.legend-dot.focus { background: #dc2626; }
.map-button { white-space: nowrap; }

/* v84: compact create buttons with modal forms */
.compact-create-row {
  margin: 0 0 18px;
  justify-content: flex-start;
}
.compact-create-row .button-link {
  width: auto;
  min-width: 170px;
}
.entity-modal-window {
  width: min(760px, calc(100vw - 36px));
}
.modal-entity-form {
  margin-bottom: 0;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
}
.modal-entity-form button {
  grid-column: 1 / -1;
}
@media (max-width: 760px) {
  .modal-entity-form { grid-template-columns: 1fr; }
  .compact-create-row .button-link { width: 100%; }
}

.entity-card-actions{display:flex;gap:10px;justify-content:flex-end;margin-bottom:12px}
.icon-action-button{
  width:42px;
  height:42px;
  border-radius:12px;
  border:1px solid #bfd0e8;
  background:#ffffff;
  color:var(--primary);
  font-size:18px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 6px 14px rgba(13,45,82,.08);
}
.icon-action-button:hover{
  background:var(--primary);
  border-color:var(--primary);
  color:#fff;
}
.icon-action-button.danger{
  color:#d92d2d;
  border-color:#f1c0c0;
  background:#fff7f7;
}
.icon-action-button.danger:hover{
  background:#d92d2d;
  border-color:#d92d2d;
  color:#fff;
}

/* v87: reliable SVG action icons and modal action rows */
.icon-action-button svg{width:20px;height:20px;display:block;margin:auto;fill:currentColor;pointer-events:none}.icon-action-button.small{width:34px;height:34px;border-radius:10px}.row-actions{display:flex;gap:8px;align-items:center;justify-content:center}.modal-actions-row{justify-content:flex-end;margin-top:14px}.modal-entity-form label{font-weight:700;color:#17345f;font-size:13px;margin-top:8px}.modal-entity-form textarea{width:100%;border:1px solid #dbe5f2;border-radius:12px;padding:10px 12px;font:inherit;resize:vertical}.icon-action-button:hover{box-shadow:0 8px 18px rgba(13,45,82,.16);transform:translateY(-1px)}


/* =========================================================
   GeoSoft Variant A redesign: professional sidebar layout
   Login background image is intentionally untouched.
   ========================================================= */
:root {
  --gs-sidebar: #082544;
  --gs-sidebar-2: #0b3560;
  --gs-accent: #16a56d;
  --gs-accent-soft: #e9fbf2;
  --gs-blue: #0b3a70;
  --gs-blue-2: #155a9c;
  --gs-page: #f3f7fb;
  --gs-card: rgba(255,255,255,.96);
  --gs-border: #dce7f3;
  --gs-text: #0d2544;
  --gs-muted: #6b7d94;
}

body.app-shell {
  min-height: 100vh;
  background:
    radial-gradient(circle at 85% 4%, rgba(22,165,109,.13), transparent 28%),
    radial-gradient(circle at 8% 12%, rgba(11,58,112,.11), transparent 30%),
    linear-gradient(180deg, #f8fbff 0%, var(--gs-page) 45%, #eef4f9 100%);
  color: var(--gs-text);
  padding-left: 292px;
}

.geo-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: 292px;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  padding: 22px 16px;
  color: #fff;
  background:
    radial-gradient(circle at 18% 0%, rgba(22,165,109,.35), transparent 31%),
    linear-gradient(180deg, var(--gs-sidebar) 0%, var(--gs-sidebar-2) 58%, #06213d 100%);
  box-shadow: 18px 0 48px rgba(8,37,68,.18);
}

.sidebar-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 76px;
  padding: 8px 10px 18px;
  text-decoration: none;
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.sidebar-brand img { width: 92px; height: auto; object-fit: contain; filter: drop-shadow(0 8px 14px rgba(0,0,0,.14)); }
.sidebar-brand span { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.70); font-weight: 800; }
.sidebar-nav { display: grid; gap: 8px; margin-top: 18px; }
.sidebar-nav a {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 46px;
  padding: 11px 13px;
  border-radius: 16px;
  color: rgba(255,255,255,.82);
  text-decoration: none;
  font-weight: 800;
  letter-spacing: -.01em;
  border: 1px solid transparent;
  background: transparent;
}
.sidebar-nav a span { width: 24px; text-align: center; opacity: .95; }
.sidebar-nav a:hover { background: rgba(255,255,255,.10); color: #fff; transform: translateX(2px); }
.sidebar-nav a.active {
  background: linear-gradient(135deg, rgba(22,165,109,.95), rgba(20,122,180,.75));
  color: #fff;
  border-color: rgba(255,255,255,.20);
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
}
.sidebar-footer {
  margin-top: auto;
  padding: 14px 10px 4px;
  display: grid;
  gap: 8px;
  color: rgba(255,255,255,.72);
}
.sidebar-online {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  padding: 7px 11px;
  border-radius: 999px;
  background: rgba(22,165,109,.18);
  color: #baf7d3;
  font-weight: 900;
  font-size: 12px;
}

body.app-shell header.geo-header,
body.app-shell header {
  position: sticky;
  top: 16px;
  z-index: 40;
  margin: 18px 24px 0;
  padding: 18px 24px;
  border-radius: 24px;
  color: var(--gs-text);
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(220,231,243,.95);
  box-shadow: 0 16px 45px rgba(13,37,68,.08);
  backdrop-filter: blur(16px);
}
body.app-shell header::before {
  content: "";
  display: block;
  height: 5px;
  margin: -18px -24px 14px;
  border-radius: 24px 24px 0 0;
  background: linear-gradient(90deg, var(--gs-blue), var(--gs-accent));
}
body.app-shell header h1 { color: var(--gs-text); font-size: 26px; margin: 0 0 4px; }
body.app-shell header p { color: var(--gs-muted); margin: 0 0 12px; }
body.app-shell header nav { display: none; }
body.app-shell .geo-brand { float: right; display: flex; align-items: center; gap: 12px; }
body.app-shell .geo-brand img { width: 116px; height: auto; }
body.app-shell .geo-status { background: #dcfce7; color: #067647; border: 1px solid #bbf7d0; padding: 6px 10px; border-radius: 999px; font-size: 12px; font-weight: 900; }
body.app-shell .user-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  margin-top: 12px;
  border-radius: 16px;
  background: #f6f9fd;
  border: 1px solid var(--gs-border);
  color: var(--gs-muted);
}
body.app-shell .user-bar a { color: var(--gs-blue); font-weight: 900; text-decoration: none; }
body.app-shell .user-bar form { margin: 0; display: inline; }

body.app-shell .grid,
body.app-shell .page {
  max-width: none;
  width: auto;
  margin: 0;
  padding: 26px 24px 36px;
}
body.app-shell .card,
body.app-shell .quick-actions,
body.app-shell .catalog-layout > aside,
body.app-shell .catalog-layout > section,
body.app-shell .filters-panel,
body.app-shell .import-box,
body.app-shell .modal-window {
  border: 1px solid rgba(220,231,243,.95);
  background: var(--gs-card);
  border-radius: 24px;
  box-shadow: 0 18px 50px rgba(13,37,68,.07);
}
body.app-shell .hero-panel {
  background:
    radial-gradient(circle at 86% 12%, rgba(22,165,109,.35), transparent 24%),
    linear-gradient(135deg, #092c52 0%, #0b3a70 52%, #167a89 100%);
  border-radius: 30px;
  box-shadow: 0 24px 60px rgba(9,44,82,.18);
}
body.app-shell .quick-actions { border-radius: 30px; }
body.app-shell .action-card {
  border-radius: 18px;
  background: linear-gradient(180deg, #fff, #f7fbff);
  border-color: var(--gs-border);
}
body.app-shell .action-card:hover { border-color: #8fb7df; box-shadow: 0 14px 35px rgba(13,37,68,.10); }
body.app-shell .action-icon { color: var(--gs-accent); font-weight: 900; }
body.app-shell .dash-card,
body.app-shell .stat-card {
  border-radius: 20px;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.20);
}

body.app-shell input,
body.app-shell select,
body.app-shell textarea,
body.app-shell button,
body.app-shell .button-link {
  border-radius: 14px;
}
body.app-shell button,
body.app-shell .button-link,
body.app-shell .row-button {
  background: var(--gs-blue);
  box-shadow: 0 10px 24px rgba(11,58,112,.16);
}
body.app-shell button:hover,
body.app-shell .button-link:hover,
body.app-shell .row-button:hover { background: var(--gs-blue-2); }
body.app-shell button.danger { background: #fff1f2; color: #c02626; border: 1px solid #fecdd3; box-shadow: none; }
body.app-shell button.danger:hover { background: #c02626; color: #fff; }
body.app-shell .ghost-button { background: #fff; color: var(--gs-blue); border: 1px solid var(--gs-border); box-shadow: none; }

body.app-shell .table-wrap,
body.app-shell .worksites-table-wrap {
  border-radius: 22px;
  border-color: var(--gs-border);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.8);
}
body.app-shell thead th {
  background: #f4f8fc;
  color: #24415f;
  font-weight: 900;
  text-transform: none;
}
body.app-shell th,
body.app-shell td { border-bottom-color: #e8eff7; }
body.app-shell tbody tr:hover { background: #f0f8ff; }

/* Geological tags */
body.app-shell td, body.app-shell .catalog-row, body.app-shell .details-grid div { --tag-radius: 9px; }
body.app-shell .lith-code,
body.app-shell .code-badge,
body.app-shell td b.code,
body.app-shell td .badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 4px 9px;
  border-radius: 9px;
  font-weight: 900;
  letter-spacing: .02em;
}
body.app-shell td:has(> .row-button) .row-button { border-radius: 12px; }
body.app-shell .status-badge,
body.app-shell .badge,
body.app-shell .pill,
body.app-shell .tag {
  border-radius: 999px;
  font-weight: 900;
}

body.app-shell .tabs { border: 0; padding: 0; gap: 8px; }
body.app-shell .tab {
  background: #edf5fd;
  border: 1px solid var(--gs-border);
  color: var(--gs-blue);
}
body.app-shell .tab.active { background: linear-gradient(135deg, var(--gs-blue), var(--gs-blue-2)); color: #fff; border-color: transparent; }
body.app-shell .section-header h2,
body.app-shell .card h2 { color: var(--gs-text); font-size: 24px; }
body.app-shell .muted { color: var(--gs-muted); }

body.app-shell .catalog-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 20px; align-items: start; }
body.app-shell .catalog-menu a,
body.app-shell .catalog-tab,
body.app-shell .catalog-sidebar a {
  border-radius: 16px !important;
  border: 1px solid var(--gs-border);
}
body.app-shell .catalog-menu a.active,
body.app-shell .catalog-tab.active,
body.app-shell .catalog-sidebar a.active {
  background: linear-gradient(135deg, var(--gs-blue), var(--gs-accent)) !important;
  color: #fff !important;
  box-shadow: 0 14px 28px rgba(11,58,112,.16);
}

/* Preserve login screen background. Only polish card controls without replacing image. */
body.login-body .login-card {
  backdrop-filter: blur(10px);
  background: rgba(255,255,255,.90);
  border: 1px solid rgba(255,255,255,.55);
  box-shadow: 0 24px 70px rgba(8,37,68,.18);
}

@media (max-width: 1100px) {
  body.app-shell { padding-left: 0; }
  .geo-sidebar { position: static; width: auto; min-height: auto; border-radius: 0 0 24px 24px; }
  .sidebar-brand { justify-content: center; }
  .sidebar-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sidebar-footer { display: none; }
  body.app-shell header.geo-header, body.app-shell header { margin: 14px 14px 0; }
  body.app-shell .grid, body.app-shell .page { padding: 18px 14px 30px; }
  body.app-shell .dashboard-hero, body.app-shell .catalog-layout { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .sidebar-nav { grid-template-columns: 1fr; }
  body.app-shell .geo-brand { float: none; margin-bottom: 10px; }
  body.app-shell .user-bar { flex-wrap: wrap; }
}


/* === GeoSoft Variant A v101: deeper professional redesign === */
:root{--geo-navy:#082f5f;--geo-navy-2:#0d3f78;--geo-teal:#10a88a;--geo-bg:#eef7f9;--geo-line:#d8e6f2;--geo-text:#102a4c;--geo-muted:#6b7d95;}
body.app-shell{display:block;margin:0;padding-left:286px;background:radial-gradient(circle at 80px 40px,rgba(16,168,138,.18),transparent 260px),linear-gradient(135deg,#f6fbff 0%,#eef8f4 42%,#f7fbff 100%);color:var(--geo-text);}
.geo-sidebar{width:286px;background:linear-gradient(180deg,#073764 0%,#062b55 50%,#051f3f 100%);box-shadow:18px 0 44px rgba(3,25,52,.18);}
.sidebar-brand{height:112px;padding:22px 26px;border-bottom:1px solid rgba(255,255,255,.12);}
.sidebar-brand img{height:60px;width:auto;filter:drop-shadow(0 10px 22px rgba(0,0,0,.16));}.sidebar-brand span{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#dff7f1;}
.sidebar-nav{padding:22px 16px;gap:8px}.sidebar-nav a{height:48px;border-radius:15px;padding:0 18px;color:#d8e9f7;font-size:15px;font-weight:850;border:1px solid transparent}.sidebar-nav a span{width:24px;opacity:.9}.sidebar-nav a:hover{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.11)}.sidebar-nav a.active{background:linear-gradient(135deg,#22b78d,#1780ad);color:#fff;border-color:rgba(255,255,255,.20);box-shadow:0 14px 26px rgba(0,0,0,.18)}
.sidebar-footer{padding:0 22px 24px}.sidebar-online{background:#e4fff5;color:#067a52;border-radius:999px;padding:7px 12px;font-weight:900}.sidebar-footer small{color:#bed3e6;margin-top:10px;display:block}
.geo-header{position:relative;top:auto;z-index:2;margin:18px auto 24px;max-width:1520px;min-height:92px;padding:22px 300px 20px 24px;border:1px solid var(--geo-line);border-top:5px solid var(--geo-teal);border-radius:0 0 24px 24px;background:rgba(255,255,255,.92);box-shadow:0 24px 52px rgba(13,63,120,.10);color:var(--geo-text);backdrop-filter:blur(16px)}
.geo-header h1{color:var(--geo-text);font-size:24px;margin:0 0 6px}.geo-header p{color:var(--geo-muted);margin:0}.geo-header nav{display:none}.geo-header .geo-brand{position:absolute;right:34px;top:22px;text-align:center}.geo-header .geo-brand img{height:64px;width:auto}.geo-status{display:inline-block;margin-top:4px;background:#d9ffe8;color:#067a52;border:1px solid #b7f5cf;border-radius:999px;font-size:12px;font-weight:900;padding:5px 14px}.user-bar{margin-top:16px;display:flex;align-items:center;gap:13px;padding:12px 14px;border-radius:16px;background:#f6f9fd;border:1px solid var(--geo-line)}.user-bar span{color:var(--geo-muted)}.user-bar a{color:#083566;font-weight:900;text-decoration:none}.user-bar form{margin:0;display:block}.ghost-button{border:1px solid #d6e4f0!important;background:#fff!important;color:#082f5f!important;border-radius:14px!important;font-weight:900!important;box-shadow:0 5px 13px rgba(8,47,95,.06)}
.page,.grid{max-width:1520px;padding:0 24px 42px;margin:0 auto}.card{background:rgba(255,255,255,.94);border:1px solid var(--geo-line);border-radius:26px;box-shadow:0 22px 46px rgba(13,63,120,.09)}
.catalog-layout{display:grid!important;grid-template-columns:260px minmax(0,1fr)360px!important;gap:22px!important;align-items:start}.catalog-sidebar{border-radius:24px!important;padding:16px!important}.catalog-side-title{font-size:18px!important}.catalog-nav-item{border-radius:18px!important;padding:16px 14px!important;background:#f7fbff!important}.catalog-nav-item.active{background:linear-gradient(135deg,#0b3c75,#12a77f)!important;box-shadow:0 18px 36px rgba(8,47,95,.20)!important}.catalog-panel{padding:0!important;overflow:hidden}.catalog-toolbar{padding:28px 28px 10px;margin-bottom:0!important}.catalog-title h2{font-size:28px!important}.catalog-actions .button-like,.catalog-actions button{border-radius:12px!important;height:42px}.button-like,button{background:#082f5f;color:#fff}.geo-stat-strip{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;padding:10px 28px 18px}.geo-stat-card{display:flex;align-items:center;gap:16px;padding:18px;border:1px solid var(--geo-line);border-radius:18px;background:linear-gradient(180deg,#fff,#f7fbff)}.stat-ico{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:#eaf5ff;font-size:26px}.geo-stat-card small{display:block;color:#5e7189;font-weight:850}.geo-stat-card b{display:block;color:#082f5f;font-size:30px;line-height:1;margin:3px 0}.geo-stat-card em{font-style:normal;color:#6b7d95;font-size:13px}
.catalog-filters{margin:0 28px 22px!important;padding:18px!important;background:#fbfdff!important;border-radius:20px!important;grid-template-columns:minmax(220px,1.6fr) minmax(160px,.9fr) repeat(5,minmax(140px,.75fr))!important}.catalog-filters label{font-size:12px;text-transform:none;color:#526982}.catalog-filters input,.catalog-filters select{height:42px;border-radius:13px;background:#fff}.catalog-filter-buttons{grid-column:1 / span 2}.catalog-filter-buttons button{max-width:190px;height:44px}.catalog-table-wrap{margin:0 28px 0;border-radius:18px!important}.catalog-table{min-width:980px!important}.catalog-table th{background:#f5f9fd!important;color:#143963!important;text-transform:none;font-size:13px!important;padding:15px!important}.catalog-table td{padding:15px!important}.catalog-table tbody tr:hover{background:#f4fbff}.catalog-row-title{font-size:16px}.catalog-row-sub{font-size:12px}.catalog-code,.geo-chip{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:6px 10px;border-radius:9px;font-weight:900;font-size:12px;border:1px solid transparent}.code-sand{background:#ffe082!important;color:#5a4100!important}.code-clay{background:#b87944!important;color:white!important}.code-grvl,.code-gravel{background:#98a0aa!important;color:white!important}.code-silt{background:#8d54bf!important;color:white!important}.code-ls{background:#5f6368!important;color:white!important}.code-dol{background:#33b5b0!important;color:white!important}.geo-chip.ox-ox{background:#fff0df;color:#d66a00;border-color:#ffd6ac}.geo-chip.ox-pox{background:#e7f1ff;color:#2263c5;border-color:#cbdfff}.geo-chip.ox-pr{background:#edf5ff;color:#315b92;border-color:#d6e6ff}.geo-chip.green{background:#ddf8e7;color:#157347;border-color:#c5eed4}.geo-chip.drill-легкая,.geo-chip.drill-лёгкая{background:#ddf8e7;color:#147a45}.geo-chip.drill-средняя{background:#fff4cf;color:#bc7200}.geo-chip.drill-тяжелая,.geo-chip.drill-тяжёлая{background:#ffe1e1;color:#c83232}.bulk-panel{margin:14px 28px 24px!important;border-radius:17px!important}.danger-outline{background:#fff6f6!important;color:#d32121!important;border-color:#ffc7c7!important}.icon-action{border-radius:12px!important}.geo-inspector{position:sticky;top:18px;min-height:620px;padding:24px!important}.inspector-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:22px}.sample-square{width:22px;height:22px;border-radius:5px;margin-top:4px;background:#d9e6f2}.inspector-head h3{font-size:20px;margin:0 0 9px;color:#082f5f;text-transform:uppercase}.inspector-tabs{display:flex;gap:24px;border-bottom:1px solid var(--geo-line);margin:0 -24px 22px;padding:0 24px 13px}.inspector-tabs b{color:#0a62ce;border-bottom:3px solid #0a62ce;padding-bottom:12px;margin-bottom:-15px}.inspector-tabs span{color:#7b8ba0}.inspector-list{display:grid;grid-template-columns:125px 1fr;gap:18px 12px}.inspector-list dt{color:#62758d;font-weight:850}.inspector-list dd{margin:0;color:#102a4c;line-height:1.35}.inspector-empty{color:#6b7d95;text-align:center;padding:60px 10px}.modal{backdrop-filter:blur(6px)}.dialog{border-radius:24px!important}
.dashboard-hero{grid-template-columns:minmax(0,1.6fr) 420px!important}.hero-panel{background:radial-gradient(circle at 90% 10%,rgba(25,180,147,.45),transparent 270px),linear-gradient(135deg,#073764,#0f7d8c)!important;border-radius:28px!important;min-height:330px}.hero-panel h2{font-size:32px!important}.stat-card{background:rgba(255,255,255,.16)!important;border-color:rgba(255,255,255,.24)!important}.quick-actions{border-radius:28px!important}.action-card{height:52px;border-radius:16px!important;background:#fbfdff!important}.details-grid div,.filter-panel,.import-box{border-radius:18px!important;background:#fbfdff!important}
@media(max-width:1350px){.catalog-layout{grid-template-columns:240px minmax(0,1fr)!important}.geo-inspector{display:none}.geo-stat-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){body.app-shell{padding-left:0}.geo-sidebar{position:relative;width:auto;height:auto}.geo-header{margin:12px;padding-right:24px}.geo-header .geo-brand{display:none}.catalog-layout{grid-template-columns:1fr!important}.catalog-filters{grid-template-columns:1fr!important}.catalog-filter-buttons{grid-column:auto}.dashboard-hero{grid-template-columns:1fr!important}}

/* === GeoSoft Variant A v102: closer to visual mockup === */
:root{
  --v102-sidebar:#062b55;--v102-sidebar2:#041f3f;--v102-blue:#0b3b73;--v102-accent:#0ea77d;--v102-bg:#f3f8fb;--v102-panel:#ffffff;--v102-line:#dde9f4;--v102-text:#112d52;--v102-muted:#71839a;
}
html{background:var(--v102-bg)}
body.app-shell{padding-left:270px!important;background:radial-gradient(circle at 78% 4%,rgba(14,167,125,.12),transparent 280px),linear-gradient(180deg,#f7fbfd 0%,#eef6f8 100%)!important;font-family:Inter,Segoe UI,Arial,sans-serif!important;color:var(--v102-text)}
.geo-sidebar{width:270px!important;background:linear-gradient(180deg,var(--v102-sidebar),var(--v102-sidebar2))!important;border-right:0!important;box-shadow:22px 0 44px rgba(8,41,80,.18)!important}
.sidebar-brand{height:118px!important;display:flex!important;align-items:center!important;gap:14px!important;padding:22px 22px!important;border-bottom:1px solid rgba(255,255,255,.12)!important}
.sidebar-brand img{height:66px!important;max-width:96px!important;object-fit:contain!important}.sidebar-brand span{font-size:12px!important;line-height:1.2!important;letter-spacing:.12em!important;color:#dcebf7!important;font-weight:900!important}
.sidebar-nav{padding:22px 14px!important;display:grid!important;gap:10px!important}.sidebar-nav a{height:48px!important;padding:0 17px!important;border-radius:15px!important;color:#dcebf7!important;font-weight:900!important;letter-spacing:.01em!important;transition:.18s ease!important}.sidebar-nav a span{font-size:17px!important;width:25px!important;text-align:center!important}.sidebar-nav a.active{background:linear-gradient(135deg,#20b58b,#1886b1)!important;color:#fff!important;box-shadow:0 16px 30px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.2)!important}.sidebar-footer{padding:0 20px 26px!important}.sidebar-online{background:#dffbed!important;color:#08764f!important;border:1px solid #8ff0bd!important}.sidebar-footer small{color:#c6d7e7!important}
.geo-header,body.app-shell header.geo-header,body.app-shell header{position:relative!important;top:auto!important;max-width:none!important;margin:18px 28px 22px!important;min-height:106px!important;padding:24px 310px 22px 28px!important;border-radius:0 0 22px 22px!important;border:1px solid var(--v102-line)!important;border-top:5px solid var(--v102-accent)!important;background:rgba(255,255,255,.92)!important;box-shadow:0 18px 44px rgba(17,45,82,.08)!important}.geo-header::before,body.app-shell header::before{display:none!important}.geo-header h1,body.app-shell header h1{font-size:24px!important;line-height:1.1!important;margin:0 0 8px!important;color:var(--v102-text)!important}.geo-header p,body.app-shell header p{font-size:14px!important;color:var(--v102-muted)!important;margin:0!important}.geo-header .geo-brand{position:absolute!important;right:35px!important;top:22px!important;float:none!important;display:grid!important;justify-items:center!important}.geo-header .geo-brand img{height:68px!important;width:auto!important}.geo-status{font-size:11px!important;margin-top:3px!important;padding:5px 14px!important;background:#dcfce9!important;color:#07804f!important;border-radius:999px!important;border:1px solid #aff2c9!important}.user-bar{margin-top:15px!important;display:flex!important;align-items:center!important;gap:14px!important;background:#f7fbff!important;border:1px solid var(--v102-line)!important;border-radius:16px!important;padding:12px 14px!important;width:calc(100% + 268px)!important;max-width:100%!important}.user-bar span{color:#6e7f96!important}.user-bar a{font-weight:900!important;color:#0b3b73!important}.ghost-button{height:36px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;background:#fff!important;color:#0b3b73!important;border:1px solid #d7e5f2!important;border-radius:13px!important;box-shadow:0 8px 18px rgba(11,59,115,.06)!important}.page,.grid{max-width:none!important;margin:0!important;padding:0 28px 42px!important}.card{background:rgba(255,255,255,.96)!important;border:1px solid var(--v102-line)!important;border-radius:24px!important;box-shadow:0 20px 48px rgba(17,45,82,.08)!important}
/* Catalogs: exact mockup layout */
.catalog-layout{display:grid!important;grid-template-columns:250px minmax(720px,1fr)360px!important;gap:22px!important;align-items:start!important}.catalog-sidebar{position:sticky!important;top:20px!important;padding:18px!important;border-radius:24px!important}.catalog-side-title{font-size:18px!important;font-weight:950!important;margin-bottom:14px!important;color:var(--v102-text)!important}.catalog-nav-list{gap:10px!important}.catalog-nav-item{min-height:62px!important;border-radius:17px!important;border:1px solid #d9e8f5!important;background:linear-gradient(180deg,#fff,#f8fbff)!important;color:#16365d!important;padding:13px 14px!important;box-shadow:0 8px 18px rgba(17,45,82,.03)!important}.catalog-nav-item.active{background:linear-gradient(135deg,#0b3b73,#10a77d)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 18px 34px rgba(11,59,115,.22)!important}.catalog-nav-item small{font-size:11px!important;color:#7b8ea5!important}.catalog-nav-item.active small{color:#e4f7f2!important}.catalog-nav-item .count{background:#edf6ff!important;color:#0b5f98!important;min-width:32px!important}.catalog-nav-item.active .count{background:rgba(255,255,255,.2)!important;color:#fff!important}.catalog-panel{padding:0!important;overflow:hidden!important;border-radius:24px!important}.catalog-toolbar{padding:24px 26px 8px!important;margin:0!important}.catalog-title h2{font-size:28px!important;font-weight:950!important;color:var(--v102-text)!important;margin:0 0 6px!important}.catalog-title p{font-size:14px!important;color:#71839a!important}.catalog-actions{gap:9px!important}.catalog-actions .button-like,.catalog-actions .dropdown>button{height:42px!important;padding:0 15px!important;border-radius:13px!important;font-weight:950!important}.button-like,body.app-shell button:not(.ghost-button):not(.icon-action):not(.danger):not(.danger-outline){background:#082f5f!important;color:#fff!important;border:0!important;box-shadow:0 10px 20px rgba(8,47,95,.14)!important}.dropdown-menu{border-radius:18px!important;box-shadow:0 18px 42px rgba(17,45,82,.14)!important}
.geo-stat-strip{display:grid!important;grid-template-columns:repeat(5,minmax(132px,1fr))!important;gap:14px!important;padding:16px 26px 18px!important}.geo-stat-card{min-height:94px!important;display:flex!important;gap:14px!important;align-items:center!important;padding:16px!important;border:1px solid #dce9f4!important;border-radius:18px!important;background:linear-gradient(180deg,#fff,#f8fbff)!important;box-shadow:0 10px 23px rgba(17,45,82,.04)!important}.stat-ico{display:grid!important;place-items:center!important;width:52px!important;height:52px!important;border-radius:16px!important;background:#eef6ff!important;font-size:25px!important}.geo-stat-card:nth-child(2) .stat-ico{background:#eaf8ee!important}.geo-stat-card:nth-child(3) .stat-ico{background:#fff3da!important}.geo-stat-card:nth-child(4) .stat-ico{background:#f0eafd!important}.geo-stat-card:nth-child(5) .stat-ico{background:#eaf2ff!important}.geo-stat-card small{display:block!important;color:#5d7088!important;font-weight:900!important}.geo-stat-card b{display:block!important;font-size:30px!important;line-height:1!important;margin:4px 0!important;color:#0b3b73!important}.geo-stat-card em{font-size:12px!important;color:#71839a!important;font-style:normal!important}.catalog-filters{margin:0 26px 22px!important;padding:18px!important;border-radius:20px!important;border:1px solid #dce9f4!important;background:#fbfdff!important;display:grid!important;grid-template-columns:minmax(230px,1.5fr) minmax(150px,.9fr) repeat(5,minmax(130px,.7fr))!important;gap:13px!important}.catalog-filters label{font-size:12px!important;color:#5e7189!important;font-weight:950!important}.catalog-filters input,.catalog-filters select{height:44px!important;margin-top:6px!important;border-radius:14px!important;border:1px solid #d7e5f2!important;background:#fff!important;color:#173d65!important}.catalog-filter-buttons{grid-column:1 / span 2!important;display:flex!important;gap:10px!important}.catalog-filter-buttons button{height:44px!important;min-width:180px!important}.catalog-table-wrap{margin:0 26px 0!important;border-radius:18px!important;border:1px solid #dce9f4!important;overflow:auto!important;background:#fff!important}.catalog-table{min-width:1050px!important;border-collapse:separate!important;border-spacing:0!important}.catalog-table th{height:48px!important;background:#f5f9fd!important;color:#173d65!important;font-size:13px!important;font-weight:950!important;padding:0 15px!important;border-bottom:1px solid #dce9f4!important}.catalog-table td{height:58px!important;padding:0 15px!important;border-bottom:1px solid #e9f0f7!important}.catalog-table tr:last-child td{border-bottom:0!important}.catalog-table tbody tr:hover{background:#f5fbff!important}.catalog-checkbox{width:17px!important;height:17px!important}.catalog-row-title{font-size:15px!important;font-weight:950!important;color:#113057!important}.catalog-row-sub{font-size:12px!important;color:#7a8ba0!important}.catalog-code,.geo-chip{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:46px!important;height:28px!important;padding:0 10px!important;border-radius:9px!important;font-size:12px!important;font-weight:950!important;letter-spacing:.01em!important;border:1px solid transparent!important}.code-sand{background:#ffdc5e!important;color:#4d3700!important}.code-clay{background:#a86c3b!important;color:white!important}.code-grvl,.code-gravel{background:#8f969f!important;color:white!important}.code-silt{background:#7d42ba!important;color:white!important}.code-ls{background:#565b61!important;color:white!important}.code-dol{background:#31aeb3!important;color:white!important}.code-none{background:#edf4fb!important;color:#65819a!important}.geo-chip.ox-ox{background:#fff0df!important;color:#d96b00!important;border-color:#ffd5ad!important}.geo-chip.ox-pox{background:#e9f2ff!important;color:#2366c7!important;border-color:#cfe2ff!important}.geo-chip.ox-pr{background:#edf0ff!important;color:#4756b7!important;border-color:#d8ddff!important}.geo-chip.green{background:#ddf8e7!important;color:#157347!important;border-color:#c5eed4!important}.geo-chip.drill-легкая,.geo-chip.drill-лёгкая{background:#ddf8e7!important;color:#147a45!important}.geo-chip.drill-средняя{background:#fff4cf!important;color:#bc7200!important}.geo-chip.drill-тяжелая,.geo-chip.drill-тяжёлая{background:#ffe1e1!important;color:#c83232!important}.icon-action{width:34px!important;height:34px!important;border-radius:12px!important;border:1px solid #dbe9f5!important;background:#fff!important;box-shadow:none!important;color:#0b3b73!important}.icon-action.danger{background:#fff5f5!important;color:#dc2626!important;border-color:#ffd0d0!important}.bulk-panel{margin:14px 26px 24px!important;border:1px dashed #dce9f4!important;border-radius:17px!important;background:#fbfdff!important}.danger-outline{background:#fff6f6!important;color:#d32121!important;border:1px solid #ffc7c7!important;box-shadow:none!important}
.geo-inspector{display:block!important;position:sticky!important;top:20px!important;min-height:640px!important;padding:24px!important;border-radius:24px!important;background:#fff!important}.inspector-head{display:flex!important;gap:15px!important;align-items:flex-start!important;margin:0 0 24px!important}.sample-square{width:22px!important;height:22px!important;border-radius:5px!important;margin-top:5px!important}.inspector-head h3{font-size:20px!important;text-transform:uppercase!important;font-weight:950!important;letter-spacing:.02em!important;color:#102d52!important;margin:0 0 10px!important}.inspector-tabs{display:flex!important;gap:22px!important;border-bottom:1px solid #dce9f4!important;padding:0 24px 14px!important;margin:0 -24px 24px!important}.inspector-tabs b{font-size:13px!important;color:#0a62ce!important;border-bottom:3px solid #0a62ce!important;padding-bottom:13px!important;margin-bottom:-17px!important}.inspector-tabs span{font-size:13px!important;color:#7a8ba0!important}.inspector-list{display:grid!important;grid-template-columns:128px 1fr!important;gap:17px 13px!important}.inspector-list dt{font-weight:900!important;color:#63768c!important}.inspector-list dd{margin:0!important;color:#1a3557!important;line-height:1.38!important}.inspector-empty{text-align:center!important;color:#7a8ba0!important;padding:70px 10px!important}
/* Dashboard closer to mockup */
.dashboard-hero{display:grid!important;grid-template-columns:minmax(0,1.65fr)420px!important;gap:22px!important;margin-bottom:22px!important}.hero-panel{min-height:350px!important;padding:28px!important;border-radius:28px!important;background:radial-gradient(circle at 92% 8%,rgba(35,194,151,.45),transparent 270px),linear-gradient(135deg,#073463 0%,#0b3f78 48%,#0f828c 100%)!important;color:#fff!important}.hero-panel h2{font-size:33px!important;font-weight:950!important;margin:0 0 18px!important}.hero-panel p{color:#e2f3ff!important;max-width:980px!important}.stat-card,.dash-card{background:rgba(255,255,255,.14)!important;border:1px solid rgba(255,255,255,.24)!important;border-radius:18px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.12)!important}.stat-card strong,.dash-card strong{font-size:27px!important}.quick-actions{border-radius:28px!important;padding:24px!important}.quick-actions h2{font-size:22px!important;margin-bottom:16px!important}.action-card{min-height:56px!important;border-radius:16px!important;background:#fbfdff!important;border:1px solid #dce9f4!important;padding:11px 13px!important}.action-card:hover{background:#f4fbff!important;transform:translateY(-1px)!important}.action-icon{color:#0ea77d!important}
/* Keep authorization background image untouched */
body.login-body{background-image:inherit!important;background-size:cover!important;background-position:center!important}
@media(max-width:1500px){.catalog-layout{grid-template-columns:250px minmax(0,1fr)!important}.geo-inspector{display:none!important}.geo-stat-strip{grid-template-columns:repeat(4,minmax(132px,1fr))!important}}
@media(max-width:1100px){body.app-shell{padding-left:0!important}.geo-sidebar{position:relative!important;width:auto!important;min-height:auto!important}.sidebar-brand{justify-content:center!important}.sidebar-nav{grid-template-columns:repeat(2,minmax(0,1fr))!important}.geo-header,body.app-shell header.geo-header,body.app-shell header{margin:14px!important;padding:20px 24px!important}.geo-header .geo-brand{display:none!important}.page,.grid{padding:0 14px 30px!important}.catalog-layout,.dashboard-hero{grid-template-columns:1fr!important}.catalog-filters{grid-template-columns:1fr 1fr!important}.catalog-filter-buttons{grid-column:auto!important}.geo-stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.sidebar-nav{grid-template-columns:1fr!important}.catalog-filters,.geo-stat-strip{grid-template-columns:1fr!important}.catalog-toolbar{display:block!important}.catalog-actions{justify-content:flex-start!important;margin-top:14px!important}}

/* ===== GeoSoft 2.0 UX redesign v103 ===== */
.geosoft-2.app-shell{background:linear-gradient(135deg,#eef8f6 0%,#f5f8fb 50%,#eef5ff 100%);}
.geosoft-2 .geo-header.compact-topbar{margin:18px 24px 0 24px;padding:18px 24px;min-height:auto;display:flex;align-items:center;justify-content:space-between;border-radius:0 0 22px 22px;background:rgba(255,255,255,.92);box-shadow:0 16px 45px rgba(15,42,70,.08);border-top:4px solid #18b986;}
.geosoft-2 .compact-topbar h1{font-size:24px;margin:0 0 4px;color:#08284e}.geosoft-2 .compact-topbar p{margin:0;color:#65768f}.topbar-actions{display:flex;align-items:center;gap:10px}.topbar-logo{width:90px;height:auto}.user-chip,.pill-link{border:1px solid #d7e5f2;background:#f6fbff;border-radius:999px;padding:9px 14px;font-weight:800;color:#0b376a;text-decoration:none}.geo2-main{padding:22px 24px 40px}.geo2-map-dashboard{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px}.geo2-map-card,.geo2-right-panel,.geo2-panel,.geo2-toolbar-panel,.geo2-table-panel{background:rgba(255,255,255,.94);border:1px solid #dbe8f3;border-radius:24px;box-shadow:0 20px 55px rgba(15,42,70,.08)}.geo2-map-card{overflow:hidden}.geo2-map-head{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid #e4eef6}.geo2-map-head h2,.geo2-right-panel h2,.geo2-panel h2,.geo2-toolbar-panel h2{font-size:24px;color:#08284e;margin:0}.geo2-map-head p{margin:6px 0 0;color:#64758c}.geo2-dashboard-map{height:520px;min-height:520px;background:#dbeafe}.geo2-right-panel{padding:22px;display:flex;flex-direction:column;gap:14px}.geo2-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px}.geo2-kpis div,.geo2-meter-card,.map-stats-stack div{padding:16px;border-radius:18px;background:linear-gradient(135deg,#f5fbff,#edf7f3);border:1px solid #dcebf4}.geo2-kpis span,.geo2-meter-card small,.map-stats-stack span{display:block;color:#63758f;font-weight:700}.geo2-kpis b,.geo2-meter-card strong,.map-stats-stack b{display:block;color:#083262;font-size:28px;line-height:1.1;margin-top:6px}.geo2-meter-card strong{font-size:36px}.geo2-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}.geo2-panel{padding:22px}.geo2-recent-list,.geo2-site-grid{display:grid;gap:10px}.geo2-well-mini,.geo2-site-card{display:grid;grid-template-columns:110px 1fr auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid #dce8f4;border-radius:16px;text-decoration:none;color:#0b2d55;background:#f9fcff}.geo2-well-mini:hover,.geo2-site-card:hover,.action-card:hover{border-color:#19b985;box-shadow:0 12px 28px rgba(25,185,133,.12)}.geo2-well-mini em,.geo2-site-card em{font-style:normal;font-weight:900;color:#07966e}.eyebrow{display:inline-flex;margin-bottom:8px;padding:5px 10px;border-radius:999px;background:#eaf9f3;color:#098865;font-weight:900;font-size:12px}.geo2-toolbar-panel{padding:20px 22px;margin-bottom:18px}.geo2-filterbar{display:grid;grid-template-columns:minmax(260px,1fr) 190px auto auto;gap:12px;align-items:center;margin-top:16px}.geo2-filterbar input,.geo2-filterbar select,.map-filter-panel input,.map-filter-panel select{width:100%;border:1px solid #d4e3f2;border-radius:14px;padding:13px 14px;background:white;font-weight:700;color:#17385f}.view-switch{display:inline-flex;padding:4px;border-radius:14px;background:#eaf2f8;border:1px solid #d4e3f2}.view-switch button{border:0;background:transparent;padding:10px 13px;border-radius:11px;font-weight:900;color:#36516d}.view-switch button.active{background:#0b376a;color:#fff}.well-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.geo2-well-card{background:rgba(255,255,255,.96);border:1px solid #dce8f4;border-radius:22px;box-shadow:0 14px 35px rgba(15,42,70,.07);overflow:hidden}.well-card-main{display:block;text-decoration:none;color:#0b2d55;padding:18px}.well-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.well-number{font-size:22px;font-weight:1000;color:#08284e}.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:1000;background:#e6f0ff;color:#174ea6}.status-проект{background:#fff3d6;color:#a25c00}.status-в-работе{background:#dbeafe;color:#1d4ed8}.status-завершена{background:#dff8eb;color:#087a55}.well-card-depth{margin:18px 0;padding:18px;border-radius:18px;background:linear-gradient(135deg,#073763,#0c9b91);color:#fff}.well-card-depth b{font-size:40px}.well-card-depth span{font-weight:900;margin-left:6px}.well-card-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e7f0f8;padding:10px 0}.well-card-meta span{color:#6c7f98}.well-card-coords{margin-top:10px;padding:10px;border-radius:13px;background:#f4f8fb;color:#546b85;font-weight:800}.well-card-actions{display:flex;gap:8px;padding:12px 14px;background:#f7fbff;border-top:1px solid #e5eef7}.well-card-actions a,.well-card-actions button{border:1px solid #d5e5f4;background:#fff;border-radius:12px;padding:9px 12px;text-decoration:none;color:#0b376a;font-weight:900}.well-card-actions form{margin:0}.well-card-actions button{color:#dc2626}.hidden{display:none!important}.geo2-table-panel{padding:18px}.geo2-map-workspace{height:calc(100vh - 122px);padding:18px 24px 24px;display:grid;grid-template-columns:300px minmax(0,1fr) 330px;gap:18px}.map-filter-panel,.map-info-panel{background:rgba(255,255,255,.95);border:1px solid #dbe8f3;border-radius:22px;box-shadow:0 16px 40px rgba(15,42,70,.08);padding:20px;overflow:auto}.geo2-map-canvas-wrap{border-radius:24px;overflow:hidden;border:1px solid #dbe8f3;box-shadow:0 18px 50px rgba(15,42,70,.12);background:#fff}.geo2-big-map{height:100%;min-height:640px}.map-stats-stack{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.map-filter-panel label{display:block;margin:14px 0;color:#526a84;font-weight:900}.map-legend.vertical{display:grid;gap:10px;margin:20px 0}.info-rows{display:grid;gap:10px;margin:18px 0}.info-rows div{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:12px;border-radius:14px;background:#f6fbff;border:1px solid #e0ecf6}.info-rows span{color:#6a7f99;font-weight:800}.info-rows b{color:#0b2d55}.map-point-list{display:grid;gap:8px;margin-top:12px}.map-point-list button{display:grid;grid-template-columns:80px 1fr auto;gap:8px;align-items:center;border:1px solid #dce8f4;background:#fff;border-radius:14px;padding:10px;text-align:left;color:#0b2d55}.map-point-list em{font-style:normal;font-weight:900;color:#0b9b71}.geosoft-2 .action-card{display:flex;align-items:center;justify-content:space-between;text-decoration:none;color:#0b2d55;padding:14px 16px;border:1px solid #dce8f4;border-radius:16px;background:#f9fcff}.geosoft-2 .action-icon{width:34px;height:34px;border-radius:12px;border:1px solid #cfe0ef;display:grid;place-items:center;color:#08966e;font-weight:1000}.geosoft-2 .button-link{background:#0b376a;color:#fff;border:0;border-radius:14px;padding:12px 16px;font-weight:1000;text-decoration:none;box-shadow:0 10px 24px rgba(11,55,106,.16)}.geosoft-2 .button-link.secondary,.geosoft-2 .ghost-button{background:#fff;color:#0b376a;border:1px solid #d5e5f4;box-shadow:none}.geosoft-2 .section-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.geosoft-2 .progress-line{height:12px;border-radius:999px;background:rgba(8,50,98,.14);overflow:hidden}.geosoft-2 .progress-line span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#18b986,#0b7fba)}
@media (max-width:1200px){.geo2-map-dashboard,.geo2-bottom-grid,.geo2-map-workspace{grid-template-columns:1fr}.geo2-map-workspace{height:auto}.geo2-big-map{height:560px}.geo2-filterbar{grid-template-columns:1fr}.topbar-logo{display:none}}

/* v105: старый формат главной в новом стиле + аккуратная верхняя панель */
.user-right-topbar .topbar-actions{margin-left:auto;justify-content:flex-end;gap:12px;min-width:360px}.topbar-user-only .user-chip{background:#f4f9ff;border:1px solid #d7e7f5;border-radius:999px;padding:10px 14px;font-weight:900;color:#073463}.topbar-user-only form{margin:0}.topbar-user-only .ghost-button{height:36px;padding:0 18px;border-radius:999px;background:#fff;box-shadow:0 8px 20px rgba(7,52,99,.08)}.topbar-user-only .topbar-logo{margin-left:14px}
.old-dashboard-main{padding-top:0}.old-home-modern .dashboard-hero{grid-template-columns:minmax(0,1.65fr)420px!important;gap:24px!important;margin-bottom:24px!important}.old-home-modern .hero-panel{background:radial-gradient(circle at 88% 8%,rgba(34,197,154,.42),transparent 280px),linear-gradient(135deg,#073463 0%,#0a3f77 48%,#0f7f8d 100%)!important;border:1px solid rgba(255,255,255,.22)!important;box-shadow:0 22px 55px rgba(7,52,99,.18)!important}.old-home-modern .card.wide{border-radius:24px!important;border:1px solid #dbe9f4!important;box-shadow:0 18px 45px rgba(7,52,99,.08)!important;background:#fff!important}.old-home-modern .worksites-summary-table,.old-home-modern .interactive-table{border-radius:18px!important;overflow:hidden}.old-home-modern .quick-actions{box-shadow:0 18px 45px rgba(7,52,99,.08)!important;border:1px solid #dbe9f4!important}.old-home-modern .office-dashboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}.old-home-modern .dash-card b{display:block;font-size:30px;line-height:1;color:#fff}.old-home-modern .dash-card small,.old-home-modern .dash-card span{color:#dff4ff}.old-home-modern .dashboard-progress{margin-top:18px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:14px}.old-home-modern .dashboard-progress p{margin:8px 0 0;color:#fff}
.map-filter-panel label{display:block;margin:12px 0 0;font-weight:900;color:#0b315e}.map-filter-panel select,.map-filter-panel input{margin-top:6px;width:100%;height:44px;border-radius:14px;border:1px solid #cfe0ee;background:#fff;padding:0 12px;color:#0b315e;font-weight:800}.map-filter-panel #map-reset-filters{width:100%;margin-top:12px;text-align:center}.map-point-list button span{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1100px){.old-home-modern .dashboard-hero{grid-template-columns:1fr!important}.old-home-modern .office-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}.user-right-topbar .topbar-actions{min-width:0}.topbar-user-only .topbar-logo{display:none}}


/* === GeoSoft Professional v109: reference layout reset === */
body.ref-app{margin:0;min-height:100vh;background:linear-gradient(120deg,#f6fbff 0%,#eef8f6 100%);color:#0b2d55;font-family:Inter,Segoe UI,Arial,sans-serif}.ref-app .geo-sidebar{display:none!important}.ref-topbar{position:sticky;top:0;z-index:40;height:88px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid #dbe9f5;box-shadow:0 12px 32px rgba(6,43,85,.08);display:grid;grid-template-columns:230px 1fr auto;align-items:center;padding:0 32px;gap:20px}.ref-brand{display:flex;align-items:center;gap:12px}.ref-brand img{width:74px;height:auto}.ref-brand b{display:block;font-size:20px;line-height:1;color:#039a58}.ref-brand small{display:block;color:#60758d;font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.ref-nav{height:100%;display:flex;justify-content:center;gap:10px}.ref-nav a{min-width:96px;padding:15px 10px 11px;color:#17385d;text-decoration:none;font-weight:900;font-size:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-bottom:3px solid transparent}.ref-nav a:first-letter{font-size:19px}.ref-nav a.active{color:#0b4a86;border-bottom-color:#2563eb;background:linear-gradient(180deg,transparent,#f4f9ff)}.ref-user{display:flex;align-items:center;gap:12px}.ref-online{background:#dffbea;color:#05834a;border:1px solid #a7efc4;border-radius:999px;padding:7px 12px;font-weight:900;font-size:12px}.ref-user-name{text-align:right}.ref-user-name b{display:block;font-size:14px}.ref-user-name small{display:block;color:#718096}.ref-logout,.ref-primary{border:0;border-radius:13px;background:#0b376d;color:#fff;padding:11px 18px;font-weight:900;box-shadow:0 8px 22px rgba(6,43,85,.14);text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.ref-secondary{border:1px solid #d8e6f3;border-radius:13px;background:#fff;color:#0b376d;padding:11px 18px;font-weight:900;text-decoration:none}.ref-page{max-width:1520px;margin:0 auto;padding:28px 32px 80px}.ref-page-title{display:flex;align-items:end;justify-content:space-between;margin:0 0 20px}.ref-page-title h1{margin:0;font-size:30px;color:#062b55}.ref-page-title p{margin:6px 0 0;color:#6d7f94}.ref-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-bottom:20px}.ref-kpi{background:#fff;border:1px solid #dce8f4;border-radius:22px;padding:18px;box-shadow:0 16px 40px rgba(6,43,85,.06);text-decoration:none;color:#0b2d55;display:grid;grid-template-columns:50px 1fr;grid-template-rows:auto auto auto;column-gap:12px}.ref-kpi span{grid-row:1/4;width:50px;height:50px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:#eef6ff;color:#0b4a86;font-size:24px}.ref-kpi small{font-weight:900;color:#5b6f88}.ref-kpi b{font-size:30px;line-height:1.05}.ref-kpi em{font-style:normal;color:#72839b;font-size:12px}.ref-card{background:#fff;border:1px solid #dce8f4;border-radius:26px;padding:22px;margin-bottom:20px;box-shadow:0 18px 42px rgba(6,43,85,.07)}.ref-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px}.ref-section-head h2{margin:0;color:#062b55}.ref-section-head p{margin:6px 0 0;color:#718096}.ref-table-wrap{overflow:auto;border:1px solid #dce8f4;border-radius:20px}.ref-table{width:100%;border-collapse:separate;border-spacing:0}.ref-table th{background:#f3f8fd;color:#0b2d55;font-size:13px;text-align:left;padding:13px;border-bottom:1px solid #dce8f4}.ref-table td{padding:14px 13px;border-bottom:1px solid #e8f0f7;vertical-align:middle}.ref-table tr:last-child td{border-bottom:0}.ref-table tbody tr{cursor:pointer}.ref-table tbody tr:hover{background:#f8fbff}.ref-table td span{display:block;color:#718096;font-size:12px;margin-top:4px}.ref-well-link{display:inline-flex;background:#0b376d;color:#fff;border-radius:10px;padding:8px 14px;text-decoration:none;font-weight:900}.ref-status{display:inline-flex!important;border-radius:999px;background:#eaf4ff;color:#0b4a86;padding:5px 9px;font-weight:900}.ref-map-page{max-width:1740px;margin:0 auto;padding:24px 24px 70px}.ref-map-grid{display:grid;grid-template-columns:280px minmax(0,1fr) 310px;gap:18px;align-items:stretch}.ref-map-filter,.ref-map-info,.ref-map-canvas{background:#fff;border:1px solid #dce8f4;border-radius:24px;box-shadow:0 18px 42px rgba(6,43,85,.07)}.ref-map-filter,.ref-map-info{padding:18px}.ref-map-filter h2,.ref-map-info h2{margin:0 0 14px;color:#062b55}.ref-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px}.ref-mini-stats div{border:1px solid #dce8f4;border-radius:15px;background:#f7fbff;padding:11px}.ref-mini-stats small{display:block;color:#718096;font-weight:900}.ref-mini-stats b{font-size:24px}.ref-map-filter label{display:block;margin:10px 0;color:#5d7189;font-weight:900;font-size:12px}.ref-map-filter input,.ref-map-filter select{width:100%;box-sizing:border-box;margin-top:6px;border:1px solid #ccdaea;border-radius:13px;padding:11px;background:#fff}.ref-map-canvas{overflow:hidden;min-height:calc(100vh - 190px)}#wells-map{width:100%;height:100%;min-height:calc(100vh - 190px)}.ref-legend{display:grid;gap:8px;margin:14px 0}.ref-legend span{display:flex;align-items:center;gap:8px;color:#60758d;font-weight:800}.ref-legend i{width:10px;height:10px;border-radius:999px;display:inline-block}.info-rows{display:grid;gap:10px;margin:16px 0}.info-rows div{border:1px solid #dce8f4;border-radius:14px;background:#f8fbff;padding:11px}.info-rows span{display:block;color:#718096;font-size:12px;font-weight:900}.map-point-list{display:grid;gap:8px;max-height:48vh;overflow:auto}.map-point-list button{border:1px solid #dce8f4;border-radius:13px;background:#f8fbff;padding:9px;text-align:left;color:#0b2d55}.map-point-list b{display:block}.map-point-list span{display:block;color:#718096;font-size:12px}.map-point-list em{font-style:normal;color:#059669;font-weight:900;font-size:12px}.hidden{display:none!important}.ref-catalog-page{max-width:1680px}.ref-catalogs .catalog-layout{display:grid!important;grid-template-columns:250px minmax(0,1fr) 320px!important;gap:20px!important;align-items:start!important}.ref-catalogs .catalog-sidebar,.ref-catalogs .catalog-panel,.ref-catalogs .geo-inspector{box-shadow:0 18px 42px rgba(6,43,85,.07)!important;border-radius:24px!important}.ref-catalogs .catalog-panel{padding:20px}.ref-catalogs .geo-stat-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:10px 0 16px}.ref-catalogs .geo-stat-card{display:flex;gap:12px;align-items:center;border:1px solid #dce8f4;border-radius:18px;background:#fff;padding:15px}.ref-catalogs .geo-stat-card .stat-ico{width:46px;height:46px;border-radius:15px;background:#eef6ff;display:flex;align-items:center;justify-content:center;font-size:22px}.ref-catalogs .geo-stat-card small{display:block;color:#60758d;font-weight:900}.ref-catalogs .geo-stat-card b{font-size:27px;line-height:1;color:#0b376d}.ref-catalogs .geo-stat-card em{display:block;font-size:12px;color:#718096;font-style:normal}.ref-catalogs .geo-inspector{position:sticky;top:110px;background:#fff;padding:22px;min-height:520px}.ref-catalogs .catalog-filters{grid-template-columns:1.4fr 1fr repeat(5,minmax(110px,.8fr))!important}.ref-catalogs .catalog-table th,.ref-catalogs .catalog-table td{padding:14px 13px!important}@media(max-width:1200px){.ref-topbar{grid-template-columns:1fr; height:auto;padding:14px}.ref-nav{overflow:auto;justify-content:flex-start}.ref-user{justify-content:flex-start}.ref-kpis{grid-template-columns:repeat(2,1fr)}.ref-map-grid,.ref-catalogs .catalog-layout{grid-template-columns:1fr!important}.ref-map-canvas,#wells-map{min-height:560px}.ref-catalogs .geo-stat-strip{grid-template-columns:repeat(2,1fr)}}

/* v111 — Catalogs approved wide reference layout */
body.ref-app.ref-catalogs{
  background:linear-gradient(120deg,#f7fbff 0%,#eef9f6 100%)!important;
}
.ref-catalogs .ref-page.ref-catalog-page{
  max-width:none!important;
  width:calc(100% - 28px)!important;
  padding:24px 14px 80px!important;
  box-sizing:border-box!important;
}
.ref-catalogs .catalog-layout{
  grid-template-columns:270px minmax(0,1fr) 360px!important;
  gap:18px!important;
  width:100%!important;
}
.ref-catalogs .catalog-sidebar{
  padding:22px 18px!important;
  min-height:calc(100vh - 160px)!important;
}
.ref-catalogs .catalog-nav-list{
  gap:12px!important;
}
.ref-catalogs .catalog-nav-item{
  min-height:58px!important;
  padding:14px 16px!important;
  border-radius:16px!important;
}
.ref-catalogs .catalog-panel{
  padding:28px 28px 26px!important;
  min-width:0!important;
  overflow:visible!important;
}
.ref-catalogs .catalog-toolbar{
  padding:0!important;
  margin-bottom:24px!important;
  align-items:flex-start!important;
}
.ref-catalogs .catalog-title h2{
  font-size:30px!important;
  line-height:1.1!important;
}
.ref-catalogs .catalog-actions{
  gap:14px!important;
}
.ref-catalogs .catalog-actions .button-like,
.ref-catalogs .catalog-actions .ghost-button,
.ref-catalogs .catalog-actions button{
  min-height:44px!important;
  padding:0 20px!important;
  border-radius:13px!important;
}
.ref-catalogs .geo-stat-strip{
  grid-template-columns:repeat(5,minmax(150px,1fr))!important;
  gap:14px!important;
  margin:0 0 24px!important;
}
.ref-catalogs .geo-stat-card{
  min-height:86px!important;
  padding:18px!important;
  border-radius:18px!important;
}
.ref-catalogs .catalog-filters{
  margin:0 0 26px!important;
  padding:20px!important;
  grid-template-columns:minmax(220px,1.35fr) minmax(160px,.95fr) repeat(5,minmax(120px,.75fr))!important;
  gap:14px!important;
}
.ref-catalogs .catalog-filters input,
.ref-catalogs .catalog-filters select{
  min-height:46px!important;
  border-radius:13px!important;
}
.ref-catalogs .catalog-filter-buttons{
  grid-column:1 / span 2!important;
}
.ref-catalogs .catalog-filter-buttons button{
  min-width:190px!important;
}
.ref-catalogs .catalog-table-wrap{
  margin:0!important;
  border-radius:18px!important;
}
.ref-catalogs .catalog-table{
  min-width:1050px!important;
}
.ref-catalogs .catalog-table th{
  height:50px!important;
  font-size:13px!important;
  padding:0 16px!important;
}
.ref-catalogs .catalog-table td{
  height:62px!important;
  padding:0 16px!important;
}
.ref-catalogs .bulk-panel{
  margin:18px 0 0!important;
  min-height:54px!important;
  padding:12px 18px!important;
}
.ref-catalogs .geo-inspector{
  width:auto!important;
  min-height:calc(100vh - 160px)!important;
  top:112px!important;
  padding:26px 26px 24px!important;
  border-radius:24px!important;
}
.ref-catalogs .geo-inspector .inspector-title,
.ref-catalogs .geo-inspector h3,
.ref-catalogs .geo-inspector h2{
  font-size:24px!important;
}
.ref-catalogs .detail-grid,
.ref-catalogs .inspector-grid{
  gap:14px!important;
}
.ref-catalogs .dialog{
  width:min(820px,96vw)!important;
  padding:26px!important;
  border-radius:24px!important;
}
.ref-catalogs .form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
}
.ref-catalogs .dialog-actions button{
  min-height:48px!important;
  border-radius:14px!important;
}
@media(max-width:1500px){
  .ref-catalogs .catalog-layout{grid-template-columns:250px minmax(0,1fr) 330px!important;gap:16px!important}
  .ref-catalogs .geo-stat-strip{grid-template-columns:repeat(5,minmax(120px,1fr))!important}
  .ref-catalogs .catalog-filters{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .ref-catalogs .catalog-filter-buttons{grid-column:auto!important}
}
@media(max-width:1150px){
  .ref-catalogs .catalog-layout{grid-template-columns:1fr!important}
  .ref-catalogs .geo-inspector{position:static!important;min-height:auto!important}
  .ref-catalogs .geo-stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* v112: reference-style catalog modals */
.ref-catalogs .modal{
  background: rgba(15, 23, 42, .56) !important;
  backdrop-filter: blur(9px) saturate(115%) !important;
  padding: 28px !important;
  z-index: 9999 !important;
}
.ref-catalogs .modal .dialog{
  width: min(940px, 94vw) !important;
  max-height: 90vh !important;
  overflow: hidden !important;
  padding: 0 !important;
  border-radius: 24px !important;
  background: #fff !important;
  border: 1px solid #dce8f4 !important;
  box-shadow: 0 30px 90px rgba(6, 43, 85, .32) !important;
}
.ref-catalogs .modal .dialog-head{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  padding: 24px 28px 18px !important;
  margin:0 !important;
  border-bottom: 1px solid #e5eef7 !important;
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%) !important;
}
.ref-catalogs .modal .dialog-head h3{
  margin:0 0 5px !important;
  font-size: 24px !important;
  line-height:1.12 !important;
  font-weight: 950 !important;
  letter-spacing: -.02em !important;
  color: #082f5f !important;
}
.ref-catalogs .modal .dialog-head .catalog-muted{
  font-size: 14px !important;
  color:#718096 !important;
  font-weight: 700 !important;
}
.ref-catalogs .modal .close{
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  padding:0 !important;
  border-radius: 12px !important;
  border:1px solid #dce8f4 !important;
  background:#fff !important;
  color:#0b376d !important;
  box-shadow:none !important;
}
.ref-catalogs .modal form{
  display:block !important;
  margin:0 !important;
}
.ref-catalogs .modal .form-grid{
  display:grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px 18px !important;
  padding: 24px 28px 18px !important;
  max-height: calc(90vh - 165px) !important;
  overflow:auto !important;
}
.ref-catalogs .modal .form-grid label{
  display:block !important;
  color:#50657e !important;
  font-size: 12px !important;
  font-weight: 950 !important;
  letter-spacing: .01em !important;
}
.ref-catalogs .modal .form-grid input,
.ref-catalogs .modal .form-grid select,
.ref-catalogs .modal .form-grid textarea{
  width:100% !important;
  box-sizing:border-box !important;
  height: 46px !important;
  margin-top: 7px !important;
  padding: 0 14px !important;
  border:1px solid #cfddec !important;
  border-radius: 14px !important;
  background:#fff !important;
  color:#102a4c !important;
  font-weight: 800 !important;
  box-shadow: none !important;
}
.ref-catalogs .modal .form-grid input:focus,
.ref-catalogs .modal .form-grid select:focus,
.ref-catalogs .modal .form-grid textarea:focus{
  border-color:#2563eb !important;
  box-shadow:0 0 0 4px rgba(37,99,235,.12) !important;
  outline:0 !important;
}
.ref-catalogs .modal .dialog-actions{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap: 12px !important;
  padding: 18px 28px 24px !important;
  margin:0 !important;
  border-top:1px solid #e5eef7 !important;
  background:#fbfdff !important;
}
.ref-catalogs .modal .dialog-actions button,
.ref-catalogs .modal .dialog-actions .ghost-button,
.ref-catalogs .modal .dialog-actions label{
  width:auto !important;
  min-width: 150px !important;
  max-width: 190px !important;
  height: 46px !important;
  padding: 0 22px !important;
  border-radius: 14px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-weight:950 !important;
  font-size:14px !important;
  cursor:pointer !important;
  box-shadow: none !important;
}
.ref-catalogs .modal .dialog-actions button{
  border:0 !important;
  background:#0b376d !important;
  color:#fff !important;
  box-shadow:0 10px 22px rgba(6,43,85,.18) !important;
}
.ref-catalogs .modal .dialog-actions button:hover{
  background:#082f5f !important;
  transform:translateY(-1px) !important;
}
.ref-catalogs .modal .dialog-actions .ghost-button,
.ref-catalogs .modal .dialog-actions label.ghost-button{
  border:1px solid #d7e5f3 !important;
  background:#fff !important;
  color:#0b376d !important;
  text-decoration:none !important;
}
.ref-catalogs .modal .detail-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
  padding:24px 28px 18px !important;
}
.ref-catalogs .modal .detail-item{
  border:1px solid #dce8f4 !important;
  border-radius:16px !important;
  background:#f8fbff !important;
  padding:14px !important;
}
.ref-catalogs .modal .detail-item small{color:#60758d !important;font-weight:950 !important;}
.ref-catalogs .modal .detail-item b{color:#0b2d55 !important;font-size:15px !important;}
@media(max-width:760px){
  .ref-catalogs .modal .dialog{width:96vw !important;}
  .ref-catalogs .modal .form-grid,
  .ref-catalogs .modal .detail-grid{grid-template-columns:1fr !important;}
  .ref-catalogs .modal .dialog-actions{flex-direction:column-reverse !important;align-items:stretch !important;}
  .ref-catalogs .modal .dialog-actions button,
  .ref-catalogs .modal .dialog-actions .ghost-button,
  .ref-catalogs .modal .dialog-actions label{max-width:none !important;width:100% !important;}
}

/* v113: full-width professional GIS map */
body.ref-map-pro{background:linear-gradient(120deg,#f7fbff 0%,#eef8f6 100%)!important;overflow:hidden}.ref-map-pro .ref-topbar{height:72px!important;padding:0 28px!important;grid-template-columns:210px 1fr auto!important;min-height:72px!important}.ref-map-pro .ref-brand img{height:46px!important}.ref-map-pro .ref-nav a{height:62px!important;min-width:88px!important;padding:7px 10px!important}.ref-map-pro .ref-nav a>span{font-size:12px!important}.ref-map-pro .ref-user{gap:14px!important}.ref-map-pro .ref-logout{height:42px!important;min-width:118px!important}.map-pro-page{width:100vw;max-width:none;margin:0;padding:18px 22px 22px;box-sizing:border-box;height:calc(100vh - 72px);overflow:hidden}.map-pro-title{margin:0 0 12px;display:flex;align-items:end;justify-content:space-between}.map-pro-title h1{margin:0;font-size:28px;line-height:1;color:#062b55;font-weight:950;letter-spacing:-.02em}.map-pro-title p{margin:6px 0 0;color:#6d7f94;font-size:14px}.map-pro-grid{display:grid;grid-template-columns:340px minmax(760px,1fr) 420px;gap:18px;align-items:stretch;width:100%;height:calc(100vh - 132px);min-height:0}.map-pro-panel,.map-pro-canvas-wrap{background:#fff;border:1px solid #dce8f4;border-radius:20px;box-shadow:0 16px 42px rgba(6,43,85,.08)}.map-pro-filters{padding:18px;overflow:auto;overflow-x:hidden;min-width:0}.map-pro-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.map-pro-panel-head h2{margin:0;color:#062b55;font-size:22px;font-weight:950}.map-mini-btn{border:0;background:transparent;color:#34516f;font-weight:900}.map-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.map-stat-grid div{min-height:62px;border:1px solid #dce8f4;border-radius:14px;background:#f8fbff;padding:12px;box-sizing:border-box}.map-stat-grid small{display:block;color:#6b7f95;font-weight:900;font-size:12px;margin-bottom:4px}.map-stat-grid b{font-size:23px;color:#0b376d;line-height:1}.map-field{margin:12px 0}.map-field label{display:block;color:#50657e;font-size:12px;font-weight:950;margin-bottom:7px}.map-field input,.map-field select{min-width:0;width:100%;height:46px;border:1px solid #cfddec;border-radius:13px;background:#fff;color:#0b2d55;padding:0 13px;font-weight:800;box-sizing:border-box}.map-field input:focus,.map-field select:focus{outline:0;border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.12)}.map-range>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.map-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.map-actions .ref-primary,.map-actions .ref-secondary{height:46px;padding:0}.map-legend{display:flex;gap:14px;flex-wrap:wrap;border-top:1px solid #e5eef7;margin-top:18px;padding-top:18px}.map-legend span{display:flex;align-items:center;gap:8px;font-weight:850;color:#4f657e}.map-legend i{width:12px;height:12px;border-radius:50%;display:inline-block}.dot-project{background:#2563eb}.dot-active{background:#f59e0b}.dot-done{background:#059669}.dot-paused{background:#8a94a6}.map-pro-canvas-wrap{position:relative;overflow:hidden;padding:0}.map-pro-canvas-wrap #wells-map{width:100%!important;height:100%!important;min-height:100%!important;border-radius:20px;background:#dbeafe}.map-tool-stack{position:absolute;z-index:500;right:18px;top:18px;display:grid;gap:8px}.map-tool-stack button{width:42px;height:42px;border:1px solid #dce8f4;background:#fff;border-radius:12px;color:#0b376d;font-weight:950;box-shadow:0 10px 24px rgba(6,43,85,.12)}.map-pro-info{display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;min-width:0}.map-well-card{position:relative;padding:22px 22px 18px;border-bottom:1px solid #e5eef7}.map-card-close{position:absolute;right:18px;top:16px;border:0;background:#fff;color:#0b376d;font-size:24px;font-weight:800}.map-chip-row{display:flex;align-items:center;gap:10px;margin-bottom:12px}.map-chip-blue{color:#0b5fc9;font-weight:950}.map-chip-status{padding:6px 12px;border-radius:999px;background:#eaf4ff;color:#2563eb;font-weight:950;font-size:12px}.map-chip-status.active{background:#fff0d8;color:#b76a00}.map-chip-status.done{background:#dcf8e8;color:#05834a}.map-chip-status.paused{background:#eef1f5;color:#667085}.map-well-card h2{margin:0;color:#06428a;font-size:28px;font-weight:950}.map-well-card p{margin:8px 0 16px;color:#6b7f95;font-size:15px}.map-tabs{display:flex;gap:2px;border-bottom:1px solid #e5eef7;margin:0 -22px 16px;padding:0 22px;overflow:auto}.map-tabs button{border:0;background:transparent;color:#667b93;font-weight:900;padding:13px 13px 12px;border-bottom:3px solid transparent;white-space:nowrap}.map-tabs button.active{color:#2563eb;border-bottom-color:#2563eb}.map-info-rows{display:grid;gap:10px}.map-info-rows div{display:grid;grid-template-columns:150px 1fr;gap:10px;align-items:start}.map-info-rows span{color:#6b7f95;font-weight:900}.map-info-rows b{color:#0b2d55;font-weight:900}.map-well-card .ref-primary{margin-top:18px;width:100%;height:46px;padding:0}.map-list-card{padding:18px 22px;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr)}.map-list-head{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:12px}.map-list-head h3{margin:0;color:#062b55;font-size:18px}.map-list-head input{height:42px;border:1px solid #cfddec;border-radius:12px;padding:0 12px}.map-point-list.pro{display:grid;gap:8px;max-height:none;height:100%;overflow:auto;padding-right:4px}.map-point-list.pro button{position:relative;display:grid;grid-template-columns:92px 1fr auto;align-items:center;gap:8px;width:100%;border:0;border-left:4px solid transparent;border-radius:12px;background:#fff;padding:12px 10px;text-align:left;box-shadow:inset 0 0 0 1px #e0eaf5;color:#0b2d55}.map-point-list.pro button.active,.map-point-list.pro button:hover{background:#f3f8ff;border-left-color:#2563eb}.map-point-list.pro b{font-size:16px;color:#06428a}.map-point-list.pro span{font-size:12px;color:#687d94;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-point-list.pro em{justify-self:start;padding:5px 9px;border-radius:999px;font-style:normal;font-size:12px;font-weight:950}.map-point-list.pro em.project{background:#eaf4ff;color:#2563eb}.map-point-list.pro em.active{background:#fff0d8;color:#b76a00}.map-point-list.pro em.done{background:#dcf8e8;color:#05834a}.map-point-list.pro em.paused{background:#eef1f5;color:#667085}.map-point-list.pro strong{grid-column:3;grid-row:1;color:#526981;font-weight:900;font-size:12px}.map-empty{padding:20px;text-align:center;color:#718096}.map-div-marker{background:transparent!important;border:0!important;display:flex;align-items:center;gap:4px}.map-div-marker span{display:block;width:18px;height:18px;border-radius:999px;border:3px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.28)}.map-div-marker b{background:#fff;border:1px solid #dce8f4;border-radius:8px;padding:4px 8px;color:#0b2d55;box-shadow:0 6px 14px rgba(6,43,85,.15);font-weight:950;white-space:nowrap}.leaflet-popup-content a{color:#0b5fc9;font-weight:900}.hidden{display:none!important}@media(max-width:1500px){.map-pro-page{padding-left:16px;padding-right:16px}.map-pro-grid{grid-template-columns:310px minmax(520px,1fr) 350px;gap:14px}.map-stat-grid{grid-template-columns:repeat(2,1fr)}.map-info-rows div{grid-template-columns:120px 1fr}.ref-map-pro .ref-nav a{min-width:82px}}@media(max-width:1150px){.map-pro-grid{height:auto;grid-template-columns:1fr}.map-pro-canvas-wrap{height:620px}.map-pro-info{display:block}.map-pro-page{padding:18px}.ref-map-pro .ref-topbar{height:auto!important;grid-template-columns:1fr!important}.ref-map-pro .ref-nav{overflow:auto;justify-content:flex-start}.ref-map-pro .ref-user{justify-content:flex-start}.map-point-list.pro{max-height:360px}.map-info-rows div{grid-template-columns:1fr}}

/* v114 professional full-screen map corrections */
.ref-map-pro .leaflet-control-zoom{border:0!important;box-shadow:0 10px 26px rgba(6,43,85,.14)!important}.ref-map-pro .leaflet-control-zoom a{width:38px!important;height:38px!important;line-height:38px!important;border:1px solid #dce8f4!important;color:#0b376d!important;font-weight:950!important}.ref-map-pro .leaflet-control-attribution{font-size:10px!important}.map-pro-filters::-webkit-scrollbar,.map-point-list.pro::-webkit-scrollbar{width:8px;height:8px}.map-pro-filters::-webkit-scrollbar-thumb,.map-point-list.pro::-webkit-scrollbar-thumb{background:#c6d6e8;border-radius:999px}.map-pro-filters::-webkit-scrollbar-track,.map-point-list.pro::-webkit-scrollbar-track{background:transparent}.map-pro-panel{min-height:0}.map-pro-panel-head h2{font-size:20px}.map-stat-grid div{min-height:58px}.map-field{margin:10px 0}.map-legend{padding-bottom:4px}.map-div-marker b{max-width:74px;overflow:hidden;text-overflow:ellipsis}.map-div-marker:hover b{max-width:none;z-index:5}
@media(min-width:1700px){.map-pro-grid{grid-template-columns:330px minmax(980px,1fr) 440px}.map-pro-page{padding-left:34px;padding-right:34px}.map-pro-title{padding:0 2px}.map-info-rows div{grid-template-columns:155px 1fr}}

/* v115 map panel fixes */
.ref-map-pro .map-pro-grid{grid-template-columns:320px minmax(720px,1fr) 420px!important;gap:18px!important;}
.ref-map-pro .map-pro-info{overflow:hidden!important;}
.ref-map-pro .map-well-card{padding:22px 24px 20px!important;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);}
.ref-map-pro .map-section-title{margin:16px -24px 16px;padding:13px 24px 12px;border-top:1px solid #e5eef7;border-bottom:1px solid #e5eef7;color:#0b5fc9;font-weight:950;background:#fbfdff;}
.ref-map-pro .map-info-rows{gap:0!important;border:1px solid #e5eef7;border-radius:16px;overflow:hidden;background:#fff;}
.ref-map-pro .map-info-rows div{grid-template-columns:145px minmax(0,1fr)!important;padding:11px 14px;border-bottom:1px solid #eef3f9;}
.ref-map-pro .map-info-rows div:last-child{border-bottom:0;}
.ref-map-pro .map-info-rows span{font-size:13px;color:#657991;}
.ref-map-pro .map-info-rows b{font-size:13px;word-break:break-word;text-align:right;}
.ref-map-pro .map-well-card .ref-primary{border-radius:12px!important;margin-top:16px!important;}
.ref-map-pro .map-list-card{padding:18px 24px!important;background:#fff;}
.ref-map-pro .map-list-head h3{font-size:17px!important;}
.ref-map-pro .map-point-list.pro button{grid-template-columns:80px minmax(0,1fr) auto!important;padding:12px 12px!important;}
.ref-map-pro .map-chip-row{padding-right:34px;}
.ref-map-pro .map-card-close{right:20px!important;top:18px!important;background:#f7fbff!important;border:1px solid #dce8f4!important;border-radius:10px!important;width:34px!important;height:34px!important;line-height:28px!important;font-size:20px!important;}
.ref-map-pro .map-mini-btn{display:none!important;}
@media(max-width:1500px){.ref-map-pro .map-pro-grid{grid-template-columns:300px minmax(500px,1fr) 390px!important;gap:14px!important}.ref-map-pro .map-info-rows div{grid-template-columns:135px minmax(0,1fr)!important;padding:10px 12px}.ref-map-pro .map-well-card h2{font-size:24px!important}}
@media(max-width:1150px){.ref-map-pro .map-pro-grid{grid-template-columns:1fr!important}.ref-map-pro .map-info-rows div{grid-template-columns:1fr!important}.ref-map-pro .map-info-rows b{text-align:left}}

/* ===================== GeoSoft v116 Wells Professional ===================== */
body.wells-ref-page{background:linear-gradient(180deg,#f7fbff 0%,#eef8f7 100%);color:#0b2b55;min-height:100vh;overflow:hidden;}
.wells-ref-page .ref-topbar{height:78px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.92);border-bottom:1px solid #dbe8f6;box-shadow:0 12px 30px rgba(11,43,85,.06);position:sticky;top:0;z-index:50;backdrop-filter:blur(12px)}
.wells-ref-page .ref-brand{display:flex;align-items:center;gap:10px;min-width:210px}.wells-ref-page .ref-brand img{height:52px;width:auto}.wells-ref-page .ref-brand b{font-size:17px}.wells-ref-page .ref-brand small{display:block;text-transform:uppercase;letter-spacing:.08em;color:#0b2b55;font-weight:800;font-size:11px}.wells-ref-page .ref-nav{display:flex;align-items:center;gap:20px}.wells-ref-page .ref-nav a{display:flex;align-items:center;gap:8px;height:58px;padding:0 10px;color:#0b2b55;text-decoration:none;font-weight:800;border-bottom:3px solid transparent}.wells-ref-page .ref-nav a.active{color:#059669;border-bottom-color:#10b981;background:linear-gradient(180deg,rgba(16,185,129,.07),rgba(255,255,255,0));}.wells-ref-page .ref-user{display:flex;align-items:center;gap:16px}.wells-ref-page .ref-online{background:#dcfce7;color:#047857;border:1px solid #a7f3d0;border-radius:999px;padding:8px 14px;font-weight:900}.wells-ref-page .ref-user-name{text-align:right}.wells-ref-page .ref-user-name b{display:block}.wells-ref-page .ref-user-name small{color:#64748b}.wells-ref-page .ref-logout{height:44px;min-width:110px;border:0;border-radius:12px;background:#0b3a73;color:white;font-weight:900;box-shadow:0 10px 22px rgba(11,58,115,.18)}
.wells-pro-page{height:calc(100vh - 78px);padding:24px 28px;display:grid;grid-template-columns:300px minmax(620px,1fr) 370px;gap:24px;overflow:hidden}.wells-pro-panel{background:rgba(255,255,255,.92);border:1px solid #dbe8f6;border-radius:16px;box-shadow:0 18px 40px rgba(11,43,85,.08)}
.wells-pro-filters{padding:22px 20px;overflow:auto}.wells-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;border-bottom:1px solid #e5edf7;padding-bottom:12px}.wells-panel-head h2{margin:0;font-size:18px}.wells-view-switch-top{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 18px}.wells-view-switch-top .wells-view{height:42px}
.wells-field{margin-bottom:14px}.wells-field label{display:block;font-weight:900;font-size:12px;margin-bottom:8px;color:#0b2b55}.wells-field input,.wells-field select{width:100%;height:44px;border:1px solid #cfe0f2;border-radius:10px;background:#fff;color:#0b2b55;padding:0 14px;font-weight:750;outline:none}.wells-field input:focus,.wells-field select:focus{border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.wells-range>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wells-primary,.wells-secondary,.wells-danger,.wells-view{display:flex;align-items:center;justify-content:center;width:100%;height:46px;border-radius:10px;text-decoration:none;font-weight:950;border:1px solid transparent;cursor:pointer}.wells-primary{background:linear-gradient(135deg,#0ea66b,#12b981);color:white;box-shadow:0 10px 24px rgba(16,185,129,.22)}.wells-secondary{background:white;color:#0b3a73;border-color:#cfe0f2}.wells-danger{background:white;color:#dc2626;border-color:#fecaca}.wells-link{width:100%;height:40px;border:0;background:transparent;color:#0b58b8;font-weight:900;cursor:pointer}.wells-filter-section{margin-top:22px;padding-top:18px;border-top:1px solid #e5edf7;display:grid;gap:10px}.wells-filter-section h3{margin:0 0 4px;font-size:13px;text-transform:uppercase;letter-spacing:.04em}.wells-view{background:white;color:#0b2b55;border-color:#cfe0f2}.wells-view.active{background:#0ea66b;color:white;border-color:#0ea66b}.wells-pro-content{overflow:hidden;display:flex;flex-direction:column}.wells-content-head{display:flex;align-items:flex-start;justify-content:space-between;margin:8px 0 18px}.wells-content-head h1{font-size:36px;line-height:1;margin:0 0 8px}.wells-content-head p{margin:0 0 14px;color:#59708d}.wells-content-head small{color:#315374;font-weight:800}.wells-sort{display:flex;align-items:center;gap:10px;margin-top:38px}.wells-sort label{color:#59708d;font-weight:800}.wells-sort select{height:44px;border:1px solid #cfe0f2;border-radius:10px;background:white;padding:0 14px;font-weight:900;color:#0b2b55}.wells-cards-grid{overflow:auto;padding:2px 4px 40px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;align-content:start}.wells-card{background:rgba(255,255,255,.96);border:1px solid #dbe8f6;border-radius:14px;padding:18px;min-height:210px;box-shadow:0 12px 28px rgba(11,43,85,.06);cursor:pointer;transition:.18s ease;display:flex;flex-direction:column}.wells-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(11,43,85,.1)}.wells-card.selected{border-color:#10b981;box-shadow:0 0 0 2px rgba(16,185,129,.25),0 18px 34px rgba(16,185,129,.12)}.wells-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.wells-card h3{font-size:22px;margin:0}.well-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:4px 11px;border-radius:999px;font-weight:950;font-size:12px;background:#fef3c7;color:#a16207}.well-status-pill.в-работе{background:#dbeafe;color:#1d4ed8}.well-status-pill.завершена{background:#dcfce7;color:#15803d}.well-status-pill.проверена{background:#ede9fe;color:#7c3aed}.well-status-pill.project,.well-status-pill.проект{background:#fef3c7;color:#a16207}.wells-card-depth{margin:16px 0}.wells-card-depth small{display:block;color:#64748b;font-weight:800}.wells-card-depth b{font-size:22px}.wells-card-depth span{font-size:14px}.wells-card-row{margin:8px 0}.wells-card-row span{display:block;color:#6b7f99;font-size:13px;font-weight:750}.wells-card-row b{font-size:15px}.wells-card-coords{margin-top:auto;background:#f3f7fb;border-radius:9px;padding:8px 10px;display:grid;gap:3px;font-size:13px;font-weight:900}.wells-card-actions{display:none!important}.wells-table-wrap{overflow:auto;background:#fff;border:1px solid #dbe8f6;border-radius:14px;box-shadow:0 12px 28px rgba(11,43,85,.06)}.wells-pro-detail{position:relative;padding:26px 24px;overflow:auto}.wells-detail-close{position:absolute;top:18px;right:18px;border:0;background:transparent;color:#0b3a73;font-size:28px;cursor:pointer}.wells-pro-detail h2{font-size:30px;margin:12px 0 16px}.wells-detail-list{margin-top:20px;border-top:1px solid #e5edf7;border-bottom:1px solid #e5edf7;padding:14px 0;display:grid;gap:14px}.wells-detail-list div{display:grid;grid-template-columns:135px 1fr;gap:12px;align-items:start}.wells-detail-list span{color:#59708d;font-weight:800}.wells-detail-list b{font-weight:950;color:#0b2b55}.wells-detail-actions{display:grid;gap:12px;margin-top:24px}.hidden{display:none!important}.wells-empty{padding:30px;background:#fff;border:1px solid #dbe8f6;border-radius:14px;color:#64748b}
@media(max-width:1400px){.wells-pro-page{grid-template-columns:280px 1fr 330px;gap:16px;padding:18px}.wells-ref-page .ref-nav{gap:10px}.wells-cards-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.wells-content-head h1{font-size:30px}}

/* v118 wells fixes: no hover details, no close icon in inspector, functional edit modal */
.wells-card{min-height:178px!important;overflow:hidden!important;transform:none!important;}
.wells-card:hover{transform:none!important;box-shadow:0 12px 28px rgba(11,43,85,.08)!important;}
.wells-card-coords,.wells-card-actions{display:none!important;visibility:hidden!important;}
.wells-card::before,.wells-card::after{display:none!important;content:none!important;}
.wells-pro-detail{padding-top:30px!important;}
.wells-detail-close{display:none!important;}
.wells-edit-modal{max-width:920px!important;width:min(920px,94vw)!important;}
.wells-edit-form{display:grid!important;grid-template-columns:1fr 1fr!important;gap:14px 18px!important;}
.wells-edit-form label{display:flex!important;flex-direction:column!important;gap:7px!important;}
.wells-edit-form .wide{grid-column:1 / -1!important;}
.wells-edit-form input,.wells-edit-form select,.wells-edit-form textarea{width:100%!important;}
.wells-edit-form .modal-actions-row{display:flex!important;justify-content:flex-end!important;gap:12px!important;margin-top:8px!important;}
#detail-edit{cursor:pointer!important;}

/* v119: table rows select the well instead of navigating to intervals */
.wells-table-row{cursor:pointer;}
.wells-table-row.selected{outline:2px solid var(--green,#12b981); outline-offset:-2px; background:#f0fdf8!important;}
.wells-row-select{cursor:pointer; border:0; font:inherit;}

/* v120 — Геологический экран интервалов */
.intervals-ref-page{background:#f3fafc;color:#092651;min-height:100vh;overflow:hidden}.intervals-pro-page{display:grid;grid-template-columns:300px minmax(0,1fr)360px;gap:18px;padding:22px 24px 24px;height:calc(100vh - 86px);box-sizing:border-box}.intervals-panel{background:rgba(255,255,255,.96);border:1px solid #d9e8f3;border-radius:18px;box-shadow:0 12px 32px rgba(15,45,75,.08);overflow:auto}.intervals-well-panel{padding:18px}.intervals-panel-title h2{font-size:34px;margin:6px 0 4px;letter-spacing:-.02em}.mini-chip{display:inline-flex;padding:5px 10px;border-radius:999px;background:#e8fbf2;color:#008d5f;font-weight:900;font-size:12px}.intervals-well-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.intervals-well-metrics div{background:#f4f8fb;border:1px solid #dceaf4;border-radius:13px;padding:12px}.intervals-well-metrics small,.intervals-info-list span,.interval-detail-list span{display:block;color:#63748b;font-weight:800;font-size:12px}.intervals-well-metrics b{font-size:22px;color:#06366c}.intervals-info-list,.interval-detail-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}.intervals-info-list div,.interval-detail-list div{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px 0;border-bottom:1px solid #edf3f8}.intervals-info-list b,.interval-detail-list b{font-size:14px;text-align:right}.intervals-actions-block{display:flex;flex-direction:column;gap:10px;margin:18px 0}.intervals-status-form{border-top:1px solid #e8f0f7;padding-top:14px;display:flex;flex-direction:column;gap:10px}.intervals-status-form h3{margin:0 0 4px}.intervals-status-form label{font-weight:900;font-size:12px;color:#52687e}.intervals-status-form select,.intervals-status-form button{width:100%;height:42px;border-radius:12px}.intervals-status-form button{border:0;background:#073b72;color:#fff;font-weight:900}.intervals-main{min-width:0;overflow:auto;padding-right:2px}.intervals-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}.intervals-head h1{font-size:32px;line-height:1.05;margin:0;color:#082a58}.intervals-head p{margin:8px 0 0;color:#62758d;font-size:15px}.intervals-view-switch{display:flex;gap:8px;background:#fff;border:1px solid #dbe8f2;border-radius:14px;padding:5px;box-shadow:0 8px 20px rgba(0,30,70,.06)}.interval-view{height:38px;padding:0 16px;border:0;border-radius:10px;background:transparent;color:#07366a;font-weight:900;cursor:pointer}.interval-view.active{background:#10b981;color:#fff}.intervals-review-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.intervals-review-strip div{background:#fff;border:1px solid #dceaf4;border-radius:16px;padding:14px 16px}.intervals-review-strip small{display:block;color:#64758a;font-weight:800}.intervals-review-strip b{font-size:28px;color:#07366a}.intervals-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:14px;padding-bottom:20px}.interval-card{background:#fff;border:1px solid #dce8f2;border-radius:17px;padding:16px;box-shadow:0 8px 22px rgba(13,48,86,.06);cursor:pointer;transition:.15s ease;min-height:205px}.interval-card:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(13,48,86,.1)}.interval-card.selected{border-color:#10b981;box-shadow:0 0 0 2px rgba(16,185,129,.18),0 12px 28px rgba(13,48,86,.12)}.interval-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.interval-card-top h3{font-size:21px;margin:0;color:#062755}.review-pill{display:inline-flex;border-radius:999px;padding:6px 10px;font-weight:900;font-size:11px;background:#eaf2ff;color:#135fc2}.review-pill.принят{background:#dcfce7;color:#118346}.review-pill.требует-исправления{background:#fee2e2;color:#cc2929}.review-pill.черновик{background:#fff3cf;color:#9b6500}.interval-rock-line{display:flex;align-items:center;gap:9px;margin:14px 0}.interval-rock-line b{font-size:16px}.interval-rock-line em{margin-left:auto;font-style:normal;background:#eef6ff;color:#0a57a5;border-radius:8px;padding:5px 8px;font-weight:900;font-size:11px}.rock-swatch{width:18px;height:18px;border-radius:6px;background:#b8c0c8;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}.rock-swatch.sand{background:#ffd54f}.rock-swatch.clay{background:#b87542}.rock-swatch.grvl{background:#9ea4aa}.interval-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.interval-card-grid div{background:#f7fafc;border-radius:11px;padding:9px}.interval-card-grid small{display:block;color:#718297;font-weight:800;font-size:11px}.interval-card-grid b{font-size:13px}.interval-card p{margin:10px 0 0;color:#587089;font-size:13px;line-height:1.35}.intervals-empty{grid-column:1/-1;background:#fff;border:1px dashed #c8d8e8;border-radius:18px;padding:28px;color:#66758b}.intervals-table-wrap{background:#fff;border:1px solid #dbe8f2;border-radius:18px;overflow:auto}.intervals-table-pro{width:100%;min-width:980px}.interval-row{cursor:pointer}.interval-row.selected td{background:#f0fdf7!important}.interval-detail-panel{padding:22px;display:flex;flex-direction:column}.interval-detail-panel h2{font-size:30px;margin:0 0 8px;color:#062755}.interval-description-box{margin:18px 0;padding:14px;border-radius:14px;background:#f7fbfd;border:1px solid #e1edf5}.interval-description-box span{display:block;color:#63748b;font-weight:900;font-size:12px;margin-bottom:8px}.interval-description-box p{margin:0;line-height:1.45}.interval-detail-actions{margin-top:auto;display:flex;flex-direction:column;gap:10px}.interval-modern-modal{width:min(940px,92vw)!important}.interval-edit-form{display:grid!important;grid-template-columns:1fr 1fr;gap:14px}.interval-edit-form label{display:flex;flex-direction:column;gap:6px;font-weight:900;color:#4e657d}.interval-edit-form input,.interval-edit-form select,.interval-edit-form textarea{border:1px solid #cfe0ee;border-radius:12px;padding:11px 12px;font-weight:800;color:#062755;background:#fff}.interval-edit-form select[multiple]{min-height:120px}.interval-edit-form .wide{grid-column:1/-1}.hidden{display:none!important}@media(max-width:1300px){.intervals-pro-page{grid-template-columns:280px minmax(0,1fr);height:auto;overflow:visible}.interval-detail-panel{grid-column:1/-1}.intervals-ref-page{overflow:auto}}@media(max-width:900px){.intervals-pro-page{grid-template-columns:1fr;padding:14px}.intervals-review-strip{grid-template-columns:1fr 1fr}}

/* v121: геологический экран интервалов с колонкой */
.intervals-ref-page{background:#f4fafc;color:#082650;min-height:100vh;overflow:hidden}.geo-interval-page{display:grid;grid-template-columns:300px minmax(760px,1fr)360px;gap:22px;padding:26px 28px;height:calc(100vh - 82px);box-sizing:border-box}.geo-well-card,.geo-interval-center,.geo-interval-detail{min-width:0}.geo-back-link{display:inline-flex;align-items:center;height:38px;padding:0 12px;border:1px solid #d9e8f3;border-radius:12px;background:#fff;color:#0a3f7b;text-decoration:none;font-weight:900;margin-bottom:16px}.geo-side-card,.geo-interval-center,.geo-interval-detail{background:rgba(255,255,255,.97);border:1px solid #dce9f3;border-radius:18px;box-shadow:0 14px 35px rgba(10,42,74,.08)}.geo-side-card{padding:18px;margin-bottom:16px}.geo-side-label,.detail-kicker{color:#6b7d94;font-weight:900;font-size:13px;margin-bottom:6px}.geo-well-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #edf3f8;padding-bottom:14px;margin-bottom:12px}.geo-well-title-row h2{font-size:34px;line-height:1;margin:0;color:#062b59}.geo-info-list,.geo-detail-list{display:flex;flex-direction:column;gap:0}.geo-info-list div,.geo-detail-list div{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:10px 0;border-bottom:1px solid #edf3f8}.geo-info-list span,.geo-detail-list span{font-size:13px;font-weight:900;color:#667990}.geo-info-list b,.geo-detail-list b{text-align:right;color:#092a58;font-size:14px}.geo-left-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px}.geo-btn-primary,.geo-btn-secondary,.geo-btn-danger{height:44px;border-radius:12px;border:1px solid #cfe0ee;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:900;cursor:pointer;box-sizing:border-box}.geo-btn-primary{background:#10b981;border-color:#10b981;color:#fff;box-shadow:0 10px 22px rgba(16,185,129,.18)}.geo-btn-secondary{background:#fff;color:#0a4a8f}.geo-btn-danger{width:100%;background:#fff;color:#e11d48;border-color:#fecdd3}.ox-legend-card h3,.geo-side-card h3{margin:0 0 12px;color:#092a58}.geo-legend-row{display:flex;align-items:center;gap:10px;margin:10px 0;color:#4b6078;font-weight:800}.geo-status-form{display:flex;flex-direction:column;gap:10px}.geo-status-form label{font-size:12px;color:#667990;font-weight:900;display:flex;flex-direction:column;gap:6px}.geo-status-form select{height:42px;border:1px solid #cfdfed;border-radius:12px;background:#fff;padding:0 12px;color:#092a58;font-weight:800}.geo-status-form button{height:42px;border:0;border-radius:12px;background:#073b72;color:#fff;font-weight:900}.geo-interval-center{padding:0;overflow:hidden;display:flex;flex-direction:column}.geo-interval-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:24px 26px 16px}.geo-interval-head h1{font-size:32px;line-height:1;margin:0;color:#062b59;letter-spacing:-.02em}.geo-interval-head p{margin:8px 0 8px;color:#64768d;font-size:16px}.geo-head-metrics{display:flex;gap:28px;flex-wrap:wrap;color:#4d6179;font-weight:800}.geo-head-metrics b{color:#092a58}.geo-interval-toolbar{display:flex;align-items:center;gap:16px}.geo-view-toggle{display:flex;gap:6px;background:#fff;border:1px solid #d7e5f0;border-radius:12px;padding:5px;box-shadow:0 8px 20px rgba(8,42,88,.06)}.geo-view-toggle .interval-view{height:40px;border:0;border-radius:9px;padding:0 18px;background:transparent;color:#0a3f7b;font-weight:900;cursor:pointer}.geo-view-toggle .interval-view.active{background:#10b981;color:#fff}.geo-column-table{margin:0 26px 16px;border:1px solid #dbe8f2;border-radius:16px;background:#fff;overflow:auto;flex:1}.geo-column-table table{width:100%;min-width:930px;border-collapse:separate;border-spacing:0}.geo-column-table th{position:sticky;top:0;background:#f7fbff;color:#0a2f61;font-size:13px;text-align:left;padding:12px 14px;border-bottom:1px solid #dfeaf3;z-index:2}.geo-column-table td{padding:0 14px;border-bottom:1px solid #e8f0f6;color:#12365f;font-weight:700;height:58px;vertical-align:middle}.geo-column-table tr{cursor:pointer}.geo-column-table tr:hover td{background:#f7fcff}.geo-column-table tr.selected td{background:#f0fdf8}.geo-column-table .depth-col{width:110px}.geo-column-table .log-col{width:120px;text-align:center}.depth-scale{font-variant-numeric:tabular-nums;color:#2c4e73!important;font-size:14px;position:relative}.depth-scale:after{content:"";position:absolute;right:0;top:0;bottom:0;border-right:2px solid #8aa4bc}.depth-scale span{display:block;line-height:1.35}.log-cell{padding:0!important;text-align:center}.geo-log-block{height:58px;width:92px;margin:0 auto;border-left:1px solid rgba(0,0,0,.15);border-right:1px solid rgba(0,0,0,.15);box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}.rock-sand{background:#ffd95a;background-image:radial-gradient(rgba(90,70,20,.35) 1.2px, transparent 1.2px);background-size:12px 12px}.rock-clay{background:#a96338;background-image:radial-gradient(rgba(70,35,15,.25) 1px, transparent 1px);background-size:9px 9px}.rock-grvl{background:#9fa5a8;background-image:linear-gradient(45deg,rgba(255,255,255,.25) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.25) 75%),linear-gradient(45deg,rgba(0,0,0,.08) 25%,transparent 25%,transparent 75%,rgba(0,0,0,.08) 75%);background-size:22px 22px;background-position:0 0,11px 11px}.rock-silt,.rock-slt{background:#d8bc89;background-image:radial-gradient(rgba(90,70,30,.25) 1px, transparent 1px);background-size:8px 8px}.rock-ls,.rock-dol{background:#cfd5d8;background-image:linear-gradient(90deg,rgba(0,0,0,.12) 1px,transparent 1px),linear-gradient(rgba(0,0,0,.12) 1px,transparent 1px);background-size:18px 14px}.rock-sch{background:#676d72;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.2) 0 2px,transparent 2px 8px)}.rock-—,.rock-none{background:#d8dee5}.color-dot{display:inline-block;width:12px;height:12px;border-radius:999px;background:#f7c948;margin-right:8px;vertical-align:-1px}.ox-badge{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:24px;border-radius:8px;padding:0 8px;font-size:12px;font-weight:900;border:1px solid transparent}.ox-badge.ox{background:#fff4e8;color:#f97316;border-color:#fed7aa}.ox-badge.pox{background:#eff6ff;color:#2563eb;border-color:#93c5fd}.ox-badge.pr{background:#f4f0ff;color:#6d28d9;border-color:#c4b5fd}.geo-ox-footer{display:flex;gap:16px;align-items:center;margin:0 26px 20px;flex-wrap:wrap}.geo-ox-footer span{background:#fff;border:1px solid #dbe8f2;border-radius:12px;padding:8px 12px;color:#50647c;font-weight:800}.geo-interval-detail{padding:24px;display:flex;flex-direction:column;overflow:auto}.geo-interval-detail h2{font-size:32px;margin:2px 0 10px;color:#062b59;line-height:1.1}.detail-top-badges{display:flex;gap:8px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid #e8f0f7}.geo-detail-list div{grid-template-columns:130px 1fr}.geo-detail-list b{text-align:left}.geo-photo-section{margin:18px 0}.geo-photo-section h3{margin:0 0 12px;color:#092a58}.geo-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.geo-photo-grid a{height:86px;border-radius:12px;overflow:hidden;border:1px solid #dce9f3;background:#f4f8fb}.geo-photo-grid img{width:100%;height:100%;object-fit:cover;display:block}.geo-photo-empty{grid-column:1/-1;border:1px dashed #c6d8e8;border-radius:12px;padding:22px;text-align:center;color:#75869a;font-weight:800}.interval-detail-actions{margin-top:auto;display:flex;flex-direction:column;gap:12px}.interval-detail-actions form{margin:0}.interval-description-box{margin:16px 0;padding:14px;border-radius:14px;background:#f8fbfd;border:1px solid #e1edf5}.interval-description-box span{display:block;font-size:12px;font-weight:900;color:#6a7a8f;margin-bottom:8px}.interval-description-box p{margin:0;color:#18395e;line-height:1.45}.intervals-table-wrap{margin:0 26px 16px;flex:1}.interval-row.selected td{background:#f0fdf8!important}.empty-table-cell{text-align:center;padding:30px!important;color:#75869a!important}.hidden{display:none!important}@media(max-width:1400px){.geo-interval-page{grid-template-columns:280px minmax(620px,1fr)330px;gap:16px;padding:18px}}@media(max-width:1100px){.intervals-ref-page{overflow:auto}.geo-interval-page{grid-template-columns:1fr;height:auto}.geo-interval-detail{min-height:520px}.geo-interval-toolbar{flex-wrap:wrap}.geo-column-table{margin:0 14px 14px}.geo-interval-head{padding:18px}.geo-ox-footer{margin:0 14px 14px}}

/* v122 intervals right panel actions and geocolumn polish */
.geo-interval-row.selected td,
.interval-row.selected td{
  background:#eefdf6!important;
  box-shadow:inset 3px 0 0 #10b981;
}
.geo-interval-detail{
  padding-bottom:18px;
}
.geo-interval-detail .geo-photo-section{
  margin-bottom:12px;
}
.geo-interval-detail .interval-detail-actions{
  margin-top:16px;
  position:sticky;
  bottom:0;
  background:linear-gradient(180deg, rgba(255,255,255,.72), #fff 18%);
  padding-top:14px;
  border-top:1px solid #e8f0f7;
  z-index:3;
}
.geo-interval-detail .interval-detail-actions .geo-btn-primary,
.geo-interval-detail .interval-detail-actions .geo-btn-secondary,
.geo-interval-detail .interval-detail-actions .geo-btn-danger{
  width:100%;
  min-height:44px;
  font-size:14px;
}
.geo-interval-detail .interval-detail-actions form{
  margin:0;
}
.geo-log-block.rock-none,
.geo-log-block.rock-undefined{
  background:#d7dee5;
}
.geo-log-block.rock-песок,
.geo-log-block.rock-песчаник{
  background:#ffd95a;
  background-image:radial-gradient(rgba(90,70,20,.35) 1.2px, transparent 1.2px);
  background-size:12px 12px;
}
.geo-log-block.rock-глина{
  background:#a96338;
  background-image:radial-gradient(rgba(70,35,15,.25) 1px, transparent 1px);
  background-size:9px 9px;
}
.geo-log-block.rock-гравий{
  background:#9fa5a8;
  background-image:linear-gradient(45deg,rgba(255,255,255,.25) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.25) 75%),linear-gradient(45deg,rgba(0,0,0,.08) 25%,transparent 25%,transparent 75%,rgba(0,0,0,.08) 75%);
  background-size:22px 22px;
  background-position:0 0,11px 11px;
}

/* v124 — финальная доводка экрана интервалов */
.intervals-ref-page .geo-ox-footer,
.intervals-ref-page .ox-legend-card{display:none!important;}

.geo-column-table td{height:62px!important;}
.geo-log-block{min-height:62px!important;border-radius:0!important;}
.geo-log-block.rock-sand,
.geo-log-block.rock-песок,
.geo-log-block.rock-песчаник{background:#ffd75a!important;background-image:radial-gradient(rgba(70,55,15,.38) 1.1px, transparent 1.2px)!important;background-size:11px 11px!important;}
.geo-log-block.rock-clay,
.geo-log-block.rock-глина{background:#a9663d!important;background-image:radial-gradient(rgba(65,32,12,.32) 1px, transparent 1.1px)!important;background-size:9px 9px!important;}
.geo-log-block.rock-grvl,
.geo-log-block.rock-гравий{background:#9ca3a8!important;background-image:linear-gradient(45deg,rgba(255,255,255,.28) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.28) 75%),linear-gradient(45deg,rgba(0,0,0,.1) 25%,transparent 25%,transparent 75%,rgba(0,0,0,.1) 75%)!important;background-size:22px 22px!important;background-position:0 0,11px 11px!important;}
.geo-log-block.rock-silt,
.geo-log-block.rock-slt,
.geo-log-block.rock-суглинок{background:#d7b783!important;background-image:radial-gradient(rgba(90,62,23,.28) 1px, transparent 1.1px)!important;background-size:8px 8px!important;}
.geo-log-block.rock-ls,
.geo-log-block.rock-dol,
.geo-log-block.rock-известняк,
.geo-log-block.rock-доломит{background:#cfd6da!important;background-image:linear-gradient(90deg,rgba(0,0,0,.12) 1px,transparent 1px),linear-gradient(rgba(0,0,0,.12) 1px,transparent 1px)!important;background-size:18px 14px!important;}
.geo-log-block.rock-sch,
.geo-log-block.rock-сланец{background:#676d72!important;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.2) 0 2px,transparent 2px 8px)!important;}
.color-dot.color-yellow{background:#ffd54f!important;}
.color-dot.color-brown{background:#9b5b33!important;}
.color-dot.color-gray{background:#9ea4aa!important;}
.color-dot.color-black{background:#343a40!important;}
.color-dot.color-red{background:#ef4444!important;}
.color-dot.color-green{background:#22c55e!important;}
.color-dot.color-blue{background:#3b82f6!important;}
.color-dot.color-default{background:#cbd5e1!important;}

.geo-interval-row.selected td,
.interval-row.selected td{background:#ecfdf5!important;box-shadow:inset 3px 0 0 #10b981!important;}
.geo-interval-row.selected .geo-log-block{outline:2px solid #10b981;outline-offset:-2px;}

.interval-modern-modal{width:min(980px,94vw)!important;border-radius:22px!important;overflow:hidden!important;box-shadow:0 28px 90px rgba(2,18,44,.28)!important;border:1px solid #d8e7f3!important;}
.interval-modern-modal .modal-header{padding:22px 26px 16px!important;border-bottom:1px solid #e7eff7!important;background:linear-gradient(180deg,#fff,#f8fbff)!important;}
.interval-modern-modal .modal-header h2{font-size:26px!important;letter-spacing:-.02em!important;color:#062b59!important;margin:0!important;}
.interval-modern-modal .modal-header .muted{font-size:14px!important;margin:6px 0 0!important;color:#6b7d94!important;}
.interval-modern-modal .modal-body{padding:24px 26px 26px!important;background:#fff!important;}
.interval-edit-form{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px 18px!important;}
.interval-edit-form label{font-size:13px!important;font-weight:900!important;color:#435b74!important;}
.interval-edit-form input,
.interval-edit-form select,
.interval-edit-form textarea{height:46px!important;border:1px solid #cfe0ee!important;border-radius:13px!important;padding:0 13px!important;background:#fff!important;color:#062755!important;font-weight:800!important;box-shadow:inset 0 1px 0 rgba(2,30,70,.02)!important;box-sizing:border-box!important;}
.interval-edit-form textarea{height:auto!important;min-height:86px!important;padding:12px 13px!important;resize:vertical!important;}
.interval-edit-form input[type="file"]{height:auto!important;padding:11px 13px!important;background:#f8fbff!important;}
.interval-edit-form input:focus,
.interval-edit-form select:focus,
.interval-edit-form textarea:focus{outline:none!important;border-color:#10b981!important;box-shadow:0 0 0 3px rgba(16,185,129,.14)!important;}
.interval-edit-form .wide{grid-column:1/-1!important;}
.interval-edit-form .modal-actions-row{grid-column:1/-1!important;display:flex!important;justify-content:flex-end!important;gap:12px!important;padding-top:18px!important;margin-top:4px!important;border-top:1px solid #e8f0f7!important;}
.interval-edit-form .modal-actions-row button{width:auto!important;min-width:150px!important;height:46px!important;border-radius:13px!important;padding:0 20px!important;font-weight:900!important;}
.interval-edit-form .modal-actions-row .ghost-button{background:#fff!important;color:#0a3f7b!important;border:1px solid #cfe0ee!important;}
.interval-edit-form .modal-actions-row button:not(.ghost-button){background:#073b72!important;color:#fff!important;border:1px solid #073b72!important;box-shadow:0 10px 22px rgba(7,59,114,.18)!important;}
.interval-photo-upload .photo-upload-hint{font-size:12px!important;color:#6b7d94!important;font-weight:700!important;margin-top:2px!important;}
.modal-photo-preview{display:grid;grid-template-columns:repeat(6,72px);gap:10px;margin-top:10px;min-height:0;}
.modal-photo-preview img{width:72px;height:72px;object-fit:cover;border-radius:12px;border:1px solid #dbe8f2;box-shadow:0 4px 12px rgba(6,35,68,.08);}
.modal-backdrop.create-entity-modal{background:rgba(15,23,42,.55)!important;backdrop-filter:blur(8px)!important;}

.geo-interval-detail .geo-detail-list div{grid-template-columns:150px 1fr!important;}
.geo-interval-detail .geo-detail-list span{font-size:13px!important;}
.geo-interval-detail .geo-detail-list b{font-size:14px!important;}

/* v125 GeoSoft Dashboard */
.gs-dashboard-page{background:linear-gradient(180deg,#f7fbff 0,#eef8f6 100%);min-height:100vh;color:#06224a}.gs-topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid #dce8f4}.gs-dashboard{width:calc(100vw - 48px);max-width:1820px;margin:0 auto;padding:28px 0 60px}.gs-dashboard-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.gs-dashboard-hero h1{font-size:34px;line-height:1.1;margin:4px 0 8px;font-weight:900;color:#06224a}.gs-dashboard-hero p{margin:0;color:#6b7d95;font-weight:650}.gs-eyebrow{display:inline-flex;padding:6px 12px;border-radius:999px;background:#e8fff4;color:#0a9a61;font-weight:900;font-size:12px}.gs-dashboard-actions{display:flex;gap:10px;align-items:center}.gs-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;padding:12px 18px;font-weight:900;text-decoration:none;border:1px solid #cfe0f0;background:#fff;color:#083464;cursor:pointer;box-shadow:0 10px 26px rgba(8,52,100,.08)}.gs-btn-primary{background:#083b73;color:#fff;border-color:#083b73}.gs-btn-secondary{background:#fff;color:#083b73}.gs-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:16px;margin-bottom:20px}.gs-kpi-card{background:#fff;border:1px solid #dbe8f5;border-radius:18px;padding:18px 20px;text-decoration:none;color:#06224a;box-shadow:0 12px 32px rgba(8,52,100,.06);min-height:110px;display:flex;flex-direction:column;justify-content:center}.gs-kpi-card small{font-size:13px;color:#6b7d95;font-weight:900;text-transform:uppercase;letter-spacing:.02em}.gs-kpi-card strong{font-size:32px;line-height:1.05;margin:8px 0 4px}.gs-kpi-card span{font-size:13px;color:#6b7d95;font-weight:700}.gs-dashboard-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:18px;margin-bottom:18px}.gs-panel{background:#fff;border:1px solid #dbe8f5;border-radius:20px;box-shadow:0 18px 40px rgba(8,52,100,.06);padding:20px}.gs-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px}.gs-panel-head h2{margin:0 0 5px;font-size:22px;color:#06224a}.gs-panel-head p{margin:0;color:#6b7d95;font-weight:650}.gs-mini-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cfe0f0;border-radius:12px;padding:10px 14px;text-decoration:none;color:#083b73;background:#fff;font-weight:900}.gs-well-list{display:grid;gap:10px}.gs-well-row{display:grid;grid-template-columns:100px 1fr auto 70px;gap:12px;align-items:center;width:100%;border:1px solid #e1ebf5;background:#f9fcff;border-radius:14px;padding:12px 14px;color:#06224a;text-align:left;cursor:pointer;transition:.15s ease}.gs-well-row:hover{border-color:#12b67a;box-shadow:0 12px 26px rgba(18,182,122,.12);transform:translateY(-1px)}.gs-well-row b{font-size:17px}.gs-well-row span,.gs-well-row small{color:#506784;font-weight:800}.gs-status{display:inline-flex;border-radius:999px;padding:5px 9px;background:#eef6ff;color:#0b61c8;font-weight:900;font-size:12px}.gs-status-проект{background:#fff3ce;color:#a16700}.gs-status-в-работе{background:#dfeeff;color:#0b61c8}.gs-status-завершена{background:#ddfae9;color:#087a4b}.gs-activity-list{display:flex;flex-direction:column;gap:10px}.gs-activity-item{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;text-decoration:none;color:#06224a;border:1px solid #e1ebf5;border-radius:14px;padding:12px;background:#fbfdff}.gs-activity-item>span{width:34px;height:34px;border-radius:12px;background:#eaf4ff;display:flex;align-items:center;justify-content:center;color:#0b61c8;font-weight:900}.gs-activity-item b{display:block}.gs-activity-item small{display:block;color:#6b7d95;margin-top:3px}.gs-activity-item time{color:#6b7d95;font-weight:800;font-size:12px}.gs-sites-panel{margin-top:18px}.gs-site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.gs-site-card{display:block;border:1px solid #dbe8f5;border-radius:18px;background:linear-gradient(180deg,#fff 0,#f8fcff 100%);padding:18px;text-decoration:none;color:#06224a;box-shadow:0 10px 24px rgba(8,52,100,.04);transition:.15s ease}.gs-site-card:hover{border-color:#12b67a;box-shadow:0 16px 32px rgba(18,182,122,.12);transform:translateY(-1px)}.gs-site-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.gs-site-top h3{font-size:22px;margin:0}.gs-site-top span{border-radius:999px;background:#fff3ce;color:#a16700;padding:5px 10px;font-weight:900;font-size:12px}.gs-site-card p{color:#6b7d95;font-weight:800;margin:8px 0 16px}.gs-site-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.gs-site-stats div{background:#f1f7fd;border:1px solid #dfeaf5;border-radius:14px;padding:10px}.gs-site-stats small{display:block;color:#6b7d95;font-weight:900;font-size:11px}.gs-site-stats b{display:block;margin-top:4px;font-size:16px}.gs-empty{border:1px dashed #cfe0f0;border-radius:16px;padding:22px;color:#6b7d95;font-weight:800;background:#fbfdff}.gs-modal-window{max-width:780px}.gs-modal-window .modal-header p{margin:4px 0 0;color:#6b7d95}.gs-site-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.gs-site-form label{display:flex;flex-direction:column;gap:6px;font-weight:900;color:#334b68}.gs-site-form input,.gs-site-form select{height:44px;border-radius:12px;border:1px solid #cfe0f0;padding:0 12px;font-weight:800;color:#06224a;background:#fff}.gs-modal-footer{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #e4eef7;padding-top:16px;margin-top:4px}@media(max-width:1280px){.gs-kpi-grid{grid-template-columns:repeat(3,1fr)}.gs-dashboard-grid{grid-template-columns:1fr}.gs-well-row{grid-template-columns:80px 1fr;}.gs-well-row em,.gs-well-row small{justify-self:start}}@media(max-width:900px){.gs-dashboard{width:calc(100vw - 24px)}.gs-dashboard-hero{flex-direction:column;align-items:flex-start}.gs-kpi-grid{grid-template-columns:repeat(2,1fr)}.gs-site-form{grid-template-columns:1fr}}

/* v126 Dashboard Polish */
.gs-dashboard{max-width:1900px;padding-top:24px}.gs-dashboard-hero{align-items:flex-start}.gs-dashboard-side{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap;justify-content:flex-end}.gs-sync-card{min-width:230px;background:#fff;border:1px solid #dbe8f5;border-radius:16px;padding:12px 16px;box-shadow:0 12px 30px rgba(8,52,100,.06);display:flex;flex-direction:column;justify-content:center}.gs-sync-card small{font-size:12px;text-transform:uppercase;letter-spacing:.02em;color:#6b7d95;font-weight:900}.gs-sync-card b{font-size:16px;color:#06224a;margin-top:5px}.gs-kpi-card{min-height:118px;padding:18px 22px}.gs-kpi-card strong{font-size:42px;letter-spacing:-.04em}.gs-kpi-card small{font-size:12px}.gs-dashboard-grid{grid-template-columns:1fr 1fr;align-items:start}.gs-panel-wells,.gs-panel-activity{min-height:0}.gs-well-list{max-height:360px;overflow:hidden}.gs-activity-list{max-height:500px;overflow:hidden}.gs-well-row{grid-template-columns:90px 1fr auto 70px}.gs-sites-panel .gs-panel-head{align-items:center}.gs-site-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-items:stretch}.gs-create-site-card{cursor:pointer;border:2px dashed #b9d4ee;background:linear-gradient(180deg,#f9fcff,#eef8f6);display:flex;min-height:172px;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;font:inherit}.gs-create-site-card span{width:52px;height:52px;border-radius:16px;background:#083b73;color:#fff;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:900;box-shadow:0 12px 24px rgba(8,59,115,.22)}.gs-create-site-card b{font-size:18px;color:#083b73}.gs-create-site-card small{color:#6b7d95;font-weight:800}.gs-create-site-card:hover{border-color:#12b67a;transform:translateY(-1px);box-shadow:0 16px 32px rgba(18,182,122,.12)}
@media(max-width:1280px){.gs-dashboard-grid{grid-template-columns:1fr}.gs-sync-card{min-width:200px}.gs-kpi-card strong{font-size:36px}}

/* v127 Dashboard exact mockup polish */
.gs-dashboard-v127{width:calc(100vw - 72px);max-width:1920px;padding:26px 0 46px;}
.gs-dashboard-hero-v127{align-items:flex-start;margin-bottom:18px;}
.gs-hero-title h1{font-size:34px;margin:0 0 8px;font-weight:950;letter-spacing:-.03em;color:#061f46;}
.gs-hero-title p{font-size:16px;color:#62758d;font-weight:700;}
.gs-hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end;}
.gs-main-action{min-width:210px;}
.gs-sync-card-v127{min-width:230px;padding:13px 18px;border-radius:15px;box-shadow:0 8px 22px rgba(8,52,100,.06);}
.gs-sync-card-v127 b:before{content:'◷ ';color:#0d5fb8;}
.gs-kpi-grid-v127{grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;margin-bottom:20px;}
.gs-kpi-icon-card{display:grid;grid-template-columns:66px 1fr;align-items:center;gap:16px;min-height:122px;padding:20px 22px;border-radius:18px;background:linear-gradient(180deg,#fff,#fbfdff);}
.gs-kpi-icon{width:56px;height:56px;border-radius:18px;background:#eaf4ff;color:#0b61c8;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:950;}
.gs-kpi-green{background:#dcfaea;color:#0d9d64}.gs-kpi-purple{background:#efe3ff;color:#7a35d6}.gs-kpi-orange{background:#fff0df;color:#f06b14}.gs-kpi-blue{background:#e7f0ff;color:#1159d9}
.gs-kpi-icon-card small{font-size:13px;color:#526980;font-weight:950;letter-spacing:.025em;text-transform:uppercase;}
.gs-kpi-icon-card strong{font-size:38px;margin:4px 0 2px;color:#061f46;}
.gs-kpi-icon-card span:not(.gs-kpi-icon){font-size:13px;color:#62758d;font-weight:750;}
.gs-dashboard-grid-v127{grid-template-columns:1fr 1.04fr;gap:20px;margin-bottom:20px;}
.gs-panel-v127{border-radius:18px;padding:20px 22px;box-shadow:0 14px 36px rgba(8,52,100,.055);}
.gs-panel-head-v127{align-items:center;padding-bottom:12px;border-bottom:1px solid #e4edf6;margin-bottom:10px;}
.gs-panel-head-v127 h2{font-size:22px;font-weight:950;letter-spacing:-.02em;}
.gs-panel-head-v127 h2:before{content:'▣';display:inline-flex;width:34px;height:34px;margin-right:10px;border-radius:12px;align-items:center;justify-content:center;background:#eaf4ff;color:#0b61c8;font-size:15px;vertical-align:middle;}
.gs-panel-activity .gs-panel-head-v127 h2:before{content:'◷'}
.gs-sites-panel-v127 .gs-panel-head-v127 h2:before{content:'▱'}
.gs-mini-link{white-space:nowrap;border-radius:12px;padding:10px 16px;}
.gs-well-list-v127{gap:10px;max-height:none;overflow:visible;}
.gs-well-row-v127{grid-template-columns:16px 100px 1fr 90px 96px 88px;border-radius:13px;padding:13px 14px;background:#fbfdff;border:1px solid #e0ebf4;box-shadow:none;}
.gs-well-row-v127:hover{background:#fff;border-color:#12b67a;box-shadow:0 12px 26px rgba(18,182,122,.10);transform:none;}
.gs-dot{width:10px;height:10px;border-radius:50%;background:#1e6bd6;display:block;}
.gs-dot-в-работе{background:#13b976}.gs-dot-проект{background:#f2b600}.gs-dot-завершена,.gs-dot-завершён{background:#13b976}.gs-dot-проверено{background:#1e6bd6}.gs-dot-черновик{background:#ff6b00}
.gs-well-row-v127 b{font-size:16px;color:#061f46;}.gs-well-row-v127 span{font-size:15px;color:#344d68;font-weight:900}.gs-well-row-v127 small,.gs-well-row-v127 time{font-size:13px;color:#526980;font-weight:850;}
.gs-activity-list-v127{gap:10px;max-height:none;overflow:visible;}
.gs-activity-item-v127{grid-template-columns:42px 1fr 92px;padding:13px 14px;border-radius:13px;}
.gs-activity-item-v127 .gs-act-icon{width:34px;height:34px;border-radius:12px;background:#eaf4ff;color:#0b61c8;display:flex;align-items:center;justify-content:center;}
.gs-activity-item-v127 .gs-act-well{background:#e8fff4;color:#0a9a61;}
.gs-activity-item-v127 b{font-size:15px}.gs-activity-item-v127 small{font-weight:750}.gs-activity-item-v127 time{justify-self:end;}
.gs-sites-panel-v127{padding:20px 22px 22px;margin-top:20px;}
.gs-sites-tools{display:flex;align-items:center;gap:10px;}
.gs-view-select{border:1px solid #cfe0f0;background:#fff;color:#083b73;border-radius:12px;padding:10px 14px;font-weight:950;cursor:pointer;}
.gs-site-grid-v127{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:18px;align-items:stretch;}
.gs-site-card-v127{min-height:218px;padding:18px;border-radius:18px;position:relative;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(135deg,#fff 0%,#fbfdff 100%);}
.gs-site-card-v127:before{content:'';position:absolute;inset:0;border-radius:18px;background:linear-gradient(135deg,rgba(18,182,122,.055),rgba(13,95,184,.035));pointer-events:none;}
.gs-site-top-v127{display:grid;grid-template-columns:58px 1fr auto;align-items:start;gap:14px;position:relative;z-index:1;}
.gs-site-avatar{width:52px;height:52px;border-radius:18px;background:#fff3ce;color:#d89500;display:flex;align-items:center;justify-content:center;font-size:27px;font-weight:950;}
.gs-site-top-v127 h3{font-size:21px;font-weight:950;margin:2px 0 6px;letter-spacing:-.02em;}
.gs-site-top-v127 p{margin:0;color:#62758d;font-weight:850;}
.gs-site-top-v127 em{font-style:normal;white-space:nowrap;margin-top:3px;}
.gs-site-stats-v127{grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid #e5eef7;border-bottom:1px solid #e5eef7;padding:14px 0;margin:14px 0;position:relative;z-index:1;}
.gs-site-stats-v127 div{background:transparent;border:0;border-radius:0;padding:0 10px 0 0;}
.gs-site-stats-v127 small{font-size:11px;text-transform:uppercase;letter-spacing:.02em;color:#62758d;}
.gs-site-stats-v127 b{font-size:20px;color:#061f46;}
.gs-site-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;z-index:1;color:#62758d;font-weight:800;font-size:13px;}
.gs-site-foot b{color:#0b61c8;}
.gs-create-site-card-v127{min-height:218px;border:2px dashed #b7d3ee;background:linear-gradient(180deg,#fff,#f7fbff);}
.gs-create-site-card-v127 span{border-radius:50%;width:58px;height:58px;font-size:34px;background:#083b73;}
.gs-create-site-card-v127 b{font-size:20px;}
.gs-dashboard-footer{text-align:center;color:#62758d;font-size:13px;font-weight:750;margin:20px 0 0;padding:10px;}
.gs-status-проверено{background:#dfeeff;color:#0b61c8}.gs-status-черновик{background:#ffe8d8;color:#d85200}.gs-status-в-работе{background:#ddfae9;color:#087a4b}
@media(max-width:1500px){.gs-kpi-grid-v127{grid-template-columns:repeat(3,1fr)}.gs-dashboard-grid-v127{grid-template-columns:1fr}.gs-well-row-v127{grid-template-columns:16px 90px 1fr 85px 96px}.gs-well-row-v127 time{display:none}}
@media(max-width:900px){.gs-dashboard-v127{width:calc(100vw - 24px)}.gs-kpi-grid-v127{grid-template-columns:1fr}.gs-kpi-icon-card{grid-template-columns:56px 1fr}.gs-well-row-v127{grid-template-columns:16px 80px 1fr}.gs-well-row-v127 small,.gs-well-row-v127 time,.gs-well-row-v127 em{display:none}.gs-dashboard-hero-v127{display:block}.gs-hero-actions{justify-content:flex-start;margin-top:14px}.gs-site-grid-v127{grid-template-columns:1fr}}

/* v128 Dashboard polish: compact hero, aligned KPI cards, no top create button */
.gs-dashboard-v127{padding-top:22px;}
.gs-dashboard-hero-v127{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:18px;
  margin-bottom:18px;
}
.gs-hero-title h1{line-height:1.04;margin-top:0;}
.gs-hero-actions{align-items:flex-start;gap:10px;}
.gs-sync-card-v127{
  min-width:220px;
  padding:11px 16px;
  align-self:start;
}
.gs-sync-card-v127 small{font-size:11px;line-height:1.15;}
.gs-sync-card-v127 b{font-size:15px;line-height:1.2;}
.gs-kpi-icon-card{
  grid-template-columns:64px minmax(0,1fr);
  align-items:center;
  min-height:116px;
  padding:18px 20px;
}
.gs-kpi-icon-card>div{
  min-width:0;
  display:grid;
  grid-template-rows:auto auto auto;
  align-content:center;
  row-gap:3px;
}
.gs-kpi-icon-card small,
.gs-kpi-icon-card strong,
.gs-kpi-icon-card span:not(.gs-kpi-icon){
  display:block;
  line-height:1.1;
  margin:0;
}
.gs-kpi-icon-card small{
  min-height:14px;
  white-space:nowrap;
}
.gs-kpi-icon-card strong{
  font-size:40px;
  letter-spacing:-.045em;
}
.gs-kpi-icon-card span:not(.gs-kpi-icon){
  min-height:16px;
}
.gs-kpi-icon-card strong + span{margin-top:0;}
.gs-kpi-grid-v127{align-items:stretch;}
.gs-hero-actions .gs-btn-secondary{height:46px;align-self:start;}
@media(max-width:900px){
  .gs-dashboard-hero-v127{display:block;}
  .gs-hero-actions{margin-top:12px;justify-content:flex-start;}
}

/* v129 Site page: profiles as filter, wells as primary work area */
.gs-site-page{background:linear-gradient(180deg,#f7fbff 0,#eef8f6 100%);min-height:100vh;color:#06224a}.gs-site-main{width:calc(100vw - 56px);max-width:1880px;margin:0 auto;padding:28px 0 56px}.gs-back-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:#0b4a86;font-weight:900;margin-bottom:14px}.gs-site-hero{background:#fff;border:1px solid #dbe8f5;border-radius:22px;padding:22px 24px;box-shadow:0 18px 45px rgba(8,52,100,.06);margin-bottom:18px}.gs-site-hero-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.gs-site-hero h1{font-size:34px;line-height:1.05;margin:4px 0 8px;color:#06224a}.gs-site-hero p{margin:0;color:#61748d;font-weight:800}.gs-site-hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.gs-site-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:20px}.gs-site-kpis div{border:1px solid #dce8f5;border-radius:18px;padding:16px;background:linear-gradient(180deg,#fbfdff,#f4fbff)}.gs-site-kpis small{display:block;text-transform:uppercase;color:#6b7d95;font-weight:900;font-size:12px}.gs-site-kpis b{display:block;font-size:34px;line-height:1.05;margin:7px 0 3px;color:#06224a}.gs-site-kpis span{color:#6b7d95;font-weight:750}.gs-site-workspace{display:grid;grid-template-columns:310px minmax(0,1fr);gap:18px;align-items:start}.gs-site-filter-panel,.gs-site-wells-panel{background:#fff;border:1px solid #dbe8f5;border-radius:22px;box-shadow:0 18px 45px rgba(8,52,100,.06);padding:20px}.gs-site-filter-panel{position:sticky;top:110px}.gs-panel-head.compact h2{font-size:21px}.gs-profile-filter-list{display:grid;gap:10px;margin-top:16px}.gs-profile-filter-list button{border:1px solid #dce8f5;background:#f9fcff;border-radius:15px;padding:13px 14px;color:#06224a;text-align:left;cursor:pointer;transition:.15s ease}.gs-profile-filter-list button b{display:block;font-size:15px}.gs-profile-filter-list button span{display:block;margin-top:4px;color:#6b7d95;font-weight:750}.gs-profile-filter-list button.active{border-color:#11b981;background:linear-gradient(135deg,#083b73,#12ae86);color:#fff;box-shadow:0 14px 28px rgba(18,174,134,.18)}.gs-profile-filter-list button.active span{color:#dffcf3}.gs-site-actions-box{display:grid;gap:10px;border-top:1px solid #e3edf6;margin-top:18px;padding-top:18px}.gs-site-wells-head{align-items:center}.gs-site-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.gs-site-controls input{width:280px;max-width:100%;height:44px;border:1px solid #d2e2f0;border-radius:13px;padding:0 14px;font-weight:800;color:#06224a;background:#fff}.gs-site-wells-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.gs-site-well-card{display:block;text-decoration:none;color:#06224a;border:1px solid #dbe8f5;border-radius:18px;background:linear-gradient(180deg,#fff,#fbfdff);padding:16px;box-shadow:0 10px 26px rgba(8,52,100,.05);transition:.15s ease;min-height:162px}.gs-site-well-card:hover{border-color:#11b981;box-shadow:0 16px 34px rgba(17,185,129,.13);transform:translateY(-1px)}.gs-site-well-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.gs-site-well-top h3{font-size:22px;margin:0;color:#06224a}.gs-site-well-card p{margin:8px 0 12px;color:#63758d;font-weight:800}.gs-site-well-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gs-site-well-stats div{border:1px solid #e1ebf5;background:#f3f8fd;border-radius:13px;padding:10px}.gs-site-well-stats small{display:block;color:#687d94;font-weight:900;font-size:11px}.gs-site-well-stats b{display:block;margin-top:4px;font-size:16px}.gs-site-well-meta{border-top:1px solid #e5eef7;margin-top:12px;padding-top:10px;display:flex;justify-content:space-between;gap:10px;align-items:center}.gs-site-well-meta span{color:#6b7d95;font-weight:750}.gs-site-well-meta b{color:#0b61c8}.gs-site-form .wide{grid-column:1/-1}.gs-site-no-results{grid-column:1/-1}.gs-status-завершён{background:#ddfae9;color:#087a4b}.gs-status-проверено{background:#dfeeff;color:#0b61c8}.gs-status-черновик{background:#fff1e0;color:#c2410c}@media(max-width:1250px){.gs-site-workspace{grid-template-columns:1fr}.gs-site-filter-panel{position:static}.gs-site-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:780px){.gs-site-main{width:calc(100vw - 24px)}.gs-site-hero-row{display:block}.gs-site-hero-actions{justify-content:flex-start;margin-top:14px}.gs-site-kpis{grid-template-columns:1fr}.gs-site-controls{justify-content:flex-start}.gs-site-controls input{width:100%}.gs-site-wells-grid{grid-template-columns:1fr}}

/* v130: work-site profile filter + cards/table switch */
.gs-site-wells-table-wrap{margin-top:0;border:1px solid #dbe8f5;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 10px 26px rgba(8,52,100,.04)}
.gs-site-wells-table{width:100%;border-collapse:collapse;color:#06224a;font-weight:750}
.gs-site-wells-table th{background:#f1f7fd;color:#173a63;text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.02em;padding:14px 16px;border-bottom:1px solid #dbe8f5}
.gs-site-wells-table td{padding:14px 16px;border-bottom:1px solid #e7eff7;vertical-align:middle}
.gs-site-wells-table tbody tr{cursor:pointer;transition:.12s ease;background:#fff}
.gs-site-wells-table tbody tr:hover{background:#f5fbff;box-shadow:inset 3px 0 0 #12b67a}
.gs-site-wells-table tbody tr:last-child td{border-bottom:0}
.gs-site-wells-table td:first-child b{display:inline-flex;align-items:center;justify-content:center;min-width:54px;border-radius:11px;background:#083b73;color:#fff;padding:7px 10px;font-weight:950}
.gs-site-wells-table td:last-child a{display:inline-flex;text-decoration:none;color:#0b61c8;font-weight:900;white-space:nowrap}
.gs-site-wells-table-wrap[hidden],.gs-site-wells-grid[hidden]{display:none!important}
.gs-site-well-card[hidden],.gs-site-well-row[hidden]{display:none!important}
.gs-site-no-results[hidden]{display:none!important}
.gs-site-controls .view-switch button{min-width:96px}
.gs-profile-filter-list button{user-select:none}
@media(max-width:900px){.gs-site-wells-table-wrap{overflow-x:auto}.gs-site-wells-table{min-width:760px}}

/* GeoSoft users professional page v132 */
.users-pro-body{background:linear-gradient(180deg,#f7fbff 0,#eef8f6 100%);min-height:100vh;color:#06224a}.users-topbar{position:sticky;top:0;z-index:50}.users-pro-page{width:calc(100vw - 48px);max-width:1920px;margin:0 auto;padding:24px 0 42px;display:grid;grid-template-columns:300px minmax(0,1fr) 360px;gap:22px}.users-panel{background:#fff;border:1px solid #dbe8f5;border-radius:20px;box-shadow:0 16px 38px rgba(8,52,100,.07)}.users-left{padding:18px;align-self:start;position:sticky;top:96px;max-height:calc(100vh - 112px);overflow:auto}.users-panel-title h2{margin:0 0 6px;font-size:20px;color:#06224a}.users-panel-title p{margin:0 0 16px;color:#6b7d95;font-weight:700}.users-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.users-stats-grid div{background:#f4f9ff;border:1px solid #dfeaf5;border-radius:14px;padding:12px}.users-stats-grid small{display:block;color:#6b7d95;text-transform:uppercase;font-size:11px;font-weight:900}.users-stats-grid b{display:block;font-size:28px;margin-top:4px;color:#06224a}.users-create-card,.users-filter-card{border-top:1px solid #e7eff7;padding-top:16px;margin-top:16px}.users-create-card h3,.users-filter-card h3{margin:0 0 12px;font-size:16px;color:#06224a}.users-create-form,.users-filter-card{display:flex;flex-direction:column;gap:11px}.users-create-form label,.users-filter-card label,.user-edit-form label{display:flex;flex-direction:column;gap:6px;color:#334b68;font-size:12px;font-weight:900}.users-create-form input,.users-create-form select,.users-filter-card input,.users-filter-card select,.user-edit-form input,.user-edit-form select{height:42px;border:1px solid #cfe0f0;border-radius:12px;padding:0 12px;background:#fff;color:#06224a;font-weight:800}.users-primary,.users-secondary,.users-danger{height:44px;border-radius:12px;border:1px solid #cfe0f0;font-weight:900;cursor:pointer;text-decoration:none;display:flex;align-items:center;justify-content:center}.users-primary{background:#12b67a;border-color:#12b67a;color:#fff;box-shadow:0 12px 24px rgba(18,182,122,.18)}.users-secondary{background:#fff;color:#083b73}.users-danger{background:#fff;color:#e12222;border-color:#ffb6b6}.users-main{min-width:0}.users-main-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin:8px 0 16px}.users-main-head h1{font-size:34px;line-height:1.05;margin:0 0 8px;font-weight:950;color:#06224a}.users-main-head p{margin:0;color:#6b7d95;font-weight:750}.users-view-switch{display:flex;gap:8px;background:#eef5fc;border:1px solid #d7e6f4;border-radius:14px;padding:5px}.users-view-switch button{border:0;border-radius:10px;padding:10px 14px;background:transparent;color:#083b73;font-weight:900;cursor:pointer}.users-view-switch button.active{background:#083b73;color:#fff;box-shadow:0 8px 18px rgba(8,59,115,.16)}.users-role-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.users-role-chip{background:#fff;border:1px solid #dbe8f5;border-radius:16px;padding:14px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;box-shadow:0 10px 24px rgba(8,52,100,.05)}.users-role-chip b{font-size:26px;color:#06224a}.users-role-chip span{color:#526980;font-weight:900}.users-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.user-card{background:#fff;border:1px solid #dbe8f5;border-radius:18px;padding:16px;box-shadow:0 12px 28px rgba(8,52,100,.05);cursor:pointer;transition:.16s ease;min-height:198px}.user-card:hover,.user-card.selected{border-color:#12b67a;box-shadow:0 18px 34px rgba(18,182,122,.13);transform:translateY(-1px)}.user-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.user-avatar{width:44px;height:44px;border-radius:15px;background:#eaf4ff;color:#083b73;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:950}.user-avatar.large{width:64px;height:64px;font-size:28px;border-radius:20px}.user-status{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:950}.user-status.active{background:#ddfae9;color:#087a4b}.user-status.disabled{background:#ffe6e6;color:#b41414}.user-card h3{margin:0 0 4px;font-size:19px;color:#06224a}.user-card p{margin:0 0 14px;color:#6b7d95;font-weight:800}.user-card-meta{display:flex;justify-content:space-between;border-top:1px solid #edf3f9;padding-top:10px;margin-top:10px;gap:10px}.user-card-meta span{color:#6b7d95;font-weight:850}.user-card-meta b{color:#06224a}.users-table-wrap{background:#fff;border:1px solid #dbe8f5;border-radius:18px;box-shadow:0 12px 28px rgba(8,52,100,.05);overflow:auto}.user-table-row{cursor:pointer}.user-table-row.selected{outline:2px solid #12b67a;outline-offset:-2px;background:#f3fff9}.users-detail{padding:22px;align-self:start;position:sticky;top:96px;min-height:calc(100vh - 128px)}.user-detail-header{display:flex;align-items:center;gap:14px;margin-bottom:14px}.user-detail-header h2{margin:0;font-size:26px;color:#06224a}.user-detail-header p{margin:5px 0 0;color:#6b7d95;font-weight:900}.user-detail-list{margin:18px 0;border-top:1px solid #e4eef7}.user-detail-list div{display:grid;grid-template-columns:1fr 1.15fr;gap:12px;padding:12px 0;border-bottom:1px solid #e4eef7}.user-detail-list span{color:#6b7d95;font-weight:900}.user-detail-list b{color:#06224a}.user-edit-form{display:flex;flex-direction:column;gap:11px;border-top:1px solid #e4eef7;padding-top:16px}.user-edit-form h3{margin:0;color:#06224a}.users-note{color:#6b7d95;font-weight:800;background:#f6f9fc;border:1px dashed #cfe0f0;border-radius:12px;padding:12px}.filtered-out{display:none!important}.hidden{display:none!important}@media(max-width:1400px){.users-pro-page{grid-template-columns:280px minmax(0,1fr);}.users-detail{grid-column:1/-1;position:static;min-height:auto}}@media(max-width:900px){.users-pro-page{width:calc(100vw - 24px);grid-template-columns:1fr}.users-left{position:static;max-height:none}.users-main-head{display:block}.users-view-switch{margin-top:12px}.users-role-summary{grid-template-columns:1fr 1fr}.users-detail{position:static}}

/* v133 Import / Export professional page */
.import-pro-body{background:linear-gradient(180deg,#f7fbff 0,#eef8f6 100%);min-height:100vh;color:#06224a}.import-topbar{position:sticky;top:0;z-index:50}.import-pro-page{width:calc(100vw - 48px);max-width:1920px;margin:0 auto;padding:26px 0 54px}.import-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:20px}.import-eyebrow{display:inline-flex;background:#dcf8e8;color:#05834a;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:950;margin-bottom:9px}.import-hero h1{font-size:36px;line-height:1.05;margin:0 0 8px;font-weight:950;color:#06224a}.import-hero p{margin:0;color:#6b7d95;font-weight:750}.import-hero-actions{display:flex;gap:10px;align-items:center}.import-grid{display:grid;grid-template-columns:300px minmax(0,1fr) 340px;gap:22px}.import-sidebar,.import-card,.import-inspector{background:#fff;border:1px solid #dbe8f5;border-radius:22px;box-shadow:0 16px 38px rgba(8,52,100,.07)}.import-sidebar{padding:18px;align-self:start;position:sticky;top:106px}.import-sidebar h2,.import-inspector h2{margin:0 0 14px;color:#06224a;font-size:20px}.import-tab{width:100%;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;gap:2px 12px;text-align:left;border:1px solid #dbe8f5;border-radius:17px;background:#fff;color:#06224a;padding:14px;margin-bottom:10px;cursor:pointer;transition:.15s ease}.import-tab span{grid-row:1/3;width:42px;height:42px;border-radius:14px;background:#eef6ff;display:flex;align-items:center;justify-content:center;font-size:20px}.import-tab b{font-size:16px}.import-tab small{color:#6b7d95;font-weight:800}.import-tab.active{background:linear-gradient(135deg,#0b376d,#12a881);color:#fff;border-color:#12a881;box-shadow:0 14px 30px rgba(18,168,129,.18)}.import-tab.active span{background:rgba(255,255,255,.16)}.import-tab.active small{color:#dffbf1}.import-help,.import-warning{margin-top:18px;border:1px dashed #cfe0f0;border-radius:16px;background:#f7fbff;padding:14px;color:#526980}.import-help b,.import-warning b{display:block;color:#06224a;margin-bottom:6px}.import-help p,.import-warning p{margin:0;line-height:1.45}.import-main{min-width:0}.import-card{padding:24px}.import-card-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:20px}.import-card-head h2{margin:8px 0 6px;font-size:28px;color:#06224a}.import-card-head p{margin:0;color:#6b7d95;font-weight:750;max-width:860px}.import-chip{display:inline-flex;border-radius:999px;background:#eaf4ff;color:#0b4a86;padding:6px 11px;font-size:12px;font-weight:950}.import-secondary,.import-primary{height:46px;border-radius:13px;font-weight:950;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;padding:0 18px;box-sizing:border-box;white-space:nowrap}.import-secondary{background:#fff;border:1px solid #cfe0f0;color:#083b73}.import-primary{width:100%;border:0;background:#12b67a;color:#fff;box-shadow:0 12px 24px rgba(18,182,122,.18);font-size:15px;cursor:pointer}.import-columns-card.pro{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 20px;padding:16px;border:1px solid #dbe8f5;border-radius:18px;background:#f8fbff}.import-columns-card.pro b{width:100%;color:#06224a}.import-columns-card.pro span{border:1px solid #dbe8f5;border-radius:999px;background:#fff;padding:8px 10px;color:#324d6a;font-weight:900;font-size:12px}.import-drop-form{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:14px;align-items:stretch}.import-dropzone{min-height:190px;border:2px dashed #b7d0ea;border-radius:22px;background:linear-gradient(180deg,#fbfdff,#f4f9ff);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;cursor:pointer;transition:.15s ease}.import-dropzone:hover,.import-dropzone.has-file{border-color:#12b67a;background:#f4fff9}.import-dropzone input{display:none}.drop-icon{width:58px;height:58px;border-radius:18px;background:#eaf4ff;color:#0b4a86;display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:12px}.import-dropzone b{font-size:18px;color:#06224a}.import-dropzone small{color:#6b7d95;font-weight:800;margin-top:6px}.import-dropzone em{margin-top:12px;font-style:normal;color:#0b4a86;font-weight:950;background:#eaf4ff;border-radius:999px;padding:7px 12px}.import-catalog-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}.import-catalog-types div,.import-export-grid a{border:1px solid #dbe8f5;border-radius:17px;background:#f8fbff;padding:16px;text-decoration:none;color:#06224a}.import-catalog-types span,.import-export-grid span{display:flex;width:44px;height:44px;border-radius:14px;background:#eef6ff;align-items:center;justify-content:center;font-size:22px;margin-bottom:10px}.import-catalog-types b,.import-export-grid b{display:block;font-size:17px}.import-catalog-types small,.import-export-grid small{display:block;color:#6b7d95;font-weight:800;margin-top:5px}.import-export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.import-inspector{padding:22px;align-self:start;position:sticky;top:106px}.import-step{display:grid;grid-template-columns:36px 1fr;gap:3px 12px;padding:13px 0;border-bottom:1px solid #e4eef7}.import-step b{grid-row:1/3;width:36px;height:36px;border-radius:12px;background:#eaf4ff;color:#0b4a86;display:flex;align-items:center;justify-content:center}.import-step.active b{background:#12b67a;color:#fff}.import-step span{font-weight:950;color:#06224a}.import-step small{color:#6b7d95;font-weight:750}.import-notice{background:#dcf8e8;color:#05643c;border:1px solid #a7efc4;border-radius:16px;padding:14px 16px;margin-bottom:18px;font-weight:900}.hidden{display:none!important}@media(max-width:1300px){.import-grid{grid-template-columns:280px minmax(0,1fr)}.import-inspector{grid-column:1/-1;position:static}.import-drop-form{grid-template-columns:1fr}.import-hero{display:block}.import-hero-actions{margin-top:14px}}@media(max-width:850px){.import-pro-page{width:calc(100vw - 24px)}.import-grid{grid-template-columns:1fr}.import-sidebar{position:static}.import-card-head{display:block}.import-catalog-types,.import-export-grid{grid-template-columns:1fr}.import-dropzone{min-height:150px}}

/* ===== v134 samples redesign ===== */
.samples-pro-body{background:linear-gradient(180deg,#f7fbff 0,#eef7f6 100%);color:#082a55;min-height:100vh}.samples-pro-page{display:grid;grid-template-columns:300px minmax(0,1fr)360px;gap:22px;width:calc(100% - 48px);max-width:1880px;margin:22px auto 36px;align-items:start}.samples-panel{background:rgba(255,255,255,.92);border:1px solid #d8e6f6;border-radius:18px;box-shadow:0 18px 40px rgba(10,55,95,.08)}.samples-left{padding:18px;position:sticky;top:88px;max-height:calc(100vh - 105px);overflow:auto}.samples-panel-head{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e3eef9;padding-bottom:12px;margin-bottom:14px}.samples-panel-head h2,.samples-main-head h1{margin:0;color:#082a55}.samples-mini-count{background:#eaf4ff;border:1px solid #cfe2f6;border-radius:999px;padding:6px 10px;font-weight:900}.samples-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}.samples-stats-grid div{background:#f4f9ff;border:1px solid #d9e8f6;border-radius:13px;padding:11px}.samples-stats-grid small{display:block;color:#63809d;font-weight:800;font-size:11px}.samples-stats-grid b{font-size:24px}.samples-filter-form,.samples-actions-card{display:grid;gap:10px}.samples-filter-form label{font-size:12px;font-weight:900;color:#23496f}.samples-filter-form input,.samples-filter-form select,.sample-modal-form input,.sample-modal-form select,.sample-modal-form textarea{width:100%;height:42px;border:1px solid #ccddeb;border-radius:11px;padding:0 13px;background:#fff;color:#082a55;font-weight:800;box-sizing:border-box}.sample-modal-form textarea{height:92px;padding-top:10px;resize:vertical}.samples-primary,.samples-secondary,.samples-danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;border-radius:11px;text-decoration:none;font-weight:900;cursor:pointer;border:1px solid transparent}.samples-primary{background:linear-gradient(135deg,#10b96f,#089b65);color:#fff;box-shadow:0 12px 22px rgba(16,185,111,.2)}.samples-secondary{background:#fff;color:#074178;border-color:#c8dcf0}.samples-danger{background:#fff5f5;color:#e11d2e;border-color:#ffb9bd}.samples-actions-card{border-top:1px solid #e3eef9;margin-top:16px;padding-top:16px}.samples-actions-card h3{margin:0 0 4px}.samples-view-btn{height:42px;border:1px solid #c8dcf0;border-radius:11px;background:#fff;color:#073d73;font-weight:900;cursor:pointer}.samples-view-btn.active{background:#0b3e73;color:#fff;border-color:#0b3e73}.samples-main{min-width:0}.samples-main-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.samples-main-head p{margin:6px 0 0;color:#58758f;font-weight:700}.samples-sort-box{display:flex;align-items:center;gap:8px}.samples-sort-box span{color:#58758f;font-weight:800}.samples-sort-link{border:1px solid #cfe1f2;background:#fff;border-radius:10px;padding:9px 12px;text-decoration:none;color:#083b70;font-weight:900}.samples-sort-link.active{background:#eaf4ff;border-color:#a9c9eb}.samples-status-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:14px}.samples-status-chip{border:1px solid #d8e6f6;background:#fff;border-radius:14px;padding:10px 12px;text-align:left;cursor:pointer}.samples-status-chip b{display:block;font-size:22px}.samples-status-chip span{font-size:12px;color:#58758f;font-weight:800}.samples-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.sample-card{background:#fff;border:1px solid #d7e6f5;border-radius:16px;padding:16px;box-shadow:0 14px 28px rgba(5,42,79,.06);cursor:pointer;transition:.15s}.sample-card:hover,.sample-card.selected{border-color:#11b978;box-shadow:0 18px 32px rgba(17,185,120,.12);transform:translateY(-1px)}.sample-card-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.sample-card h3{margin:0;font-size:21px}.sample-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:5px 10px;background:#eef5ff;color:#0b57b7;font-weight:900;font-size:12px;white-space:nowrap}.sample-badge.рядовая,.sample-badge.created{background:#e8f8ef;color:#089052}.sample-badge.бланковая{background:#fff6d6;color:#a36800}.sample-badge.дубликат{background:#efe8ff;color:#6a34bd}.sample-badge.архив,.sample-badge.deleted{background:#eef1f4;color:#607080}.sample-card-meta{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #edf3f9;padding-top:10px;margin-top:10px}.sample-card-meta span,.sample-card-foot{color:#5e7893;font-size:12px;font-weight:800}.sample-card-meta b{font-size:13px}.sample-card-foot{display:flex;justify-content:space-between;margin-top:12px}.samples-table-wrap{background:#fff;border:1px solid #d7e6f5;border-radius:16px;overflow:auto;box-shadow:0 14px 28px rgba(5,42,79,.06)}.samples-pro-table{width:100%;border-collapse:collapse}.samples-pro-table th,.samples-pro-table td{padding:13px 14px;border-bottom:1px solid #e5eef7;text-align:left}.sample-table-row{cursor:pointer}.sample-table-row:hover,.sample-table-row.selected{background:#f0fbf6}.samples-detail{padding:0;position:sticky;top:88px;overflow:hidden}.sample-detail-head{padding:22px 22px 16px;border-bottom:1px solid #e3eef9}.sample-detail-head small{color:#657f9a;font-weight:800}.sample-detail-head h2{font-size:30px;margin:4px 0 12px}.sample-detail-list{padding:16px 22px;display:grid;gap:13px}.sample-detail-list div{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:start}.sample-detail-list span{color:#637e99;font-weight:800}.sample-detail-list b{color:#082a55}.sample-detail-note{margin:0 22px 18px;padding:14px;border:1px solid #dce9f5;border-radius:14px;background:#f8fbff}.sample-detail-note b{display:block;margin-bottom:6px}.sample-detail-note p{margin:0;color:#24486b;font-weight:700}.samples-detail-actions{display:grid;gap:10px;padding:0 22px 22px}.sample-modal[hidden]{display:none}.sample-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center}.sample-modal-backdrop{position:absolute;inset:0;background:rgba(9,23,40,.55);backdrop-filter:blur(8px)}.sample-modal-card{position:relative;width:min(920px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:22px;box-shadow:0 30px 80px rgba(0,0,0,.25);border:1px solid #d6e6f4;padding:24px}.sample-modal-card h2{margin:0;font-size:26px}.sample-modal-card p{margin:6px 0 20px;color:#607a94}.sample-modal-close{position:absolute;right:18px;top:18px;border:1px solid #cfe0f0;border-radius:12px;background:#f8fbff;width:38px;height:38px;font-size:22px;cursor:pointer}.sample-modal-form{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.sample-modal-form label{font-weight:900;color:#23496f;font-size:12px}.sample-modal-form .wide,.sample-modal-footer{grid-column:1/-1}.sample-modal-footer{display:flex;justify-content:flex-end;gap:12px;border-top:1px solid #e7eff7;padding-top:16px;margin-top:6px}.hidden{display:none!important}@media(max-width:1300px){.samples-pro-page{grid-template-columns:280px minmax(0,1fr)}.samples-detail{position:relative;top:auto;grid-column:1/-1}.samples-left{top:80px}}@media(max-width:900px){.samples-pro-page{grid-template-columns:1fr;width:calc(100% - 24px)}.samples-left{position:relative;top:auto;max-height:none}.sample-modal-form{grid-template-columns:1fr}}


/* v135: global layout unification, full-width content, online badges removed, login valley restored */
:root{
  --gs-topbar-h:72px;
}
body.ref-app,
body.samples-pro-body,
body.users-pro-body,
body.import-pro-body,
body.ref-map-pro,
body.wells-ref-page{
  overflow-x:hidden!important;
}
/* One compact top menu size for redesigned pages */
.ref-topbar,
.samples-topbar,
.import-topbar,
.users-topbar,
.wells-ref-page .ref-topbar,
.ref-map-pro .ref-topbar,
.gs-topbar{
  position:sticky!important;
  top:0!important;
  z-index:80!important;
  height:var(--gs-topbar-h)!important;
  min-height:var(--gs-topbar-h)!important;
  max-height:var(--gs-topbar-h)!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:230px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:18px!important;
  padding:0 28px!important;
  background:rgba(255,255,255,.94)!important;
  border-bottom:1px solid #dbe8f6!important;
  box-shadow:0 10px 28px rgba(8,43,83,.06)!important;
  backdrop-filter:blur(14px)!important;
}
.ref-brand,
.wells-ref-page .ref-brand{
  min-width:0!important;
  height:var(--gs-topbar-h)!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
}
.ref-brand img,
.wells-ref-page .ref-brand img,
.ref-map-pro .ref-brand img{
  width:auto!important;
  height:48px!important;
  max-height:48px!important;
  object-fit:contain!important;
}
.ref-brand b,
.wells-ref-page .ref-brand b{font-size:16px!important;line-height:1!important;white-space:nowrap!important;}
.ref-brand small,
.wells-ref-page .ref-brand small{font-size:10px!important;line-height:1.1!important;letter-spacing:.07em!important;white-space:nowrap!important;}
.ref-nav,
.wells-ref-page .ref-nav{
  height:var(--gs-topbar-h)!important;
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:14px!important;
  overflow:hidden!important;
}
.ref-nav a,
.wells-ref-page .ref-nav a,
.ref-map-pro .ref-nav a{
  min-width:78px!important;
  height:var(--gs-topbar-h)!important;
  box-sizing:border-box!important;
  padding:8px 8px 6px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:center!important;
  gap:5px!important;
  font-size:12px!important;
  line-height:1.1!important;
  border-bottom:3px solid transparent!important;
  border-radius:0!important;
  background:transparent!important;
}
.ref-nav a:first-letter{font-size:17px!important;}
.ref-nav a.active,
.wells-ref-page .ref-nav a.active,
.ref-map-pro .ref-nav a.active{
  color:#0b63ce!important;
  border-bottom-color:#0b63ce!important;
  background:linear-gradient(180deg,rgba(37,99,235,.06),rgba(255,255,255,0))!important;
}
.ref-user,
.wells-ref-page .ref-user{
  height:var(--gs-topbar-h)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:14px!important;
  min-width:0!important;
}
.ref-user-name{white-space:nowrap!important;}
.ref-user-name b{font-size:13px!important;line-height:1.1!important;}
.ref-user-name small{font-size:11px!important;line-height:1.1!important;}
.ref-logout,
.wells-ref-page .ref-logout{
  height:40px!important;
  min-width:110px!important;
  padding:0 18px!important;
  border-radius:12px!important;
}
/* Remove online indicators everywhere */
.ref-online,
.geo-status,
.sidebar-online,
span[class*="online"],
[class*="online"]{
  display:none!important;
}
/* Use almost the whole browser width on all redesigned work pages */
.ref-page,
.ref-catalog-page,
.gs-dashboard,
.samples-pro-page,
.users-pro-page,
.import-pro-page,
.wells-pro-page,
.geo-interval-page,
.map-pro-page,
.ref-map-page,
.gs-site-main,
main.page,
main.grid{
  max-width:none!important;
  width:calc(100vw - 32px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
.samples-pro-page,
.users-pro-page,
.import-pro-page,
.wells-pro-page,
.geo-interval-page{
  margin-top:18px!important;
  margin-bottom:32px!important;
}
.samples-pro-page{
  grid-template-columns:300px minmax(0,1fr) 390px!important;
  gap:18px!important;
}
.samples-left{top:calc(var(--gs-topbar-h) + 16px)!important;}
.samples-detail{top:calc(var(--gs-topbar-h) + 16px)!important;}
.import-inspector{top:calc(var(--gs-topbar-h) + 16px)!important;}
/* Map page must stay full-screen but account for unified topbar */
.ref-map-pro .map-pro-page{
  width:100vw!important;
  max-width:none!important;
  margin:0!important;
  height:calc(100vh - var(--gs-topbar-h))!important;
  padding:14px 18px 18px!important;
}
.ref-map-pro .map-pro-grid{height:calc(100vh - 126px)!important;}
/* Old pages still using app-shell: hide status badges and give them more width */
body.app-shell .sidebar-online,
body.app-shell .geo-status{display:none!important;}
body.app-shell .page,
body.app-shell .grid{max-width:none!important;width:calc(100vw - 320px)!important;}
/* Restore login mountain valley background exactly as a page background */
body.login-body{
  min-height:100vh!important;
  background:
    linear-gradient(180deg,rgba(244,247,251,.96) 0%,rgba(244,247,251,.82) 34%,rgba(244,247,251,.46) 62%,rgba(244,247,251,.10) 86%),
    url('/static/login_valley.jpg') center bottom / cover no-repeat fixed!important;
}
body.login-body .login-page{
  min-height:100vh!important;
  display:grid!important;
  place-items:start center!important;
  padding:56px 16px 120px!important;
}
body.login-body .geosoft-login-card,
body.login-body .login-card{
  background:rgba(255,255,255,.90)!important;
  backdrop-filter:blur(10px)!important;
}
@media(max-width:1200px){
  .ref-topbar,.samples-topbar,.import-topbar,.users-topbar,.wells-ref-page .ref-topbar,.ref-map-pro .ref-topbar,.gs-topbar{
    height:auto!important;max-height:none!important;grid-template-columns:1fr!important;padding:12px 16px!important;
  }
  .ref-nav,.wells-ref-page .ref-nav{justify-content:flex-start!important;overflow:auto!important;height:auto!important;}
  .ref-nav a,.wells-ref-page .ref-nav a,.ref-map-pro .ref-nav a{height:54px!important;min-width:82px!important;}
  .ref-user,.wells-ref-page .ref-user{height:auto!important;justify-content:flex-start!important;}
  .samples-pro-page{grid-template-columns:1fr!important;}
}

/* v138: управляемая штриховка литологических слоёв */
.hatch-swatch,.hatch-preview{
  display:inline-block;width:46px;height:28px;border-radius:8px;border:1px solid #cbdbea;background:#d8dee5;vertical-align:middle;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);margin:6px 8px 0 0;
}
.hatch-swatch{width:42px;height:24px;margin:0 6px 0 0;}
.hatch-none{background:#e2e8f0;background-image:none!important;}
.hatch-dots{background-image:radial-gradient(rgba(44,62,80,.55) 1.25px, transparent 1.35px)!important;background-size:10px 10px!important;}
.hatch-lines{background-image:repeating-linear-gradient(0deg, rgba(44,62,80,.35) 0 2px, transparent 2px 9px)!important;}
.hatch-vertical{background-image:repeating-linear-gradient(90deg, rgba(44,62,80,.35) 0 2px, transparent 2px 9px)!important;}
.hatch-diagonal{background-image:repeating-linear-gradient(135deg, rgba(44,62,80,.35) 0 2px, transparent 2px 9px)!important;}
.hatch-grid{background-image:linear-gradient(90deg, rgba(44,62,80,.28) 1px, transparent 1px),linear-gradient(rgba(44,62,80,.28) 1px, transparent 1px)!important;background-size:13px 13px!important;}
.hatch-pebbles{background-image:radial-gradient(circle at 30% 35%, rgba(44,62,80,.35) 0 3px, transparent 3.3px),radial-gradient(circle at 75% 70%, rgba(44,62,80,.30) 0 4px, transparent 4.3px),radial-gradient(circle at 70% 20%, rgba(255,255,255,.35) 0 2px, transparent 2.3px)!important;background-size:20px 18px!important;}
.hatch-bricks{background-image:linear-gradient(rgba(44,62,80,.28) 1px, transparent 1px),linear-gradient(90deg, rgba(44,62,80,.28) 1px, transparent 1px),linear-gradient(90deg, transparent 50%, rgba(44,62,80,.28) 50%, rgba(44,62,80,.28) calc(50% + 1px), transparent calc(50% + 1px))!important;background-size:22px 13px,22px 13px,22px 26px!important;background-position:0 0,0 0,0 13px!important;}
.hatch-massive{background-image:none!important;filter:saturate(.8);}
.catalog-table .hatch-swatch{margin:0;}
.geo-log-block.hatch-none{background-image:none!important;}
.geo-log-block.hatch-dots{background-image:radial-gradient(rgba(44,62,80,.55) 1.25px, transparent 1.35px)!important;background-size:10px 10px!important;}
.geo-log-block.hatch-lines{background-image:repeating-linear-gradient(0deg, rgba(44,62,80,.35) 0 2px, transparent 2px 9px)!important;}
.geo-log-block.hatch-vertical{background-image:repeating-linear-gradient(90deg, rgba(44,62,80,.35) 0 2px, transparent 2px 9px)!important;}
.geo-log-block.hatch-diagonal{background-image:repeating-linear-gradient(135deg, rgba(44,62,80,.35) 0 2px, transparent 2px 9px)!important;}
.geo-log-block.hatch-grid{background-image:linear-gradient(90deg, rgba(44,62,80,.28) 1px, transparent 1px),linear-gradient(rgba(44,62,80,.28) 1px, transparent 1px)!important;background-size:13px 13px!important;}
.geo-log-block.hatch-pebbles{background-image:radial-gradient(circle at 30% 35%, rgba(44,62,80,.35) 0 3px, transparent 3.3px),radial-gradient(circle at 75% 70%, rgba(44,62,80,.30) 0 4px, transparent 4.3px),radial-gradient(circle at 70% 20%, rgba(255,255,255,.35) 0 2px, transparent 2.3px)!important;background-size:20px 18px!important;}
.geo-log-block.hatch-bricks{background-image:linear-gradient(rgba(44,62,80,.28) 1px, transparent 1px),linear-gradient(90deg, rgba(44,62,80,.28) 1px, transparent 1px),linear-gradient(90deg, transparent 50%, rgba(44,62,80,.28) 50%, rgba(44,62,80,.28) calc(50% + 1px), transparent calc(50% + 1px))!important;background-size:22px 13px,22px 13px,22px 26px!important;background-position:0 0,0 0,0 13px!important;}
.geo-log-block.hatch-massive{background-image:none!important;}

/* v139: участковые наборы литологических слоёв */
.gs-site-layers-card{
  margin-top:14px;
  padding:14px;
  border:1px solid rgba(18,49,86,.10);
  border-radius:18px;
  background:linear-gradient(180deg,#ffffff,#f8fbff);
  box-shadow:0 10px 30px rgba(18,49,86,.06);
}
.gs-layers-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;}
.gs-layers-head h3{margin:0;color:#123156;font-size:15px;}
.gs-layers-head p{margin:3px 0 0;color:#64748b;font-size:12px;}
.gs-layers-head span{min-width:34px;height:28px;border-radius:10px;background:#e8f7f1;color:#13814f;display:flex;align-items:center;justify-content:center;font-weight:800;}
.gs-site-layer-chips{display:flex;flex-wrap:wrap;gap:7px;max-height:116px;overflow:auto;padding-right:4px;}
.gs-site-layer-chips span{display:inline-flex;align-items:center;max-width:100%;padding:6px 9px;border-radius:999px;background:#edf5ff;color:#123156;border:1px solid rgba(23,82,148,.10);font-size:12px;font-weight:700;}
.gs-site-layer-chips small{display:block;color:#64748b;line-height:1.35;font-size:12px;}
.gs-layers-open{width:100%;margin-top:12px;}
.gs-site-layers-modal{max-width:980px;width:min(980px,94vw);}
.gs-site-layer-form{display:flex;flex-direction:column;gap:14px;}
.gs-layer-toolbar{display:flex;gap:12px;align-items:center;}
.gs-layer-toolbar input{flex:1;height:44px;border-radius:12px;border:1px solid #dbe5f1;padding:0 14px;font-size:14px;}
.gs-layer-count{min-width:130px;border-radius:12px;background:#f1f7ff;border:1px solid #dbeafe;padding:10px 12px;color:#476078;font-size:13px;text-align:center;}
.gs-layer-count b{color:#123156;font-size:18px;}
.gs-layer-select-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:10px;max-height:430px;overflow:auto;padding:4px;}
.gs-layer-option{display:grid;grid-template-columns:auto 38px 1fr;grid-template-areas:'check pattern title' 'check pattern code';gap:2px 10px;align-items:center;padding:12px;border:1px solid #e0e8f2;border-radius:14px;background:#fff;cursor:pointer;transition:.15s ease;}
.gs-layer-option:hover{border-color:#95c6ff;box-shadow:0 8px 20px rgba(32,111,206,.08);transform:translateY(-1px);}
.gs-layer-option input{grid-area:check;width:18px;height:18px;accent-color:#1fb66d;}
.gs-layer-pattern{grid-area:pattern;width:34px;height:34px;border-radius:10px;background-color:#e8edf5;border:1px solid rgba(18,49,86,.12);}
.gs-layer-option strong{grid-area:title;color:#123156;font-size:13px;line-height:1.2;}
.gs-layer-option small{grid-area:code;color:#64748b;font-size:12px;}
.gs-layer-help{padding:11px 13px;border-radius:14px;background:#fff7ed;color:#9a5a10;border:1px solid #fed7aa;font-size:13px;}
.short-list-hint{margin-top:8px;color:#64748b;font-size:12px;line-height:1.3;}


/* v141: геологическая колонка — фон из выбранного цвета интервала, штриховка из слоя */
.geo-log-block{
  background-color: var(--geo-log-bg, #d8dee5) !important;
}
.geo-log-block.hatch-none{
  background-image: none !important;
}

/* v142: dashboard site cards as a vertical left rail */
@media (min-width: 1100px){
  .gs-dashboard-v127{
    display:grid;
    grid-template-columns:380px minmax(0,1fr);
    gap:20px;
    align-items:start;
  }
  .gs-dashboard-v127 > .gs-dashboard-hero-v127,
  .gs-dashboard-v127 > .gs-kpi-grid-v127,
  .gs-dashboard-v127 > .gs-dashboard-footer{
    grid-column:1 / -1;
  }
  .gs-dashboard-v127 > .gs-sites-panel-v127{
    grid-column:1;
    grid-row:3;
    margin-top:0;
    position:sticky;
    top:92px;
    max-height:calc(100vh - 118px);
    overflow:auto;
  }
  .gs-dashboard-v127 > .gs-dashboard-grid-v127{
    grid-column:2;
    grid-row:3;
    margin:0;
  }
  .gs-sites-panel-v127 .gs-panel-head-v127{
    align-items:flex-start;
    flex-direction:column;
  }
  .gs-sites-panel-v127 .gs-sites-tools{display:none;}
  .gs-site-grid-v127{
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .gs-site-card-v127,.gs-create-site-card-v127{min-height:0;}
}

/* v142: KML contours for work sites */
.map-layer-check{
  display:flex;
  align-items:center;
  gap:10px;
  margin:12px 0 8px;
  padding:12px 14px;
  border:1px solid #d7e6f4;
  border-radius:14px;
  background:#f7fbff;
  color:#083464;
  font-weight:900;
  cursor:pointer;
}
.map-layer-check input{width:18px;height:18px;accent-color:#10b981;}
.gs-site-kml-card{
  margin-top:14px;
  padding:14px;
  border:1px solid #dbe8f5;
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#f8fcff);
  box-shadow:0 10px 24px rgba(8,52,100,.05);
}
.gs-kml-current{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:10px 0;
  padding:10px 12px;
  border-radius:12px;
  background:#eef8f6;
  color:#083464;
}
.gs-kml-current b{font-size:13px;word-break:break-word;}
.gs-kml-current a{font-size:12px;font-weight:900;color:#0b61c8;text-decoration:none;}
.gs-kml-empty{display:block;margin:10px 0;color:#6b7d95;font-weight:750;line-height:1.35;}
.gs-kml-upload-form{display:grid;gap:8px;margin-top:10px;}
.gs-file-field{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px 12px;
  border:1px dashed #b9d4ee;
  border-radius:12px;
  background:#fff;
  color:#083464;
  font-weight:900;
}
.gs-file-field input{font-size:12px;}
.gs-btn-danger-soft{
  width:100%;
  margin-top:8px;
  border-color:#ffc6c6!important;
  color:#d71920!important;
  background:#fff7f7!important;
}
.leaflet-interactive:focus{outline:none;}

/* v143: аккуратный блок KML и удаление участка */
.gs-site-kml-card .gs-kml-upload-form{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:12px;
}
.gs-site-kml-card .gs-file-field{
  width:100%;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  min-height:auto;
  padding:12px 14px;
  border:1px dashed #adcbea;
  border-radius:14px;
  background:#ffffff;
  color:#083464;
  font-weight:900;
  line-height:1.25;
}
.gs-site-kml-card .gs-file-field span{display:block;font-size:13px;}
.gs-site-kml-card .gs-file-field input{
  width:100%;
  box-sizing:border-box;
  max-width:100%;
  font-size:12px;
  color:#365a7f;
}
.gs-site-kml-card .gs-kml-submit{
  width:100%;
  min-height:44px;
  padding:11px 14px;
  box-sizing:border-box;
}
.gs-site-kml-card .gs-kml-delete-form{margin:10px 0 0;}
.gs-site-kml-card .gs-kml-delete-form .gs-btn{width:100%;box-sizing:border-box;}
.gs-site-hero-actions{flex-wrap:wrap;}
.gs-site-delete-open{box-shadow:none;}
.gs-btn-danger-solid{
  background:#dc2626!important;
  border-color:#dc2626!important;
  color:#fff!important;
}
.gs-delete-site-window{max-width:680px;}
.gs-delete-warning{
  border:1px solid #fecaca;
  background:#fff7f7;
  border-radius:16px;
  padding:16px 18px;
  color:#7f1d1d;
}
.gs-delete-warning b{display:block;font-size:20px;color:#991b1b;margin-bottom:8px;}
.gs-delete-warning p{margin:0;line-height:1.45;font-weight:750;}

/* ===================== GeoSoft v144: UI unification foundation ===================== */
:root{
  --gs-bg:#f3f8fb;
  --gs-surface:#ffffff;
  --gs-surface-2:#f7fbff;
  --gs-line:#d9e8f5;
  --gs-line-strong:#c7dced;
  --gs-text:#082a55;
  --gs-muted:#60758d;
  --gs-primary:#0b376d;
  --gs-primary-hover:#0d4d8f;
  --gs-success:#10b981;
  --gs-success-hover:#0c996c;
  --gs-danger:#dc2626;
  --gs-danger-soft:#fff5f5;
  --gs-warning:#f2b705;
  --gs-info:#2563eb;
  --gs-card-radius:22px;
  --gs-control-radius:13px;
  --gs-page-x:20px;
  --gs-gap:18px;
  --gs-left:300px;
  --gs-right:360px;
  --gs-shadow:0 18px 44px rgba(8,43,83,.075);
  --gs-shadow-soft:0 10px 26px rgba(8,43,83,.055);
}

/* Page rhythm */
body.ref-app,
body.samples-pro-body,
body.users-pro-body,
body.import-pro-body,
body.ref-map-pro,
body.wells-ref-page{
  background:linear-gradient(180deg,#f8fcff 0%,#eef8f6 100%)!important;
  color:var(--gs-text)!important;
}
.ref-page,.ref-map-page,.ref-catalog-page,.gs-dashboard,.users-pro-page,.import-pro-page,.samples-pro-page,.wells-pro-page,.geo-interval-page,.gs-site-main{
  max-width:none!important;
  width:calc(100vw - 32px)!important;
  box-sizing:border-box!important;
}

/* Unified topbar final pass */
.ref-topbar,.samples-topbar,.import-topbar,.users-topbar,.wells-ref-page .ref-topbar,.ref-map-pro .ref-topbar,.gs-topbar{
  height:72px!important;
  min-height:72px!important;
  max-height:72px!important;
  padding:0 28px!important;
  grid-template-columns:230px minmax(0,1fr) auto!important;
}
.ref-nav a,.wells-ref-page .ref-nav a,.ref-map-pro .ref-nav a{
  height:72px!important;
  min-width:82px!important;
  font-size:12px!important;
  font-weight:950!important;
  color:#123156!important;
}
.ref-nav a.active,.wells-ref-page .ref-nav a.active,.ref-map-pro .ref-nav a.active{
  color:#0b63ce!important;
  border-bottom-color:#0b63ce!important;
}
.ref-user-name{color:#64748b!important;}
.ref-user-name b{font-size:0!important;}
.ref-user-name b::after{content:attr(data-short);font-size:13px;}
.ref-logout{background:var(--gs-primary)!important;color:#fff!important;border:0!important;}
.ref-logout:hover{background:var(--gs-primary-hover)!important;}

/* Hide any legacy online/status-in-header markers */
.ref-online,.geo-status,.sidebar-online,.map-online,[class*="online"],span[class*="online"]{display:none!important;}

/* Unified page headers */
.ref-page-title,.users-main-head,.samples-main-head,.import-hero,.map-pro-title,.wells-pro-head,.gs-dashboard-hero-v127,.gs-site-hero{
  margin-bottom:18px!important;
}
.ref-page-title h1,.users-main-head h1,.samples-main-head h1,.import-hero h1,.map-pro-title h1,.wells-pro-head h1,.gs-dashboard-hero-v127 h1,.gs-site-hero h1{
  color:var(--gs-text)!important;
  font-size:30px!important;
  line-height:1.08!important;
  letter-spacing:-.025em!important;
  font-weight:950!important;
}
.ref-page-title p,.users-main-head p,.samples-main-head p,.import-hero p,.map-pro-title p,.wells-pro-head p,.gs-dashboard-hero-v127 p,.gs-site-hero p{
  color:var(--gs-muted)!important;
  font-weight:750!important;
}

/* Unified cards / panels */
.ref-card,.ref-map-filter,.ref-map-info,.ref-map-canvas,.map-pro-panel,.map-pro-canvas-wrap,.users-panel,.import-card,.import-sidebar,.import-inspector,.samples-panel,.wells-pro-sidebar,.wells-pro-main,.wells-pro-detail,.catalog-sidebar,.catalog-panel,.geo-inspector,.gs-site-card,.gs-site-panel,.gs-site-hero,.gs-sites-panel-v127,.gs-dashboard-panel-v127,.gs-kpi-card-v127{
  background:rgba(255,255,255,.94)!important;
  border:1px solid var(--gs-line)!important;
  border-radius:var(--gs-card-radius)!important;
  box-shadow:var(--gs-shadow)!important;
}

/* Unified 3-column workspace */
.samples-pro-page,.users-pro-page,.wells-pro-page,.map-pro-grid,.ref-catalogs .catalog-layout{
  gap:var(--gs-gap)!important;
}
.samples-pro-page{
  grid-template-columns:var(--gs-left) minmax(0,1fr) var(--gs-right)!important;
  align-items:start!important;
}
.users-pro-page{
  grid-template-columns:300px minmax(0,1fr) 340px!important;
  gap:var(--gs-gap)!important;
  align-items:start!important;
}
.ref-catalogs .catalog-layout{
  grid-template-columns:280px minmax(0,1fr) 340px!important;
}
.map-pro-grid{
  grid-template-columns:320px minmax(720px,1fr) 380px!important;
}

/* Sidebars standard */
.samples-left,.users-left,.import-sidebar,.map-pro-filters,.catalog-sidebar,.wells-pro-sidebar,.gs-site-left{
  position:sticky!important;
  top:calc(72px + 16px)!important;
  max-height:calc(100vh - 96px)!important;
  overflow:auto!important;
  overflow-x:hidden!important;
  padding:18px!important;
}
.samples-panel-head,.users-panel-title,.map-pro-panel-head,.catalog-sidebar h2,.import-sidebar h2{
  border-bottom:1px solid #e4eef8!important;
  padding-bottom:12px!important;
  margin-bottom:14px!important;
}
.samples-panel-head h2,.users-panel-title h2,.map-pro-panel-head h2,.import-sidebar h2,.catalog-sidebar h2{
  margin:0!important;
  font-size:20px!important;
  color:var(--gs-text)!important;
  font-weight:950!important;
}
.samples-panel-head p,.users-panel-title p,.import-sidebar p,.catalog-sidebar p{color:var(--gs-muted)!important;}

/* Detail panel standard */
.samples-detail,.users-detail,.wells-pro-detail,.geo-inspector,.map-pro-info{
  position:sticky!important;
  top:calc(72px + 16px)!important;
  max-height:calc(100vh - 96px)!important;
  overflow:auto!important;
  border-radius:var(--gs-card-radius)!important;
}
.sample-detail-head,.user-detail-header,.well-detail-head,.geo-inspector-head,.map-pro-info-head{
  padding:22px 22px 16px!important;
  border-bottom:1px solid #e4eef8!important;
}
.sample-detail-list,.user-detail-list,.well-detail-list,.geo-info-list,.map-info-rows{
  padding:16px 22px!important;
}
.sample-detail-list div,.user-detail-list div,.well-detail-list div,.geo-info-list div,.map-info-rows div{
  border-bottom:1px solid #e9f1f8!important;
  padding:10px 0!important;
}
.sample-detail-list span,.user-detail-list span,.well-detail-list span,.geo-info-list span,.map-info-rows span{
  color:var(--gs-muted)!important;
  font-weight:850!important;
}
.sample-detail-list b,.user-detail-list b,.well-detail-list b,.geo-info-list b,.map-info-rows b{
  color:var(--gs-text)!important;
  font-weight:950!important;
}

/* Unified buttons */
.gs-btn,.ref-primary,.ref-logout,.users-primary,.samples-primary,.import-primary,.wells-primary,.map-primary,.button-link:not(.secondary),button[type="submit"]:not(.danger):not(.samples-secondary):not(.users-secondary):not(.import-secondary){
  min-height:42px!important;
  border-radius:var(--gs-control-radius)!important;
  border:1px solid transparent!important;
  font-weight:950!important;
  text-decoration:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  box-shadow:0 12px 26px rgba(11,55,109,.14)!important;
}
.gs-btn-primary,.ref-primary,.ref-logout,.wells-primary,.map-primary,.button-link:not(.secondary){
  background:var(--gs-primary)!important;
  color:#fff!important;
}
.gs-btn-primary:hover,.ref-primary:hover,.ref-logout:hover,.button-link:not(.secondary):hover{background:var(--gs-primary-hover)!important;}
.gs-btn-success,.users-primary,.samples-primary,.import-primary,button[type="submit"].success{
  background:var(--gs-success)!important;
  color:#fff!important;
  box-shadow:0 12px 24px rgba(16,185,129,.18)!important;
}
.gs-btn-success:hover,.users-primary:hover,.samples-primary:hover,.import-primary:hover{background:var(--gs-success-hover)!important;}
.gs-btn-secondary,.ref-secondary,.users-secondary,.samples-secondary,.import-secondary,.wells-secondary,.map-secondary,.secondary-button,.button-link.secondary{
  min-height:42px!important;
  border-radius:var(--gs-control-radius)!important;
  border:1px solid var(--gs-line-strong)!important;
  background:#fff!important;
  color:var(--gs-primary)!important;
  font-weight:950!important;
  box-shadow:0 8px 20px rgba(8,43,83,.055)!important;
  text-decoration:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
}
.gs-btn-danger-soft,.users-danger,.samples-danger,button.danger,.danger-button{
  min-height:42px!important;
  border-radius:var(--gs-control-radius)!important;
  border:1px solid #fecaca!important;
  background:var(--gs-danger-soft)!important;
  color:var(--gs-danger)!important;
  font-weight:950!important;
  box-shadow:none!important;
}
.gs-btn-danger-soft:hover,.users-danger:hover,.samples-danger:hover,button.danger:hover{background:var(--gs-danger)!important;color:#fff!important;}

/* Segmented controls */
.users-view-switch,.samples-sort-box,.samples-actions-card:has(.samples-view-btn),.wells-view-switch,.map-view-switch,.gs-segmented{
  display:inline-flex!important;
  align-items:center!important;
  gap:4px!important;
  padding:5px!important;
  background:#eef6ff!important;
  border:1px solid #d5e6f5!important;
  border-radius:16px!important;
  box-shadow:0 8px 22px rgba(8,43,83,.05)!important;
}
.users-view-switch button,.samples-view-btn,.samples-sort-link,.wells-view-switch button,.gs-segmented button,.gs-segmented a{
  min-height:38px!important;
  border:0!important;
  border-radius:12px!important;
  background:transparent!important;
  color:#17466f!important;
  box-shadow:none!important;
  padding:0 14px!important;
  font-weight:950!important;
}
.users-view-switch button.active,.samples-view-btn.active,.samples-sort-link.active,.wells-view-switch button.active,.gs-segmented .active{
  background:var(--gs-primary)!important;
  color:#fff!important;
}
.samples-sort-box span{margin-right:6px;color:var(--gs-muted)!important;font-weight:850!important;}

/* Status badges */
.ref-status,.user-status,.sample-badge,.well-status,.gs-status,.map-status,[class*="status-badge"]{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:24px!important;
  padding:5px 10px!important;
  border-radius:999px!important;
  font-size:12px!important;
  font-weight:950!important;
  line-height:1!important;
  border:1px solid transparent!important;
  white-space:nowrap!important;
}
.ref-status,.gs-status.project,.well-status.project,[data-status="Проект"],.sample-badge.проект{
  background:#fff4cf!important;color:#a36800!important;border-color:#ffe2a3!important;
}
.user-status.active,.gs-status.work,.well-status.work,.sample-badge.в-работе,.sample-badge.created{
  background:#defbea!important;color:#087a48!important;border-color:#bcf1d1!important;
}
.user-status.disabled,.gs-status.draft,.sample-badge.черновик,.sample-badge.архив{
  background:#eef2f6!important;color:#53657a!important;border-color:#dce5ee!important;
}
.gs-status.done,.sample-badge.проверено{
  background:#eaf4ff!important;color:#0b5fc7!important;border-color:#cfe1ff!important;
}

/* Tables and rows */
.ref-table-wrap,.samples-table-wrap,.users-table-wrap,.catalog-table-wrap,.wells-table-wrap,.table-wrap{
  border:1px solid var(--gs-line)!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:var(--gs-shadow-soft)!important;
  overflow:auto!important;
}
.ref-table th,.samples-pro-table th,.users-table th,.catalog-table th,.wells-table th,table th{
  background:#f2f7fd!important;
  color:var(--gs-text)!important;
  font-size:12px!important;
  font-weight:950!important;
  padding:13px 14px!important;
  border-bottom:1px solid var(--gs-line)!important;
}
.ref-table td,.samples-pro-table td,.users-table td,.catalog-table td,.wells-table td,table td{
  padding:13px 14px!important;
  border-bottom:1px solid #e7f0f8!important;
}
tbody tr:hover{background:#f6fbff!important;}
tr.selected,.selected-row,.user-card.selected,.sample-card.selected,.well-card.selected{
  border-color:var(--gs-success)!important;
  box-shadow:0 16px 34px rgba(16,185,129,.14)!important;
}

/* Empty states */
.samples-empty,.users-empty,.gs-empty,.empty-state{
  grid-column:1/-1!important;
  min-height:260px!important;
  border:1px dashed #b9d4ee!important;
  border-radius:22px!important;
  background:linear-gradient(180deg,#fff,#f8fcff)!important;
  display:grid!important;
  place-items:center!important;
  text-align:center!important;
  color:var(--gs-muted)!important;
  font-weight:850!important;
  padding:28px!important;
}
.samples-empty::before,.users-empty::before,.gs-empty::before,.empty-state::before{
  content:'＋';
  display:flex;
  align-items:center;
  justify-content:center;
  width:58px;
  height:58px;
  margin:0 auto 12px;
  border-radius:18px;
  background:#eaf4ff;
  color:#0b63ce;
  font-size:30px;
  font-weight:950;
}
.samples-empty{font-size:0!important;}
.samples-empty::after{content:'Проб пока нет. Создайте пробу или выберите другие фильтры.';font-size:15px;}
.users-empty{font-size:0!important;}
.users-empty::after{content:'Пользователей пока нет. Создайте первого пользователя слева.';font-size:15px;}

/* Samples page stronger alignment with Wells page */
.samples-main-head{
  align-items:center!important;
  gap:18px!important;
}
.samples-status-row{
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important;
  gap:12px!important;
}
.samples-status-chip{
  min-height:72px!important;
  border-radius:18px!important;
  box-shadow:var(--gs-shadow-soft)!important;
}
.samples-card-grid{
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr))!important;
  gap:14px!important;
}
.sample-card{
  border-radius:18px!important;
  min-height:178px!important;
}
.samples-detail-actions{padding:0 22px 22px!important;}

/* Import page / navigation sidebars */
.import-tab,.catalog-nav-item,.catalog-type-card{
  border-radius:16px!important;
  border:1px solid var(--gs-line)!important;
  background:#fff!important;
  color:var(--gs-text)!important;
  box-shadow:var(--gs-shadow-soft)!important;
}
.import-tab.active,.catalog-nav-item.active,.catalog-type-card.active{
  background:linear-gradient(135deg,#0d7690,#10a477)!important;
  color:#fff!important;
  border-color:transparent!important;
}
.import-inspector,.import-sidebar{border-radius:22px!important;}
.import-dropzone{border-radius:20px!important;}

/* Catalog detail panel: section rhythm */
.geo-inspector .hint-card,.geo-inspector .layer-photo-gallery,.geo-inspector .geo-info-card,.geo-inspector [class*="hint"]{
  border-radius:16px!important;
}
.geo-inspector h2{font-size:22px!important;}
.geo-inspector .inspector-tabs{border-bottom:1px solid var(--gs-line)!important;}

/* Error and validation pages */
.gs-error-page{
  width:100vw;
  min-height:calc(100vh - 72px);
  display:grid;
  place-items:center;
  padding:32px;
  background:linear-gradient(180deg,#f8fcff,#eef8f6);
}
.gs-error-card{
  width:min(760px,calc(100vw - 40px));
  background:#fff;
  border:1px solid var(--gs-line);
  border-radius:26px;
  box-shadow:var(--gs-shadow);
  padding:30px;
}
.gs-error-card small{display:inline-flex;border-radius:999px;background:#fff4cf;color:#a36800;padding:6px 10px;font-weight:950;margin-bottom:12px;}
.gs-error-card h1{margin:0 0 10px;color:var(--gs-text);font-size:30px;}
.gs-error-card p{margin:0 0 18px;color:var(--gs-muted);font-weight:750;line-height:1.5;}
.gs-error-actions{display:flex;gap:10px;flex-wrap:wrap;}
.gs-field-error{border:1px solid #fecaca;background:#fff7f7;color:#991b1b;border-radius:14px;padding:12px 14px;font-weight:850;}

/* Responsive */
@media(max-width:1320px){
  .samples-pro-page,.users-pro-page,.wells-pro-page,.ref-catalogs .catalog-layout,.map-pro-grid{grid-template-columns:280px minmax(0,1fr)!important;}
  .samples-detail,.users-detail,.wells-pro-detail,.geo-inspector,.map-pro-info{grid-column:1/-1!important;position:relative!important;top:auto!important;max-height:none!important;}
}
@media(max-width:900px){
  .samples-pro-page,.users-pro-page,.wells-pro-page,.ref-catalogs .catalog-layout,.map-pro-grid,.import-grid{grid-template-columns:1fr!important;}
  .samples-left,.users-left,.import-sidebar,.map-pro-filters,.catalog-sidebar,.wells-pro-sidebar{position:relative!important;top:auto!important;max-height:none!important;}
  .ref-topbar,.samples-topbar,.import-topbar,.users-topbar,.wells-ref-page .ref-topbar,.ref-map-pro .ref-topbar,.gs-topbar{height:auto!important;max-height:none!important;grid-template-columns:1fr!important;}
  .ref-nav{justify-content:flex-start!important;overflow:auto!important;height:auto!important;}
}
/* v144 small correction: show username normally in topbar */
.ref-user-name b{font-size:13px!important;line-height:1.1!important;}
.ref-user-name b::after{content:none!important;}
/* v144 correction: view mode card remains a vertical sidebar section */
.samples-actions-card:has(.samples-view-btn){display:grid!important;gap:8px!important;padding:16px 0 0!important;background:transparent!important;border:0!important;box-shadow:none!important;}
.samples-actions-card:has(.samples-view-btn) h3{margin:0 0 4px!important;}

/* ===================== GeoSoft v145: layout polish, dashboard speed chart, samples sidebar ===================== */
/* Map top menu: same visual footprint as other redesigned pages */
body.ref-map-pro .ref-topbar{
  width:100%!important;
  height:72px!important;
  min-height:72px!important;
  max-height:72px!important;
  grid-template-columns:230px minmax(0,1fr) auto!important;
  padding:0 28px!important;
}
body.ref-map-pro .ref-nav{gap:14px!important;justify-content:center!important;overflow:hidden!important;}
body.ref-map-pro .ref-nav a{min-width:78px!important;height:72px!important;padding:8px 8px 6px!important;}
body.ref-map-pro .ref-user{height:72px!important;}

/* Dashboard speed chart */
.gs-drilling-speed-panel{
  padding:18px 20px!important;
  min-height:260px;
}
@media (min-width:1100px){
  .gs-dashboard-v127 > .gs-drilling-speed-panel{
    grid-column:2;
    grid-row:4;
    margin-top:0;
  }
}
.gs-speed-total{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  border:1px solid var(--gs-line);
  border-radius:999px;
  background:#f7fbff;
  color:var(--gs-primary);
  font-weight:950;
  padding:5px 12px;
  white-space:nowrap;
}
.gs-speed-chart{
  min-height:188px;
  display:grid;
  grid-template-columns:repeat(7,minmax(48px,1fr));
  gap:14px;
  align-items:end;
  padding:18px 4px 2px;
  border-top:1px solid #e4eef8;
  position:relative;
}
.gs-speed-chart::before{
  content:'';
  position:absolute;
  left:6px;right:6px;bottom:34px;height:1px;
  background:#dbe8f5;
}
.gs-speed-bar{
  height:170px;
  display:grid;
  grid-template-rows:1fr auto auto;
  gap:6px;
  align-items:end;
  text-align:center;
  color:var(--gs-text);
  font-weight:950;
  min-width:0;
}
.gs-speed-bar span{
  display:block;
  width:100%;
  max-width:46px;
  margin:0 auto;
  border-radius:14px 14px 6px 6px;
  background:linear-gradient(180deg,#10b981,#0b376d);
  box-shadow:0 10px 22px rgba(11,55,109,.16);
}
.gs-speed-bar b{font-size:13px;line-height:1;white-space:nowrap;}
.gs-speed-bar small{color:var(--gs-muted);font-weight:850;font-size:12px;}
@media(max-width:900px){.gs-speed-chart{grid-template-columns:repeat(4,1fr);}.gs-speed-bar{height:140px;}}

/* Samples page: strict shared workspace standard and no horizontal overflow in left panel */
.samples-pro-page{
  grid-template-columns:320px minmax(0,1fr) 360px!important;
  width:calc(100vw - 32px)!important;
  gap:18px!important;
}
.samples-left{
  overflow-x:hidden!important;
  box-sizing:border-box!important;
}
.samples-filter-form{
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
}
.samples-filter-form label,
.samples-filter-form input,
.samples-filter-form select,
.samples-filter-form button,
.samples-filter-form a,
.samples-actions-card a,
.samples-actions-card button{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.samples-filter-form .samples-primary,
.samples-filter-form .samples-secondary{
  min-height:44px!important;
  padding:0 12px!important;
  white-space:normal!important;
  text-align:center!important;
}
.samples-actions-card{
  width:100%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.samples-actions-card .samples-view-btn{
  width:100%!important;
}
.samples-stats-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.samples-stats-grid div{min-width:0!important;}
@media(max-width:1320px){
  .samples-pro-page{grid-template-columns:300px minmax(0,1fr)!important;}
}
@media(max-width:900px){
  .samples-pro-page{grid-template-columns:1fr!important;width:calc(100vw - 24px)!important;}
}

/* ===================== GeoSoft v147: dashboard chart position and line chart ===================== */
.gs-dashboard-left-stack{
  display:grid;
  grid-template-rows:auto auto;
  gap:20px;
  min-width:0;
}
.gs-dashboard-left-stack > .gs-panel{min-width:0;}
.gs-dashboard-left-stack .gs-drilling-speed-panel{
  margin:0!important;
  min-height:310px;
  padding:18px 20px 20px!important;
}
.gs-speed-line-chart{
  border-top:1px solid #e4eef8;
  padding-top:14px;
}
.gs-speed-line-chart svg{
  display:block;
  width:100%;
  height:210px;
  overflow:visible;
  background:
    linear-gradient(#eef5fb 1px, transparent 1px) 0 0 / 100% 25%,
    linear-gradient(90deg,#eef5fb 1px, transparent 1px) 0 0 / 16.666% 100%;
  border-radius:16px;
}
.gs-speed-gridline{fill:none;stroke:#d7e6f4;stroke-width:.45;stroke-dasharray:3 2;}
.gs-speed-area{fill:url(#speedFill);stroke:none;}
.gs-speed-line{fill:none;stroke:#0b61c8;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 5px rgba(11,97,200,.18));}
.gs-speed-point{fill:#10b981;stroke:#fff;stroke-width:1.15;filter:drop-shadow(0 2px 3px rgba(10,154,97,.25));}
.gs-speed-axis{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:6px;
  margin-top:10px;
  color:#62758d;
  font-size:12px;
  font-weight:900;
  text-align:center;
}
.gs-speed-axis span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media(max-width:1500px){
  .gs-dashboard-left-stack .gs-drilling-speed-panel{min-height:280px;}
  .gs-speed-line-chart svg{height:190px;}
}
@media(max-width:900px){
  .gs-speed-axis{grid-template-columns:repeat(4,1fr);}
  .gs-speed-line-chart svg{height:180px;}
}

/* v150: назначения участка */
.gs-site-assignments {
  margin-top: 6px !important;
  color: var(--muted, #5b6b82);
  font-size: 13px;
}
.gs-site-assignments b {
  color: var(--navy, #07305f);
}

/* ===================== GeoSoft v152: program version marker and improved dashboard drilling chart ===================== */
:root{--gs-app-version:'Office v156';}
body.ref-app::after,
body.app-shell::after{
  content:var(--gs-app-version);
  position:fixed;
  top:54px;
  right:172px;
  z-index:90;
  font-size:10px;
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:900;
  color:#7b8fa6;
  background:rgba(255,255,255,.78);
  border:1px solid rgba(207,224,240,.9);
  border-radius:999px;
  padding:4px 8px;
  pointer-events:none;
  box-shadow:0 6px 16px rgba(6,43,85,.06);
}
body.ref-map-pro::after{top:50px;right:170px;}
@media(max-width:900px){body.ref-app::after,body.app-shell::after{display:none;}}

.gs-drilling-speed-panel .gs-panel-head-v127{
  align-items:center;
  margin-bottom:12px!important;
}
.gs-drilling-speed-panel .gs-panel-head-v127 h2{
  display:flex;
  align-items:center;
  gap:8px;
}
.gs-drilling-speed-panel .gs-panel-head-v127 h2::before{
  content:'↗';
  width:30px;
  height:30px;
  border-radius:11px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#0b61c8;
  background:#eaf4ff;
  font-size:18px;
  box-shadow:inset 0 0 0 1px #d4e7fb;
}
.gs-speed-total{
  background:linear-gradient(135deg,#e7f8f1,#edf5ff)!important;
  border:1px solid #ccefe0!important;
  color:#0b4a86!important;
}
.gs-speed-modern-chart{
  margin-top:8px;
  padding:14px 16px 12px;
  border:1px solid #e2edf8;
  border-radius:22px;
  background:
    radial-gradient(circle at 18% 0%, rgba(16,185,129,.13), transparent 34%),
    linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.gs-speed-modern-grid{
  height:220px;
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
  padding:8px 4px 0;
  background:
    linear-gradient(#edf4fb 1px, transparent 1px) 0 32px / 100% 25%,
    linear-gradient(90deg,rgba(237,244,251,.9) 1px, transparent 1px) 0 0 / calc(100% / 7) 100%;
  border-radius:18px;
}
.gs-speed-modern-day{
  position:relative;
  display:grid;
  grid-template-rows:28px 1fr 24px;
  gap:6px;
  min-width:0;
  text-align:center;
}
.gs-speed-modern-value{
  align-self:end;
  color:#6d7f94;
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
}
.gs-speed-modern-bar-wrap{
  position:relative;
  min-height:0;
  border-radius:999px;
  background:rgba(232,241,249,.72);
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  box-shadow:inset 0 0 0 1px rgba(210,225,240,.75);
}
.gs-speed-modern-bar{
  width:100%;
  min-height:5px;
  border-radius:999px 999px 8px 8px;
  background:linear-gradient(180deg,#18c98a 0%,#0b61c8 100%);
  box-shadow:0 -8px 18px rgba(11,97,200,.16);
  transition:height .25s ease;
}
.gs-speed-modern-day.has-value .gs-speed-modern-value{
  color:#0b376d;
}
.gs-speed-modern-label{
  color:#62758d;
  font-size:12px;
  font-weight:950;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.gs-speed-modern-footer{
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:10px;
  color:#7a8aa0;
  font-size:12px;
  font-weight:900;
}
@media(max-width:1500px){.gs-speed-modern-grid{height:190px;gap:11px;}}
@media(max-width:900px){.gs-speed-modern-grid{height:170px;gap:8px}.gs-speed-modern-value{font-size:11px}.gs-speed-modern-label{font-size:11px}}

/* v153: global version/language widgets and Android update center */
.office-version-badge{
  justify-self:start;align-self:center;display:inline-flex;align-items:center;gap:6px;
  padding:5px 9px;border-radius:999px;background:#eef6ff;border:1px solid #d8e8f8;
  color:#0b4a86;font-size:11px;font-weight:950;letter-spacing:.03em;white-space:nowrap;
}
.ref-topbar{grid-template-columns:220px auto 1fr auto!important;gap:14px!important;}
.wells-ref-page .ref-topbar,.ref-map-pro .ref-topbar,.gs-topbar,.samples-topbar,.import-topbar,.users-topbar,.android-updates-topbar{grid-template-columns:220px auto 1fr auto!important;}
.lang-switch{display:inline-flex;align-items:center;border:1px solid #d8e6f3;border-radius:999px;background:#fff;overflow:hidden;white-space:nowrap}
.lang-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:28px;padding:0 8px;color:#0b376d;text-decoration:none;font-weight:950;font-size:11px}
.lang-switch a.active{background:#0b376d;color:#fff}
.login-version-row{display:flex;justify-content:center;gap:8px;align-items:center;margin-top:14px;color:#6b7f95;font-size:12px;font-weight:800}.login-lang-switch{display:flex;justify-content:center;margin-top:12px}.login-lang-switch .lang-switch a{height:30px}
.android-updates-page{max-width:1680px;margin:0 auto;padding:28px 32px 80px}.android-updates-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.android-updates-hero h1{margin:6px 0 6px;color:#062b55;font-size:34px}.android-updates-hero p{margin:0;color:#6d7f94;font-weight:800}.android-release-eyebrow{display:inline-flex;padding:6px 12px;border-radius:999px;background:#dcfce7;color:#047857;font-weight:950;font-size:12px}.android-active-release{min-width:230px;background:#fff;border:1px solid #dce8f4;border-radius:22px;padding:18px;box-shadow:0 16px 40px rgba(6,43,85,.06)}.android-active-release small{display:block;color:#6d7f94;font-weight:950;text-transform:uppercase;font-size:11px}.android-active-release b{display:block;font-size:28px;color:#062b55;margin:4px 0}.android-active-release span{color:#6d7f94;font-weight:850}.android-release-notice{margin:10px 0 18px;padding:13px 16px;border:1px solid #bbf7d0;background:#ecfdf5;border-radius:16px;color:#166534;font-weight:900}.android-updates-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}.android-release-card,.android-release-api-card{background:#fff;border:1px solid #dce8f4;border-radius:26px;padding:22px;box-shadow:0 18px 42px rgba(6,43,85,.07)}.android-release-card h2,.android-release-api-card h2{margin:0 0 8px;color:#062b55}.android-release-card p,.android-release-api-card p{color:#6d7f94;font-weight:750;line-height:1.45}.android-release-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0 0}.android-release-form label{font-weight:950;color:#50657e;font-size:12px}.android-release-form input,.android-release-form textarea{margin-top:6px}.android-release-form textarea{min-height:96px;resize:vertical}.android-release-form .full{grid-column:1/-1}.android-release-form .check-row{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid #e2edf8;border-radius:14px;background:#f8fbff}.android-release-form .check-row input{width:auto;margin:0}.android-release-form button{grid-column:1/-1;background:#0b376d}.api-row{display:grid;gap:5px;margin:12px 0;padding:12px;border:1px solid #e2edf8;border-radius:16px;background:#f8fbff}.api-row small{font-weight:950;color:#6d7f94}.api-row code{word-break:break-all;color:#0b376d}.release-list-card{margin-top:18px}.android-section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}.android-section-head h2{margin:0;color:#062b55}.android-section-head p{margin:5px 0 0;color:#6d7f94}.android-release-table-wrap{overflow:auto;border:1px solid #dce8f4;border-radius:20px}.android-release-table{width:100%;border-collapse:separate;border-spacing:0;min-width:1100px}.android-release-table th{background:#f3f8fd;color:#0b2d55;font-size:13px;text-align:left;padding:13px;border-bottom:1px solid #dce8f4}.android-release-table td{padding:13px;border-bottom:1px solid #e8f0f7;vertical-align:middle}.android-release-table tr.active{background:#f0fdf7}.android-release-table td small{display:block;color:#718096;margin-top:4px}.android-release-table .sha{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.release-badge{display:inline-flex;margin:2px 4px 2px 0;padding:5px 9px;border-radius:999px;background:#eef6ff;color:#0b4a86;font-weight:950;font-size:12px}.release-badge.ok{background:#dcfce7;color:#047857}.release-badge.danger{background:#fee2e2;color:#b91c1c}.release-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.release-actions a,.release-actions button{width:auto;border:1px solid #d8e6f3;border-radius:11px;background:#fff;color:#0b376d;padding:8px 11px;text-decoration:none;font-weight:950;font-size:12px}.release-actions form{display:inline;margin:0}.android-empty{text-align:center;color:#718096;font-weight:850;padding:26px!important}
@media(max-width:1250px){.ref-topbar,.wells-ref-page .ref-topbar,.ref-map-pro .ref-topbar,.gs-topbar,.samples-topbar,.import-topbar,.users-topbar,.android-updates-topbar{grid-template-columns:1fr!important;height:auto!important;padding:14px!important}.office-version-badge{justify-self:start}.android-updates-grid{grid-template-columns:1fr}.android-updates-hero{display:block}.android-active-release{margin-top:14px}.android-release-form{grid-template-columns:1fr}}

/* ===================== GeoSoft v154 hotfix: topbar cleanup and map navigation alignment ===================== */
/* Убираем устаревший программный ярлык v152/v154, который рисовался поверх страниц. */
body.ref-app::after,
body.app-shell::after{
  content:none!important;
  display:none!important;
}

/* Версия не должна занимать место в верхней панели. Актуальная версия остаётся в RELEASE_INFO/README. */
.office-version-badge{
  display:none!important;
}

/* После удаления бейджа возвращаем верхнюю панель к трём рабочим зонам: бренд / меню / пользователь. */
body.ref-app .ref-topbar,
body.ref-app .gs-topbar,
body.ref-app .wells-topbar,
body.ref-app .samples-topbar,
body.ref-app .import-topbar,
body.ref-app .users-topbar,
body.ref-app .android-updates-topbar{
  grid-template-columns:220px minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:16px!important;
}

body.ref-app .ref-brand{
  min-width:0!important;
}
body.ref-app .ref-nav{
  min-width:0!important;
  width:100%!important;
}
body.ref-app .ref-user{
  justify-self:end!important;
  min-width:max-content!important;
}

/* Карта: фикс разъехавшихся верхних кнопок после добавления RU/EN и Android-обновлений. */
body.ref-map-pro .ref-topbar{
  grid-template-columns:220px minmax(0,1fr) auto!important;
  height:72px!important;
  min-height:72px!important;
  max-height:72px!important;
  padding:0 24px!important;
  gap:16px!important;
  overflow:visible!important;
}
body.ref-map-pro .ref-nav{
  display:flex!important;
  align-items:stretch!important;
  justify-content:center!important;
  gap:7px!important;
  overflow:visible!important;
  min-width:0!important;
}
body.ref-map-pro .ref-nav a{
  flex:0 1 92px!important;
  min-width:70px!important;
  max-width:112px!important;
  height:72px!important;
  padding:8px 5px 6px!important;
  box-sizing:border-box!important;
  line-height:1.05!important;
}
body.ref-map-pro .ref-nav a span{
  display:block!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
body.ref-map-pro .ref-user{
  height:72px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
}
body.ref-map-pro .ref-user-name{
  max-width:170px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
body.ref-map-pro .ref-logout{
  height:38px!important;
  min-width:auto!important;
  width:auto!important;
  padding:0 14px!important;
  white-space:nowrap!important;
}

@media(max-width:1450px){
  body.ref-map-pro .ref-topbar{
    grid-template-columns:180px minmax(0,1fr) auto!important;
    padding:0 16px!important;
    gap:10px!important;
  }
  body.ref-map-pro .ref-brand img{width:58px!important;height:auto!important;}
  body.ref-map-pro .ref-brand small{display:none!important;}
  body.ref-map-pro .ref-nav{gap:4px!important;}
  body.ref-map-pro .ref-nav a{flex-basis:76px!important;min-width:58px!important;font-size:11px!important;}
  body.ref-map-pro .ref-user-name{display:none!important;}
}

@media(max-width:1100px){
  body.ref-app .ref-topbar,
  body.ref-app .gs-topbar,
  body.ref-app .wells-topbar,
  body.ref-app .samples-topbar,
  body.ref-app .import-topbar,
  body.ref-app .users-topbar,
  body.ref-app .android-updates-topbar,
  body.ref-map-pro .ref-topbar{
    grid-template-columns:1fr!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    padding:14px!important;
  }
  body.ref-app .ref-nav,
  body.ref-map-pro .ref-nav{
    justify-content:flex-start!important;
    overflow:auto!important;
    height:auto!important;
  }
  body.ref-app .ref-user,
  body.ref-map-pro .ref-user{
    justify-self:start!important;
    height:auto!important;
  }
}

/* v156: site code and per-photo depth labels */
.gs-site-code{
  display:inline-flex;
  align-items:center;
  padding:2px 8px;
  border-radius:999px;
  background:#eaf4ff;
  color:#063f7a;
  border:1px solid #cfe3f7;
  font-size:.78em;
  font-weight:800;
  letter-spacing:.03em;
  vertical-align:middle;
}
.photo-depth-fields{
  display:grid!important;
  grid-template-columns:1fr 1fr;
  gap:10px 12px;
  align-items:end;
}
.photo-depth-fields small{
  grid-column:1/-1;
  color:#6b7d90;
  font-size:12px;
  line-height:1.35;
}
.photo-depth-list{
  display:block;
  margin-top:4px;
  color:#60758a;
  font-size:11px;
  line-height:1.25;
  white-space:normal;
}
.geo-photo-grid{
  gap:10px!important;
}
.geo-photo-item{
  margin:0;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.geo-photo-item a{
  display:block;
}
.geo-photo-item figcaption{
  display:inline-flex;
  align-self:flex-start;
  padding:2px 6px;
  border-radius:999px;
  background:#f3f7fb;
  border:1px solid #dbe7f3;
  color:#38536f;
  font-size:11px;
  font-weight:800;
}
@media(max-width:720px){
  .photo-depth-fields{grid-template-columns:1fr!important;}
}

/* v160 photo workflow */
.transition-photo-note{padding:12px 14px;border:1px dashed #9bc2ea;border-radius:14px;background:#f3f9ff;color:#0b3563;font-weight:700;}
.transition-photo-note b{display:block;margin-bottom:4px;}


/* v165-fieldtest: markers for driller comments and photo-step UI */
.gs-comment-mark,.map-div-marker i{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;background:#f59e0b;color:#fff;font-weight:950;font-style:normal;font-size:12px;line-height:1;box-shadow:0 4px 12px rgba(245,158,11,.35)}
.gs-comment-note{color:#b45309!important}.gs-field-comment-alert{margin:12px 0;padding:10px 12px;border-radius:14px;background:#fff7ed;color:#b45309;font-weight:950;border:1px solid #fed7aa}


/* v165-map-scale-bar: масштабная линейка Leaflet на карте */
.ref-map .leaflet-control-scale {
  margin-left: 18px;
  margin-bottom: 18px;
}
.ref-map .leaflet-control-scale-line {
  border: 2px solid #0b2a52;
  border-top: none;
  background: rgba(255, 255, 255, 0.92);
  color: #0b2a52;
  font-weight: 800;
  border-radius: 0 0 6px 6px;
  box-shadow: 0 8px 20px rgba(15, 35, 52, 0.16);
}

/* v178: fit interval workspace inside browser viewport and keep lower controls visible */
.geo-interval-page{
  height:calc(100vh - var(--gs-topbar-h,72px) - 20px)!important;
  min-height:0!important;
  margin-top:10px!important;
  margin-bottom:10px!important;
  padding-top:8px!important;
  padding-bottom:8px!important;
  overflow:hidden!important;
}
.geo-interval-center{min-height:0!important;overflow:hidden!important;}
.geo-interval-head{flex:0 0 auto!important;padding-bottom:12px!important;}
.geo-interval-toolbar,.geo-view-toggle{display:none!important;}
.core-work-column{min-height:0!important;}
.core-column-actions .geo-btn-secondary,
.core-column-actions .geo-btn-primary{font-size:14px!important;padding:0 12px!important;white-space:normal!important;text-align:center!important;line-height:1.15!important;}
@media(max-width:1100px){
  .geo-interval-page{height:auto!important;min-height:calc(100vh - var(--gs-topbar-h,72px))!important;overflow:visible!important;}
  .core-column-actions{position:static!important;background:#fff!important;}
}


/* v179: reliable viewport fitting for the interval workspace.
   The exact height is also set from window.innerHeight in the page script. */
@media (min-width:1101px){
  body.intervals-ref-page{
    overflow:hidden!important;
  }
  .geo-interval-page{
    height:var(--interval-page-height,calc(100dvh - 94px))!important;
    max-height:var(--interval-page-height,calc(100dvh - 94px))!important;
    min-height:0!important;
    overflow:hidden!important;
    padding-bottom:12px!important;
  }
  .geo-well-card,
  .geo-interval-center,
  .geo-interval-detail{
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
  }
  .geo-well-card,
  .geo-interval-detail{
    overflow-y:auto!important;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
    padding-bottom:48px!important;
    box-sizing:border-box;
  }
  .geo-interval-center{
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
  }
  .core-work-column{
    flex:1 1 auto!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:auto!important;
    padding-bottom:72px!important;
    scroll-padding-bottom:72px!important;
    box-sizing:border-box!important;
  }
  .core-column-actions{
    bottom:-54px!important;
    padding-bottom:12px!important;
  }
  .core-work-column::after{
    content:"";
    display:block;
    height:24px;
    grid-column:1/-1;
  }
}
