/**
 * settings.css - 우측 설정 패널: 추론 엔진, API 키, 시스템 프롬프트, 샘플링 파라미터
 */

.settings-header {
  padding: 14px 16px;
  border-bottom: 1px solid var(--border-subtle);
  display: flex;
  align-items: center;
  justify-content: space-between;
  user-select: none;
}

.settings-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
}

.settings-content {
  flex: 1;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  overflow-y: auto;
}

.settings-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.section-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--text-muted);
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.field-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.field-label-value {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--accent-text);
  background-color: var(--accent-subtle);
  padding: 1px 6px;
  border-radius: var(--radius-xs);
}

.parameter-number-input {
  width: 68px;
  height: 26px;
  border: 1px solid transparent;
  text-align: right;
  font-variant-numeric: tabular-nums;
  transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.parameter-number-input-wide {
  width: 82px;
}

.parameter-number-input:hover {
  border-color: var(--border-normal);
}

.parameter-number-input:focus {
  border-color: var(--border-focus);
  background-color: var(--bg-input);
}

.parameter-number-input:invalid {
  border-color: var(--danger-primary);
  color: var(--danger-text);
}

.form-input {
  width: 100%;
  height: 32px;
  background-color: var(--bg-input);
  border: 1px solid var(--border-normal);
  border-radius: var(--radius-sm);
  padding: 0 10px;
  font-size: 12px;
  font-family: var(--font-mono);
  color: var(--text-primary);
  transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.form-input:focus {
  border-color: var(--border-focus);
  background-color: var(--bg-surface-elevated);
}

.form-select {
  width: 100%;
  height: 36px;
  background-color: var(--bg-input);
  border: 1px solid var(--border-normal);
  border-radius: var(--radius-sm);
  padding: 0 10px;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary);
  cursor: pointer;
  transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.form-select:hover:not(:disabled) {
  background-color: var(--bg-hover);
  border-color: var(--border-focus);
}

.form-select:focus-visible {
  border-color: var(--border-focus);
  background-color: var(--bg-surface-elevated);
}

.form-select:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.form-select option {
  background-color: var(--bg-surface-elevated);
  color: var(--text-primary);
}

.input-with-action {
  position: relative;
  display: flex;
  align-items: center;
}

.input-action-btn {
  position: absolute;
  right: 6px;
  width: 24px;
  height: 24px;
  color: var(--text-muted);
  border-radius: var(--radius-xs);
}

.input-action-btn:hover {
  color: var(--text-primary);
  background-color: var(--bg-hover);
}

.system-prompt-textarea {
  width: 100%;
  min-height: 90px;
  max-height: 180px;
  resize: vertical;
  background-color: var(--bg-input);
  border: 1px solid var(--border-normal);
  border-radius: var(--radius-sm);
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.5;
  color: var(--text-primary);
  transition: border-color var(--transition-fast);
}

.system-prompt-textarea:focus {
  border-color: var(--border-focus);
}

/* 슬라이더 컨트롤 */
.slider-control-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.range-slider {
  flex: 1;
  height: 4px;
  border-radius: var(--radius-full);
  background: var(--border-subtle);
  outline: none;
  cursor: pointer;
  -webkit-appearance: none;
}

.range-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--accent-primary);
  border: 2px solid var(--bg-surface);
  box-shadow: var(--shadow-sm);
  cursor: pointer;
  transition: transform var(--transition-fast);
}

.range-slider::-webkit-slider-thumb:hover {
  transform: scale(1.2);
}

/* 연결 테스트 버튼 및 상태 */
.btn-secondary {
  height: 32px;
  width: 100%;
  background-color: var(--bg-surface-elevated);
  border: 1px solid var(--border-normal);
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 500;
  color: var(--text-secondary);
}

.btn-secondary:hover {
  background-color: var(--bg-hover);
  color: var(--text-primary);
  border-color: var(--border-focus);
}

.connection-test-result {
  padding: 8px 10px;
  border-radius: var(--radius-sm);
  font-size: 11.5px;
  display: none;
  line-height: 1.4;
  word-break: break-all;
}

.connection-test-result.visible {
  display: block;
}

.connection-test-result.success {
  background-color: var(--success-subtle);
  border: 1px solid rgba(16, 185, 129, 0.3);
  color: var(--success-text);
}

.connection-test-result.error {
  background-color: var(--danger-subtle);
  border: 1px solid rgba(239, 68, 68, 0.3);
  color: var(--danger-text);
}

.connection-test-result.testing {
  background-color: var(--accent-subtle);
  border: 1px solid rgba(59, 130, 246, 0.3);
  color: var(--accent-text);
}

/* 설정 하단 버튼 */
.settings-footer {
  padding: 14px 16px;
  border-top: 1px solid var(--border-subtle);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.settings-footer-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.btn-reset {
  width: 100%;
  height: 34px;
  border-radius: var(--radius-sm);
  border: 1px dashed var(--border-normal);
  font-size: 12px;
  color: var(--text-muted);
}

.btn-reset:hover {
  color: var(--text-primary);
  border-color: var(--border-focus);
  background-color: var(--bg-hover);
}

.btn-save {
  width: 100%;
  height: 34px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--accent-primary);
  background-color: var(--accent-primary);
  color: var(--text-inverse);
  font-size: 12px;
  font-weight: 700;
}

.btn-save:hover:not(:disabled) {
  border-color: var(--accent-primary-hover);
  background-color: var(--accent-primary-hover);
}

.settings-save-result {
  min-height: 16px;
  color: var(--text-muted);
  font-size: 11px;
  text-align: right;
}

.settings-save-result.saved {
  color: var(--success-text);
}

.settings-save-result.pending {
  color: var(--warning-text);
}
