/* --- Tabs --- */
.tabs {
  display:flex; gap:8px; padding:8px 12px; border-bottom:1px solid #e5e7eb;
  position:sticky; top:0; background:#fff; z-index:5;
}
.tab-btn {
  border:1px solid #e5e7eb; background:#f9fafb; border-radius:8px; padding:6px 10px; cursor:pointer;
}
.tab-btn.active { background:#eef2ff; border-color:#c7d2fe; }
.tab-panel { display:none; }
.tab-panel.active { display:block; }

#tab-map header { display:grid; grid-template-columns: 1fr 1fr; gap:12px; padding:12px; }
#tab-map #map { width:100%; height: calc(100vh - 160px); min-height: 420px; }
@media (max-width: 980px){
  #tab-map header { grid-template-columns: 1fr; }
  #tab-map #map { height: calc(100vh - 240px); }
}

.upload-wrap { padding:16px; display:grid; gap:16px; grid-template-columns: 1fr; }
.upload-wrap .card { border:1px solid #e5e7eb; border-radius:12px; padding:16px; background:#fff; max-width: 840px; }
.upload-wrap h3 { margin:0 0 12px; }

.upload-wrap .grid { display:grid; gap:12px; grid-template-columns: 1fr; }
.upload-wrap label { display:flex; flex-direction:column; gap:6px; font: 14px/1.3 system-ui, Arial; }
.upload-wrap input, .upload-wrap select, .upload-wrap textarea {
  width:100%; box-sizing:border-box; padding:10px 12px;
  border:1px solid #e5e7eb; border-radius:10px; background:#fff;
}
.upload-wrap input[type="file"] { padding:8px; }

.upload-wrap .actions { display:flex; gap:10px; margin-top:10px; flex-wrap: wrap; }
.upload-wrap .actions button {
  padding:10px 14px; border-radius:10px; border:1px solid #e5e7eb; background:#f9fafb; cursor:pointer;
}
.upload-wrap .actions .secondary { background:#eff6ff; }

.status { margin-top:8px; font: 14px/1.4 system-ui, Arial; color:#065f46; }
.status.error { color:#b91c1c; }

.manual-row { padding:12px; border:1px dashed #e5e7eb; border-radius:10px; margin-bottom:12px; background:#fcfcff; }
.manual-row .grid { grid-template-columns: 1fr 1fr; }
@media (max-width: 900px){
  .manual-row .grid { grid-template-columns: 1fr; }
}
.mini-hint { font-size: 12px; color:#374151; margin-top:6px; }

/* --- Sitplan layout --- */
#tab-sitplan .layout{
  display:grid;
  grid-template-columns: 1fr 360px;
  gap:12px;
  padding:12px;
}
#tab-sitplan #sp-map{
  width:100%;
  height: calc(100vh - 160px);
  min-height:420px;
}
@media (max-width:980px){
  #tab-sitplan .layout { grid-template-columns: 1fr; }
  #tab-sitplan #sp-map{ height: calc(100vh - 240px); }
}

/* --- Subtabs (внутри "Карта") --- */
.subtabs{ display:flex; gap:8px; padding:8px 12px; border-bottom:1px solid #e5e7eb; background:#fff; }
.subtab-btn{ border:1px solid #e5e7eb; background:#f9fafb; border-radius:8px; padding:6px 10px; cursor:pointer; }
.subtab-btn.active{ background:#eef2ff; border-color:#c7d2fe; }
.subtab-panel{ display:none; }
.subtab-panel.active{ display:block; }

/* размеры двух контейнеров карт внутри вкладки "Карта" */
#tab-map #map-main, #tab-map #map-ahp{
  width:100%;
  height: calc(100vh - 230px);
  min-height: 420px;
}
@media (max-width: 980px){
  #tab-map #map-main, #tab-map #map-ahp{ height: calc(100vh - 260px); }
}

#tab-sitplan:not(.active) #sp-map,
#tab-sitplan:not(.active) #planMap{
  display: none !important;
}

#tab-map .subtab-panel{ display:none; }
#tab-map .subtab-panel.active{ display:block; }