/**
 * Properties Panel Styles
 *
 * 노드 속성 편집 패널
 */

/* Panel Container */
.properties-panel {
  position: fixed;
  top: var(--header-height);
  right: 0;
  bottom: 0;
  width: 300px;
  background-color: var(--color-bg-primary);
  border-left: 1px solid var(--color-neutral-200);
  transform: translateX(100%);
  transition: transform var(--transition-base);
  z-index: var(--z-sidebar);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.properties-panel--open {
  transform: translateX(0);
}

/* Panel Header */
.properties-panel__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--spacing-4);
  border-bottom: 1px solid var(--color-neutral-200);
  flex-shrink: 0;
}

.properties-panel__title {
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
}

.properties-panel__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: var(--color-text-secondary);
  border-radius: var(--radius-md);
  transition: background-color var(--transition-fast);
}

.properties-panel__close:hover {
  background-color: var(--color-neutral-100);
}

/* Panel Body */
.properties-panel__body {
  flex: 1;
  overflow-y: auto;
}

/* Section */
.properties-section {
  padding: var(--spacing-4);
  border-bottom: 1px solid var(--color-neutral-200);
}

.properties-section:last-child {
  border-bottom: none;
}

.properties-section__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-secondary);
  margin-bottom: var(--spacing-3);
  cursor: pointer;
}

.properties-section__title:hover {
  color: var(--color-text-primary);
}

.properties-section__toggle {
  transition: transform var(--transition-fast);
}

.properties-section--collapsed .properties-section__toggle {
  transform: rotate(-90deg);
}

.properties-section--collapsed .properties-section__content {
  display: none;
}

/* Property Row */
.property-row {
  display: flex;
  align-items: center;
  gap: var(--spacing-3);
  margin-bottom: var(--spacing-3);
}

.property-row:last-child {
  margin-bottom: 0;
}

.property-row__label {
  flex: 0 0 80px;
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

.property-row__value {
  flex: 1;
}

/* Color Picker */
.color-picker {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
}

.color-picker__preview {
  width: 32px;
  height: 32px;
  border-radius: var(--radius-md);
  border: 1px solid var(--color-neutral-300);
  cursor: pointer;
  transition: border-color var(--transition-fast);
}

.color-picker__preview:hover {
  border-color: var(--color-neutral-400);
}

.color-picker__input {
  width: 0;
  height: 0;
  opacity: 0;
  position: absolute;
}

.color-picker__hex {
  flex: 1;
  font-family: var(--font-family-mono);
  font-size: var(--font-size-sm);
  text-transform: uppercase;
}

/* Color Palette */
.color-palette {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: var(--spacing-1);
}

.color-palette__item {
  width: 100%;
  aspect-ratio: 1;
  border-radius: var(--radius-sm);
  cursor: pointer;
  border: 2px solid transparent;
  transition: all var(--transition-fast);
}

.color-palette__item:hover {
  transform: scale(1.1);
  z-index: 1;
}

.color-palette__item--selected {
  border-color: var(--color-neutral-800);
  box-shadow: 0 0 0 2px var(--color-bg-primary);
}

/* Shape Selector */
.shape-selector {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-2);
}

.shape-selector__item {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--spacing-2);
  border: 2px solid var(--color-neutral-200);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: all var(--transition-fast);
}

.shape-selector__item:hover {
  border-color: var(--color-neutral-300);
  background-color: var(--color-neutral-50);
}

.shape-selector__item--selected {
  border-color: var(--color-primary-500);
  background-color: var(--color-primary-50);
}

.shape-selector__icon {
  width: 32px;
  height: 24px;
}

/* Font Size Selector */
.font-size-selector {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
}

.font-size-selector__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: var(--radius-md);
  background-color: var(--color-neutral-100);
  color: var(--color-text-secondary);
  transition: all var(--transition-fast);
}

.font-size-selector__btn:hover {
  background-color: var(--color-neutral-200);
  color: var(--color-text-primary);
}

.font-size-selector__value {
  flex: 1;
  text-align: center;
  font-size: var(--font-size-sm);
  font-weight: var(--font-weight-medium);
}

/* Connection Style */
.connection-style {
  display: flex;
  gap: var(--spacing-2);
}

.connection-style__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--spacing-1);
  padding: var(--spacing-2);
  border: 2px solid var(--color-neutral-200);
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: all var(--transition-fast);
}

.connection-style__item:hover {
  border-color: var(--color-neutral-300);
}

.connection-style__item--selected {
  border-color: var(--color-primary-500);
  background-color: var(--color-primary-50);
}

.connection-style__icon {
  width: 40px;
  height: 20px;
}

.connection-style__label {
  font-size: var(--font-size-xs);
  color: var(--color-text-secondary);
}

/* Slider */
.property-slider {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
}

.property-slider__input {
  flex: 1;
  height: 4px;
  -webkit-appearance: none;
  appearance: none;
  background: var(--color-neutral-200);
  border-radius: var(--radius-full);
  cursor: pointer;
}

.property-slider__input::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  background: var(--color-primary-500);
  border-radius: 50%;
  cursor: pointer;
  transition: background var(--transition-fast);
}

.property-slider__input::-webkit-slider-thumb:hover {
  background: var(--color-primary-600);
}

.property-slider__value {
  width: 40px;
  text-align: right;
  font-size: var(--font-size-sm);
  color: var(--color-text-secondary);
}

/* No Selection State */
.properties-panel__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: var(--spacing-6);
  text-align: center;
  color: var(--color-text-secondary);
}

.properties-panel__empty-icon {
  width: 48px;
  height: 48px;
  margin-bottom: var(--spacing-3);
  opacity: 0.5;
}

.properties-panel__empty-text {
  font-size: var(--font-size-sm);
}
