/* cignyl-sftp 20260824 */
/* ------------------------------ */
/* v2 Dashboard (draggable grid)  */
/* ------------------------------ */

.v2-theme .v2-dashboard {
  position: relative;
  width: 100%;
}

.v2-theme .v2-dashboard__grid {
  width: 100%;
  min-height: 160px;
}

.v2-theme .v2-dashboard__empty {
  padding: var(--v2-space-md);
  color: var(--v2-text-muted);
  border: 1px dashed var(--v2-border);
  border-radius: var(--v2-radius-md);
  background: var(--v2-surface-muted);
}

.v2-theme .v2-dashboard__empty.v2-is-hidden {
  display: none;
}

/* Widget chrome: keep a consistent surface under the grid runtime defaults */
.v2-theme .v2-dashboard__item-content.grid-stack-item-content,
.v2-theme .v2-dashboard__item-content {
  background: var(--v2-surface);
  border: 1px solid var(--v2-border);
  border-radius: var(--v2-radius-md);
  overflow: hidden;
  box-sizing: border-box;
}

/* While in static (non-edit) mode, reduce the "draggable" affordance */
.v2-theme .v2-dashboard--edit-false .grid-stack-item {
  cursor: default;
}

.v2-theme .v2-dashboard__item-content > div {
  height: 100%;
  box-sizing: border-box;
}

/* Override GridStack resizable handle positioning for all corners */
.v2-theme .v2-dashboard .grid-stack-item > .ui-resizable-handle.ui-resizable-nw {
  bottom: 0;
  right: 0;
}

.v2-theme .v2-dashboard .grid-stack-item > .ui-resizable-handle.ui-resizable-ne {
  bottom: 0;
  right: 0;
}

.v2-theme .v2-dashboard .grid-stack-item > .ui-resizable-handle.ui-resizable-sw {
  bottom: 0;
  right: 0;
}

.v2-theme .v2-dashboard .grid-stack-item > .ui-resizable-handle.ui-resizable-se {
  bottom: 0;
  right: 0;
}